Eager Instantiation
- 즉시 생성: 인스턴스는 필요한 시점이 아니라 미리 객체 생성 시 초기화
- 미리 계산: 필요하지 않은 정보까지 미리 계산하고 저장
- 높은 메모리 사용량: 모든 인스턴스가 미리 생성되므로 메모리 사용량이 높음
- 높은 초기화 비용: 모든 객체가 초기화되므로 초기화 비용이 높을 수 있음
- 예측 가능한 성능: 인스턴스가 필요한 시점에 사용 가능하므로 성능 예측이 용이
- 복잡한 객체 그래프: 복잡한 객체 그래프를 구축하는 경우 메모리와 성능 문제가 발생할 수 있음
- 주로 단순한 응용 프로그램에 적합
Lazy Instantiation
- 필요할 때 생성: 인스턴스는 실제로 필요한 시점에 생성
- 지연 계산: 필요한 정보만 생성하고 저장하므로 불필요한 계산을 피할 수 있음
- 낮은 메모리 사용량: 필요한 시점에만 객체를 생성하므로 메모리 사용량이 낮을 수 있음
- 낮은 초기화 비용: 필요한 정보만 초기화되므로 초기화 비용이 낮을 수 있음
- 성능 변동 가능: 객체 생성 및 초기화가 필요한 시점에 따라 성능이 변동할 수 있음
- 복잡한 객체 그래프 관리 용이: 객체 그래프가 복잡한 경우 메모리와 성능을 효율적으로 관리할 수 있음
- 대규모 응용 프로그램 및 리소스 효율성을 고려할 때 적합
'알아가기 > Spring' 카테고리의 다른 글
[Spring] 임의의 서버 포트 번호 (random server port number) (0) | 2023.11.18 |
---|---|
[Spring] Advice Types inside AOP (0) | 2023.11.08 |
[Spring] SecurityFilterChain 로그인 후 특정 주소로 이동 (0) | 2023.08.30 |
[Spring] Spring Boot Actuator 사용 (0) | 2023.08.29 |
[Spring] SpringBootServletInitializer 알아보기 (ApplicationContextException: Unable to start 에러 해결) (0) | 2023.08.05 |