인프런의 김영한님 강의 싱글톤 정리 내용입니다.
목차
싱글톤이란?
클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴!

이를 사용하지 않으면 위처럼 같은 service 이지만 여러 개의 동일한 service를 생성한다.
싱글톤 패턴으로 제작하는 방법

public의 경우 instance를 return 해준다.
constructor를 private에서만 생성이 되게 막는다.
문제점
- 싱글톤 패턴을 위한 코드가 많이 들어간다.
- 의존관계상 구체 클래스에 의존한다. -> DIP 위반
- 구체 클래스에 의존해서 OCP를 위한할 가능성이 높다.
- 테스트가 어렵다.
- 자식 클래스 생성이 어렵다.
스프링 컨테이너, 싱글톤의 주의점
전부 private으로 생성자를 제한하고 막기엔 손이 너무 많이간다.
스프링 컨테이너는 자동으로 싱글톤 패턴으로 관리해주며 저런 문제들을 전부 해결해준다!
스프링을 사랑하자.
하지만 특정 클라이언트가 값을 변경할 수 없어야하며 가급적 읽기만 가능해야 합니다.

위와 같이 userA의 조회 중 userB가 접속하게 된다면 유저A의 정보가 아닌 유저B의 정보가 나오게 됩니다.

위와 같은 식으로 값을 저장하고 주는 것이 아니라 즉시 주는 것으로 작성하는 것(무상태)를 유지하는게 중요합니다.
728x90
'서버 > SPRING' 카테고리의 다른 글
| http 네트워크 정리 (0) | 2023.07.18 |
|---|---|
| [Boostcourse] 이클립스와 MongoDB Backend - Project1 명함만들기 (0) | 2022.10.02 |
| [Boostcourse] 이클립스와 MongoDB Template 사용 및 JDBC3 실습 (0) | 2022.09.30 |
| [Boostcourse] 이클립스와 MongoDB Insert 및 JDBC2 실습 (0) | 2022.09.30 |
| [Boostcourse] 이클립스와 MongoDB 연결 방법 및 JDBC1 실습 (0) | 2022.09.28 |
댓글