반응형

2025/04 2

[디자인 패턴의 아름다움] ch 7.1 ~ ch 7.4

정리구조 디자인 패턴 : 특정 응용 프로그램 시나리오의 문제를 해결하는 데 사용되는 클래스나 객체의 고전적인 구조 1. 프록시 패턴 : 원본 클래스에 연관 없는 기능을 추가할 때 사용2. 데커레이터 패턴 : 원본 클래스와 관련이 있거나 향상된 기능을 추가할 때 사용3. 어댑터 패턴 : 코드 호환성 문제를 해결하는 데 사용4. 브리지 패턴 : 합성의 폭발 문제를 해결하는 데 사용5. 퍼사드 패턴 : 인터페이스 설계에 사용6. 복합체 패턴 : 트리 구조로 나타낼 수 있는 데이터에 사용7. 플라이웨이트 패턴 : 재사용 문제를 해결  찾아본 내용 클래스 로더 (p. 318) 1. 클래스 하나당 클래스 로더는 하나인가? 2. Spring 애플리케이션당 클래스 로더는 몇 개인가? 기본적인 경우 (Spring Boo..

독서 2025.04.13

[디자인 패턴의 아름다움] ch 6. 생성 디자인 패턴

A. 싱글턴, 명령어 재정렬p. 257CPU 명령이 재정렬되면 IdGenerator 클래스의 객체가 new 예약어를 통해 instance 멤버 변수가 지정된 후, 초기화가 이루어지기 전에 다른 스레드에서 이 객체를 사용하려고 할 수 있다. 이 문제를 해결하려면 volatile 키워드를 인스턴스 멤버 변수에 추가하여 명령어 재정렬을 방지하면 된다. 명령어 재정렬과 싱글턴의 안전한 초기화 1. 문제 제기: 멀티스레드 환경에서의 싱글턴 초기화 문제 싱글턴 패턴은 애플리케이션 전체에서 인스턴스를 하나만 유지해야 할 때 사용된다.하지만 멀티스레드 환경에서는 인스턴스를 생성하는 과정에서 예상치 못한 문제가 발생할 수 있다.대표적인 예는 다음과 같다public class Singleton { private st..

독서 2025.04.06
반응형