싱글톤 패턴?
인스턴스가 오직 1개만 생성되야 하는 경우에 사용되는 패턴
예시로 레지스트리 같은 설정 파일의 경우 객체가 여러개 생성되면 설정 값이 변경될 위험이 생김.
따라서 싱글톤 패턴을 이용하면, 하나의 인스턴스를 메모리에 등록해서 여러 스레드가 동시에
해당 인스턴스를 공유하여 사용하게끔 할 수 있으므로, 요청이 많은 곳에서 사용하면 효율을 높일 수 있음.
싱글톤 설계 주의사항
멀티 스레딩 환경에서도 동작 가능하게 구현해야함(Thread-safe 보장)
Thread-safe를 보장하려면, 무상태성(상태 정보를 클래스 내부에 가지고 있으면 안됨)을 지켜야함.
동시성 제어 - 동시에 한개의 자원을 가져와서 n개의 Thread가 동시에 해당 변수에
접근하였을 때 값을 읽어와서 쓰려고 하는 과정에서 문제가 생길 수 있음.
synchronize를 해주면 먼저 실행된 Thread의 작업이 끝나고 다음 Thread가 실행되므로 동시성 제어 가능
'JAVA' 카테고리의 다른 글
[Java] Stream? (0) | 2022.06.21 |
---|---|
[JAVA] InputStream 데이터 가져오기 (BufferedReader) (0) | 2022.04.12 |
로깅 라이브러리에 대해서(SLF4J? logback? log4j2?) (0) | 2021.12.12 |
[JAVA] JAR, WAR의 개념과 차이점 (0) | 2021.11.08 |
Java Class, Object, Instance (0) | 2021.07.24 |