반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

개키우는개발자 : )

애노테이션 매핑 정보 사용 본문

토비의 스프링 부트 - 이해와 원리/섹션5 - 독립 실행형 스프링 애플리케이션

애노테이션 매핑 정보 사용

DOGvelopers 2024. 10. 6. 21:09
반응형

결론 및 요약

컨트롤러 클래스 내부에 맵핑 정보를 애노테이션으로 직접 추가하여, 더 간결하게 웹 요청을 처리하는 방법을 배웠습니다. 기존에 서블릿 코드에서 맵핑 작업을 수동으로 처리하던 방식을 스프링의 애노테이션 기반 맵핑으로 전환하는 작업을 했습니다. 이를 통해 코드가 훨씬 간결해지고, 스프링이 제공하는 자동 맵핑 및 바인딩 기능을 활용할 수 있게 되었습니다.

주요 내용 요약

  1. 애노테이션 기반 맵핑:

    • @GetMapping, @RequestMapping 등의 애노테이션을 사용하여, 웹 요청을 처리할 컨트롤러 메소드에 대한 URL 및 HTTP 메소드 매핑을 설정했습니다.
    • RequestMapping을 클래스 레벨에 선언하면, 그 클래스 내부의 메소드들이 URL을 처리하는 기본 경로를 지정하게 됩니다.
    • 메소드 레벨에 선언한 @GetMapping, @PostMapping 애노테이션을 통해 더 세밀하게 요청을 분리할 수 있었습니다.
  2. DispatcherServlet의 역할:

    • DispatcherServlet은 서블릿 컨테이너에 등록된 애플리케이션의 빈들을 스캔하여, 웹 요청을 처리할 수 있는 컨트롤러 및 메소드들을 찾아 맵핑 테이블을 생성합니다.
    • 맵핑된 정보에 따라 들어오는 요청을 적절한 컨트롤러로 디스패치하는 작업을 합니다.
  3. Response 처리:

    • 기본적으로 컨트롤러 메소드가 String 값을 반환하면, 스프링은 이를 뷰 이름으로 간주하여 해당하는 뷰를 찾아 응답하려고 합니다.
    • 하지만, 메소드의 반환값을 직접적으로 HTTP 응답의 body에 출력하고자 한다면, @ResponseBody 애노테이션을 추가해야 합니다.
    • @RestController는 자동으로 @ResponseBody를 포함하여 모든 메소드의 반환값을 바로 응답에 포함하도록 처리해 주므로, 따로 @ResponseBody를 붙이지 않아도 됐던 이유를 설명했습니다.
  4. 코드 간소화:

    • 기존에 복잡했던 서블릿 맵핑 작업이 애노테이션 하나로 간결하게 정리되었습니다.
    • DispatcherServlet스프링 컨테이너가 자동으로 맵핑 및 요청 처리를 맡게 되어, 코드는 훨씬 가독성이 좋아지고 관리가 쉬워졌습니다.

결론:

애노테이션 기반의 맵핑 방법DispatcherServlet이 어떻게 요청을 처리하고 맵핑 테이블을 구축하는지에 대해 이해할 수 있었습니다. 다음 시간에는 스프링 컨테이너와 서블릿 컨테이너의 라이프 사이클을 통합하는 작업을 살펴보며, 더 나아간 스프링의 자동화 기능에 대해 학습할 예정입니다.

반응형
Comments