연합 스터디 1주차-Bean LifeCycle, AOP (Aspect-Oriented Programming), Proxy 구조 이해, DispatcherServlet 흐름

Goguma·2025년 5월 21일

BE 연합_스터디

목록 보기
1/2

### 학습 목표

스프링의 핵심 개념 (Bean LifeCycle, AOP, Proxy 등)을 내부 구조 중심으로 깊게 이해하고, DispatcherServlet의 흐름을 그림과 코드로 정리한다.

1. Bean LifeCycle

1.Bean이란?
∙스프링에서는 우리가 만든 클래스 객체를 관리해준다->이 객체를 Bean이라고 함.

2.생명주기(LifeCycle)
∙Bean의 생명주기
[생성] → [의존성 주입] → [초기화] → [소멸]

∙객체 생성[@Component] 
∙의존성 주입[스프링에 필요한 다른 객체들을 넣어줌]
∙초기화[@PostConstruct] //스프링이 이 메서드를 Bean 생성 직후 자동 실행한다.
∙초기화(인터페이스)[@InitializingBean] 
∙소멸[@PreDestroy] 
∙소멸(인터페이스)[@DisposableBean]

2. AOP(Aspect-Oriented Programming)

1.AOP(관점 지향 프로그래밍)란?
교차 절단 문제를 분리하여 응용 프로그램의 다른 부분의 모듈성을 높이기 위한 패러다임.
간단하게 하자면, 코드에 끼워넣는 기술이다.

주요 개념

Advice 종류

spring aop 와 aspectj의 차이
스프링 AOP는 스프링 프레임워크의 일부로, 프록시 패턴을 기반으로 AOP를 구현한다.
반면, AspectJ는 컴파일 타임, 로드 타임, 런타임에 걸쳐 더 광범위한 AOP 지원을 제공하는 독립적인 프레임워크이다.

👉상황

👉AOP도입

3. Proxy 구조 이해

1.Proxy란?
프록시는 클라이언트와 서버 사이의 중계 역할을 하는 프로그램 또는 컴퓨터,
사용자가 인터넷에 접속할 때 프록시 서버를 거쳐 접속하는 것을 의미한다.

2.JDK Dynamic Proxy vs CGLIB Proxy

3.AOP와 Proxy의 관계
AOP는 프록시 객체를 만들어서 우리 코드를 감싸는 방식으로 동작한다.

4.인터페이스 기반 vs 클래스 기반 AOP 적용 비교
(1)공통 인터페이스 + 구현체

(2)클래스 기반 구현체

(3)AOP Aspect

5.ProxyFactory 직접 사용 실습
(1)ProxyFactory로 인터페이스 기반 AOP

(2)ProxyFactory로 클래스 기반 AOP

4. DispatcherServlet 흐름

  1. DispatcherServlet란?
    DispatcherServlet은 HTTP 프로토콜로 들어오는 모든 요청을 먼저 받아서 적합한 컨트롤러에 위임(Delegate request)는 역할.

2.Client → DispatcherServlet → HandlerMapping → HandlerAdapter → Controller → ViewResolver → View → Response

| DispatcherServlet | 프론트 컨트롤러, 모든 요청의 진입점 |
| HandlerMapping | 요청 URL을 어떤 Controller에 매핑할지 결정 |
| HandlerAdapter | 실제로 컨트롤러를 실행할 수 있도록 어댑터 제공 |
| Controller | 핵심 비즈니스 로직 수행 |
| ViewResolver | 논리적 뷰 이름을 물리적 뷰로 변환 (ex: JSP 파일) |
| View | 최종 렌더링 단계 (HTML 응답 생성) |

profile
달달고구마

0개의 댓글