본문 바로가기
백엔드기술/스프링프레임워크

Spring boot 2.2 지연 초기화

by RevFactory 2019. 10. 6.

Spring boot 2.2에 추가된 기능 중 Spring Bean 을 지연 로딩하는 Lazy Initialization이 포함되었습니다. 

2.2 이전에도 Lazy로딩이 가능하기 했으나 이번 업데이트로 간편하게 설정할 수 있도록 변경되었습니다.

 

일반적으로는 Spring Boot 애플리케이션을 시작할때, 모든 Bean이 로딩되기 때문에 문제가 있을 경우 에러를 내고 애플리케이션이 실행되지 않습니다. 또한 모든 Bean이 로딩되는 시간이 프로젝트 초기에는 크게 문제를 못 느끼지만 프로젝트 규모가 커질 수록 애플리케이션이 무거워져 시작하는데 한참 걸리게 됩니다. 

 

프로퍼티 설정에 아래와 같이 추가합니다.

 

application.yaml

spring:
  main:
    lazy-initialization: true

 

지연 초기화는 장점과 단점이 있으므로 참고하세요.

 

장점

- 애플리케이션 시작 시간이 단축됩니다.

- Bean 이 필요할 때까지 생성되지 않으므로 시작 시간이 아닌 런타임 시점으로 문제를 숨길 수 있습니다

 

단점

- Web 에서 최초 요청시 Bean 생성을 위해 HTTP 요청 대기시간이 증가합니다.

- HTTP 요청 대기시간은 로드 밸런싱 및 자동 스케일링에 부정적인 영향을 줄 수 있습니다.

- 잘못된 Bean 구성에 따른 오류를 사전에 발견하지 못합니다.

 

Production 환경은 대부분 무중단 배포가 가능한 환경이라 애플리케이션 시작 시간이 중요한편이 아니라서

개인적으로는 개발시점에 유용한 옵션으로 사용 될 것으로 보입니다.

 

'백엔드기술 > 스프링프레임워크' 카테고리의 다른 글

카카오, Github 소셜 로그인  (0) 2021.01.19
Spring Boot 2.2  (0) 2019.09.30
Java10으로 Spring Boot 실행시  (0) 2018.09.02