일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- junit5
- orelse
- 싱글톤
- optional
- 인텔리제이 단축키
- thread
- producer
- Functional Programming
- Clean Code
- 카프카
- signWith
- Java8
- mokito
- SpringBoot
- consumer
- 함수형 프로그래밍
- Authentication
- Spring Security
- TDD
- Java
- JWT
- effective java
- 디자인패턴
- topic
- git cli
- orElseGet
- Stream
- kafka
- Factory Method Pattern
- Today
- Total
목록싱글톤 (2)
goodbye

싱글톤 패턴을 깨트리는 방법 1. 리플렉션 앞에서 구현한 멀티쓰레드에 안전한 static inner class 를 사용하여 인스턴스를 생성 Constructor 를 이용하여 인스턴스를 생성한 경우 두 인스턴스를 비교하면 같지 않다 2. 직렬화 & 역직렬화 객체(인스턴스)를 영속화 할 경우 보통 DB에 저장하지만 File 저장하는 경우도 있음 이렇게 Object를 파일형태로 저장할때 자바는 직렬화, 역직렬화가 필요함 Serializable 인터페이스와 readResolve 메서드를 구현하면 싱글톤 유지 가능 3. enum 사용하기 enum 을 이용한 인스턴스 생성은 로딩할때 인스턴스가 만들어진다 그리고 java 에서 enum 인스턴스를 new 로 reflection 하는것은 불가능하다 따라서 enum 인스..

1. 싱글톤(singleton) 패턴 싱글톤이란 인스턴스를 오직 한개만 제공하는 패턴 시스템 런타임, 환경세팅에 대한 정보 등 인스턴스가 여러개일때 문제가 생길 수 있는 경우 인스턴스를 오직 한개만 만들어 제공 2. 두개의 인스턴스 비교 다음과 같이 public class 클래스를 만들고 new 예약어를 통해 생성한 인스턴스를 비교해보면 두 인스턴스는 같지 않다는 결과를 확인 가능 클래스 외부에서 클래스의 인스턴스를 생성 할 수 있기 때문에 외부에서 인스턴스 생성 제한 필요성을 확인 할 수 있다 3. private , static 클래스 외부에서 클래스의 인스턴스를 직접 생성 할 수 있기때문에 private 예약어를 통해 외부에서 생성을 제한하고 메서드를 통해 인스턴스를 생성하도록 구현 a. privat..