싱글톤 패턴
- 클래스의 인스턴스가 1개만 생성되는 것을 보장하는 디자인 패턴
- 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야함
싱글톤 방식의 주의점
- 무상태(stateless)로 설계해야함
: 특정 클라이언트에 의존적인 필드가 없어야함
: 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안됨
: 가급적 읽기만 가능
- 스프링 빈의 필드에 공유 값을 설정하면 장애가 발생할 수 있다
싱글톤 방식의 문제점
- 멀티스레딩 환경에서 발생할 수 있는 동시성 문제 해결을 위해 syncronized 키워드를 사용해야 한다.
- 테스트하기 어렵다.
:격리된 환경에서 수행되려면 매번 인스턴스의 상태를 초기화시켜주어야 한다. 그렇지 않으면 어플리케이션 전역에서 상태를 공유하기 때문에 테스트가 온전하게 수행되지 못한다.
- 클라이언트가 구체 클래스에 의존하게 된다.
: DIP를 위반하게 되고 OCP 원칙 또한 위반할 가능성이 높다.
참고
사이트 : https://tecoble.techcourse.co.kr/post/2020-11-07-singleton/
'프로그래밍 > Spring' 카테고리의 다른 글
@Validated 테스트 코드 작성 (0) | 2021.11.01 |
---|---|
Spring 이해 (0) | 2021.09.06 |
Spring과 Spring Boot 차이점 (0) | 2021.09.05 |