본문 바로가기

개발자 기술 면접/Spring8

[Spring] AOP(Aspect Oriented Programming)란? AOP(Aspect Oriented Programming, 관점 지향 프로그래밍) AOP는 기능을, 핵심 관심 사항(Core Concern)과 공통 관심 사항(Cross-Cutting Concern)으로 분리시키고 각각을 모듈화 하는 것을 의미합니다. AOP는 부가 기능을 애스펙트(Aspect)로 정의하여, 핵심 기능에서 부가 기능을 분리함으로써 핵심 기능을 설계하고 구현할 때 객체지향적인 가치를 지킬 수 있게 도와주는 개념입니다. OOP에서 핵심 비즈니스 로직과 독립적으로 분리하기 힘든 부가 기능들을 AOP의 Aspect를 활용해 모듈화해줍니다. ※ 대표적인 예 : 로깅, 트랜잭션, 보안 등에 사용. [참고] https://dev-coco.tistory.com/81 2024. 1. 2.
[Spring] 필터(Filter)와 인터셉터(Interceptor)의 차이 필터(Filter) - 필터는 Dispatcher Servlet에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가 작업(보안, 인증, 로깅)을 처리할 수 있는 기능을 제공합니다. - 웹 컨테이너에서 동작(즉, 스프링 컨테이너 밖). 인터셉터(Interceptor) - 인터셉터는 Dispatcher Servlet이 Controller를 호출하기 전/후에 인터셉터가 끼어들어 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공합니다. (보안, 인증/인가, 로깅, Controller로 넘겨주는 정보(데이터)의 가공 등에 사용) - 스프링 컨테이너 안에서 동작. 2023. 12. 28.
[Spring] DI(Dependency Injection), 의존성 주입 3가지 방법 1. 생성자 주입 방식 생성자를 통해서 의존 관계를 주입받는 방법입니다. 생성자에 @Autowired를 하면 스프링 컨테이너에 @Component로 등록된 빈에서 생성자에 필요한 빈들을 주입합니다. 스프링 공식 문서에서 권장하고 있는 방식. 특징 생성자 호출 시점에 1번만 호출되는 것을 보장한다. 불변과 필수 의존 관계에 사용한다. 생성자가 1개만 존재하는 경우 @Autowired를 생략해도 자동 주입된다. NPE(NullPointerException)를 방지할 수 있다. 주입받은 필드를 final로 선언 가능하다. ※ 생성자 주입을 사용해야 하는 이유 ※ 객체의 불변성 확보 테스트 코드의 작성 final 키워드 작성 및 Lombok과의 결합 2. 수정자 주입 방식 setter라 불리는, 필드의 값을 변.. 2023. 12. 28.
[Spring] 디스패처 서블릿(Dispatcher Servlet)이란? 디스패처 서블릿(Dispatcher Servlet) 디스패처 서블릿이란, 서블릿 컨테이너의 가장 앞단에서 HTTP 프로토콜로 들어오는 모든 요청을 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러입니다. 2023. 12. 27.
[Spring] DI(Dependency Injection), 의존성 주입이란? DI(Dependency Injection) 객체를 직접 생성하는 것이 아닌, 외부(스프링 컨테이너)에서 생성한 후 주입 시켜주는 방식입니다. 이러한 DI(의존성 주입)를 통해 객체 간의 결합도/의존성이 줄어들고 유연성이 높아집니다. 2023. 12. 27.
728x90