Q0. 개요
오늘 알아볼 키워드 AOP, Filter, Interceptop, DI, IOC는 소프트웨어 개발을 할 때, 다양한 관점에서 사용되는 개념들이다.
크게 보면 키워드는 아래의 내용으로 정리된다. 간혹
1. 반복적인 공통 업무와 관련된 AOP, Filter, Interceptor
2. 의존성 주입과 관련된 DI, IOC
각 키워드는 무엇이고, 언제 어디서 사용해야하는지 알아보자.
Q1. 각 키워드 개념 정리
1. Filter
- 개념: 웹 어플리케이션에서 HTTP의 Request(요청), Response(응답)을 조작하는데 사용한다.
- 위치 : 서블릿 컨테이너
- 용도 : HTTP 요청과 응답에 대한 전/후 처리.
- 예 : ① 요청/응답의 문자 인코딩 처리하는 필터.
② 인증/권한과 같은 특정 리소스에 대한 접근 제어하는 필터
2. Interceptor
- 개념 : 프레임워크 또는 라이브러리에서 특정 작업의 전/후에 추가 작업을 수행한다.
- 위치 : 스프링 컨테이너
- 용도 : (AOP와 비슷한 목적으로 공통 관심 사항을 위해) HTTP 요청, 메서드 호출 등의 전/후 처리
3. AOP
(관점 지향 프로그래밍. Aspect-Oriented Programming)
- 개념 : 어플리케이션의 여러곳에 반복적으로 사용되는 핵심적인 비즈니스 로직을 별도 모듈화시켜서 재사용 용도.
- 위치 : 스프링 컨테이너
- 용도 : 핵심 비즈니스 로직, 부가적인 로직 등 코드를 모듈화하여 재사용성 향상.
- 예 : ① 로깅 - 메서드 실행 전후에 로그를 기록한다.
② 트랜잭션 관리 - 메서드 실행 전후에 트랜잭션을 시작하거나 완료한다.
4. DI
(의존성 주입. Dependency Injection)
- 개념 : 객체(빈)들을 직접 생성하지 않고, 외부에서 의존성을 주입받아 생성,관리하는 패턴
- 위치 : 스프링의 IOC 컨테이너
- 용도 : 객체 간의 결합도를 낮추어 재사용에 좋고 유지보수성과 테스트 용이성을 향상.
5. IOC
(제어 반전. Inversion of Control)
- 개념 : 객체(빈)의 생성,생명주기,관리가 역전.
프로그램 흐름을 개발자가 아닌 실제 작업을 하는 프로그램이나 프레임워크에서 제어하는 것을 의미.
- 위치 : 스프링의 IOC 컨테이너
- 용도 : DI와 동일.
Q2. 각 키워드들의 비교 정리
'WEB 심화 > Back-End' 카테고리의 다른 글
[Java] 파일 다운로드 구현 방법 총 정리 (0) | 2024.01.08 |
---|---|
[SPRING] 웹 개발 환경 설정 파일 (0) | 2023.12.12 |
[OS] 운영체제의 Shell과 주요 기능 (1) | 2023.11.27 |
[Java] 예외 처리 (try-catch와 throws) (2) | 2023.11.26 |
[Java] 변수/상수/리터럴/인스턴스/객체/빈이란 (1) | 2023.11.26 |