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

개키우는개발자 : )

Web 자동 구성 살펴보기 본문

반응형

스프링 부트 웹 모듈의 자동 구성 분석

스프링 부트의 웹 모듈(Spring Web)을 추가하면, 기본적인 웹 애플리케이션을 구현하기 위해 필요한 다양한 빈과 설정이 자동으로 구성됩니다. 이 과정에서는 웹 애플리케이션의 구성과 작동 방식에 필요한 주요 자동 구성 요소를 살펴봅니다.


1. 자동 구성 추가로 인한 변화

  • 자동 구성 빈 개수 증가:
    • 웹 모듈 추가 전: 약 13개 (JMX 제외).
    • 웹 모듈 추가 후: 약 62개.
    • 약 50개의 자동 구성 빈이 추가됨.

2. 주요 자동 구성 클래스

1) HTTP 메시지 컨버터 (HttpMessageConvertersAutoConfiguration)

  • 역할:
    • JSON, XML, Text 등 다양한 형식의 데이터를 HTTP 요청과 응답의 본문으로 변환.
  • 주요 컨버터:
    • StringHttpMessageConverter: 문자열을 변환.
    • MappingJackson2HttpMessageConverter: JSON 처리.
  • 조건:
    • spring-web 모듈이 포함되어야 활성화.
    • 리액티브 모드에서는 다른 컨버터 사용.
  • 활용:
    • 사용자 정의 인코딩, 캐릭터 세트를 설정하여 다국어 지원.

2) Jackson ObjectMapper 자동 구성

  • 기본 설정:
    • Jackson2ObjectMapperBuilder를 통해 기본 JSON 매퍼 빈 생성.
    • 커스터마이징 포인트 제공.
  • 활용:
    • 스프링 부트의 설정값을 유지하면서 사용자 정의 설정 가능.
    • 직접 객체를 생성하지 않고 주입받아 사용 권장.

3) RestTemplateAutoConfiguration

  • 역할:
    • RESTful API 호출을 위한 템플릿 제공.
  • 구성:
    • RestTemplateBuilder 빈을 제공.
    • 추가 설정 후 빈으로 등록 가능.
  • 활용:
    • New RestTemplate 방식 대신 RestTemplateBuilder 사용 권장.

3. 서블릿 컨테이너 및 HTTP 관련 자동 구성

1) 임베디드 서블릿 컨테이너

  • 지원 컨테이너:
    • Tomcat (기본값), Jetty, Undertow.
  • 설정:
    • server.tomcat과 같은 프로퍼티를 통해 세부 설정 가능.
    • SSL, HTTP2, URI 인코딩 등 세부 설정 포함.

2) DispatcherServlet 자동 구성

  • 역할:
    • HTTP 요청을 처리하고 컨트롤러로 라우팅.
  • 구성:
    • 기본적으로 생성되며 프로퍼티를 통해 세부 설정 가능.

3) HTTP 인코딩 필터

  • 역할:
    • 요청 및 응답의 문자 인코딩 설정.
  • 기본 빈:
    • CharacterEncodingFilter 자동 등록.

4) 멀티파트 파일 업로드

  • 지원 옵션:
    • 기본: StandardServletMultipartResolver.
    • Apache Commons 라이브러리를 추가하면 우선 적용.

4. 에러 처리 및 기타 자동 구성

1) 에러 처리 빈

  • 구성:
    • BasicErrorController: 기본 에러 처리.
    • ErrorAttributes: 에러 정보 제공.
  • 활용:
    • 커스터마이징하여 애플리케이션에 적합한 에러 처리 구현 가능.

2) 웹 MVC 기본 구성

  • 구성:
    • 폼 콘텐츠 필터, 플래시 맵 매니저, 로컬 리졸버 등이 자동 등록.

3) WebSocket 자동 구성

  • 역할:
    • WebSocket 기능 사용 시 관련 빈 제공.

5. 자동 구성 활용 전략

  1. 자동 구성 이해:
    • 기본 제공되는 빈과 설정을 파악하고 필요 시 변경.
  2. 커스터마이징 포인트 활용:
    • 커스터마이저, 빌더를 활용하여 세부 설정 가능.
  3. 스프링 부트 기본 설정 유지:
    • 스프링 부트의 디폴트 설정을 최대한 활용하여 유지 보수성과 일관성 확보.

결론

스프링 부트의 웹 모듈 자동 구성은 HTTP 요청과 응답, 서블릿 컨테이너, 에러 처리 등 기본적인 웹 애플리케이션 구성 요소를 지원합니다. 이를 활용하여 빠르게 애플리케이션을 개발하고, 필요 시 커스터마이징을 통해 요구 사항에 맞는 설정을 추가할 수 있습니다.

반응형
Comments