국비교육

SpringFramework 필기 테스트 정리

Seong-Jun 2025. 4. 6. 23:33
728x90
반응형
SMALL

1. Spring Framework란?

자바 기반의 애플리케이션을 효율적으로 개발할 수 있도록 지원하는 프레임워크
객체 간의 의존성을 관리하고 트랜잭션 처리, 보안, AOP 등 다양한 기능을 제공한다. 또한 MVC 패턴을 지원하여 웹 애플리케이션 개발을 쉽게 할 수 있도록 도와준다.

 

2. 주요 기능

IoC - Inversion of Control

Inversion : (위치나 순서 등의) 도치. 도치 => 차례나 위치 따위를 서로 바꾼다는 뜻이다.

 

즉, 제어의 반전이다.

 

전통적인 프로그래밍에서는 개발자가 프로그램의 흐름이나 제어를 직접 다루는 반면 IoC는 프레임워크가 다루는 것으로 변경하는 개념으로 객체의 생성과 관리 등 모든 생명 주기를 개발자가 아닌 프레임워크가 주도한다.

 

DI - Dependency Injection

Dependency : 의존이라는 뜻

Injection : 주사, 주입 등의 뜻

 

즉, 의존성 주입이다.

 

설정 파일 또는 어노테이션(@)을 통해 객체 간의 의존 관계를 프레임워크가 주입하여 개발자가 직접 객체를 생성할 필요가 없다. 객체가 직접 의존하는 객체를 생성하거나 참조할 필요 없이 의존성을 외부에서 주입받도록 한다.

 

AOP - Aspect Oriented Programming

Aspect : 측면, 관점 등

Orient : 지향하게 하다 (Oriented : ~을 지향하는)

 

즉, 관점 지향 프로그래밍이다.

 

어떤 로직을 기준으로 핵신적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 한다는 의미이다. 트랜잭션, 로깅, 보안 등 여러 모듈, 여러 계층에서 공통으로 필요로 하는 기능의 경우 해당 기능들을 분리하여 관리한다.

 

POJO - Plain Old Java Object

Plain : 분명한, 숨김없는, 꾸미지 않은 등

 

즉, 순수한 오래된 자바 객체이다.

 

다른 클래스나 인터페이스를 상속받아 메서드가 추가된 클래스가 아닌 getter나 setter 등 기본적인 기능만 가진 클래스(자바 객체)이다. 스프링에서는 특정 프레임워크에 의존하지 않는 순수한 자바 객체를 이용하여 개발할 수 있다. 

 

3. Spring MVC 관련 어노테이션

Spring MVC는 MVC 디자인 패턴을 통해 웹 애플리케이션의 Model, View, Controller 사이의 의존 관계를 DI 컨테이너에서 관리하여 개발자가 아닌 서버가 객체들을 관리하는 웹 애플리케이션을 구축할 수 있다.

@Controller

@Controller는 Spring MVC에서 View를 반환할 때 사용하는 어노테이션이고 @RestController는 View가 아닌 데이터를 반환하고 싶을 때 사용하는 어노테이션이다. @Controller를 명시하면 @Component에 의해 자동으로 핸들러가 스캔할 수 있는 Bean 객체가 되어 서블릿용 컨테이너에 생성된다. 클라이언트가 특정 요청을 하게 될 때 이를 처리하기 위해 제일 먼저 @Controller를 찾고 Mapping 되는 메서드를 실행한다.

@Service

@Service 어노테이션 명시된 클래스는 비즈니스 로직에 대한 내용을 담고 있다. 사용자의 요청에 따라 DB에 접근하여 데이터를 조회, 추가, 수정, 삭제와 같은 처리를 할 수 있다.

@Repository

@Repository 어노테이션이 명시된 객체는 외부 I/O 처리 즉, DB에서 CRUD 작업을 한다.

 

4. Spring Security

인증, 권한 관리 그리고 데이터 보호 기능을 포함하여 웹 개발 과정에서 필수적인 사용자 관리 기능을 구현하는 것과 일반적으로 회원가입, 로그인, 로그아웃, 세션관리 등 보안 관련 기능을 효율적으로 구현할 수 있도록 도움을 주는 프레임워크이다.

BCryptPasswordEncoder

이것은 BCrypt 해싱함수를 사용해서 비밀번호를 인코딩해주는 메서드와 사용자의 의해 제출된 비밀번호와 저장소에 저장되어 있는 비밀번호의 일치 여부를 확인해 주는 메서드를 제공한다.


공부하면서 찾아본 참고 자료 링크
https://engkimbs.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81AOP

 

[Spring] 스프링 AOP (Spring AOP) 총정리 : 개념, 프록시 기반 AOP, @AOP

| 스프링 AOP ( Aspect Oriented Programming ) AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로

engkimbs.tistory.com

https://velog.io/@jinyeong-afk/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91-Spring-IoC-Inversion-of-Control%EC%99%80-DI-Dependency-Injection%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC

 

[기술 면접] Spring IoC (Inversion of Control)와 DI (Dependency Injection)에 대하여

Spring을 사용하며 IoC와 DI라는 말을 굉장히 많이 들어봤고, 그것을 활용한다는 말을 굉장히 많이 들어왔는데 IoC와 DI가 정확히 무엇이고, 어떤 식으로 활용되는지는 자세히 알지 못한다. 오늘은

velog.io

https://dev-coco.tistory.com/80

 

[Spring] IoC 컨테이너 (Inversion of Control) 란?

IoC (Inversion of Control)? IoC를 네이버 영어사전에서 번역해보면 제어 반전을 뜻하고 있습니다. IoC(제어 반전)이란, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을

dev-coco.tistory.com

https://velog.io/@galaxy/Spring%EC%9D%98-%EA%B8%B0%EB%B3%B8-%ED%8A%B9%EC%A7%95-POJO

 

Spring의 기본 특징-POJO

올해 1월달부터 스프링 프레임워크를 이용해 쇼핑몰 웹사이트를 구현해보는 프로젝트를 진행 중에 있다. 오늘은 스프링 프레임워크의 특징에 대해 간단히 정리해보고자 한다.아직까지 완벽하

velog.io

https://codevang.tistory.com/258

 

@Repository, @Service 어노테이션

- Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6.3 - ORM : Mybatis 3.2.8 두 어노테이션을 알기 위

codevang.tistory.com

https://tech-monster.tistory.com/108

 

MVC 어노테이션 정리

필자는 최근에 spring 강의를 뒤져가며 공부를 다시 하고 있다. 그전에는 그냥 사용하기에 급급했기에 비슷한 어노테이션이 나오게 되면 차이점을 잘 몰랐다. 그렇기에 이렇게 정리를 하고자 한

tech-monster.tistory.com

 

728x90
반응형
LIST