Spring 아키텍처

Tin9oo·2024년 1월 18일
  1. 시작 단계

    Spring 애플리케이션은 ApplicationContext(IoC)라는 컨테이너를 초기화합니다.

    → 애너테이션을 기반으로 애플리케이션의 객체(Bean) 정의를 로드합니다.

  2. Bean 생성 및 관리

    ApplicationContext는 애플리케이션에서 사용될 모든 객체의 인스턴스를 생성하고, 이들을 Bean으로 관리합니다.

    → Bean의 생명주기와 의존성은 Spring에 의해 자동으로 관리됩니다.

  3. 의존성 주입(DI)

    Spring은 Bean 사이의 의존성을 자동으로 주입합니다.

    → 이는 @Autowired 애너테이션 등을 사용하여 구성됩니다.

  4. AOP(Aspect-Oriented Programming) 적용

    필요한 경우, Spring은 AOP를 사용하여 트랜잭션 관리나 보안과 같은 관점 지향적 기능을 애플리케이션에 적용합니다.

  5. MVC 패턴 적용

    웹 애플리케이션의 경우, Spring MVC 패턴을 사용하여 요청을 처리합니다.

    DispatcherServlet이 중심 역할을 하여 적절한 컨트롤러로 요청을 전달하고 응답을 반환합니다.

Spring MVC

Spring MVC는 모델-뷰-컨트롤러(MVC) 디자인 패턴을 구현한 Spring의 웹 프레임워크입니다.
DispatcherServlet이 중심 컴포넌트로 작동하여 요청을 컨트롤러에 전달하고, 컨트롤러는 비즈니스 로직을 처리한 후 결과를 뷰에 전달하여 사용자에게 응답을 제공합니다.

  1. 클라이언트의 요청이 들어오면 DispatcherServlet(Front Controller)이 요청을 받는다.

  2. DispatcherServlet은 HandlerMapping을 통해 요청에 대한 Controller를 찾는다.

  3. DispatcherServlet은 HandlerAdapter를 통해 Controller 요청을 위임한다.

  4. Controller는 비즈니스 로직을 수행하고, 결과를 HandlerAdapter에게 반환한다.

  5. HandlerAdapter는 Controller의 결과를 DispatcherServlet에게 반환한다.

    → HandlerAdapter의 ReturnTypeHandler를 통해 Controller의 결과를 적절한 형태로 변환 후 DispatcherServlet에게 반환한다.

    → 컨트롤러가 ResponseEntity를 반환하면 HttpEntityMethodProcessor가 응답 객체를 직렬화하고 HttpStatus를 설정한다.

  6. DispatcherServlet은 ViewResolver를 통해 View의 이름에 맞는 View를 찾아서 반환한다.

  7. DispatcherServlet은 서버의 응답(응답 데이터 or View)을 클라이언트에게 전송한다.


이 글이 작성되기까지 도움주신 태곤님, 성환님, 수아님께 감사드립니다.

profile
🚙 HMG SOFTEER 3rd | 💻 BE

0개의 댓글