태그: 디자인패턴
8편
-
C++ 타입 소거(Type Erasure): std::function 내부 원리와 Concept·Model 직접 구현
상속 관계가 없는 여러 타입을 하나의 인터페이스로 다루는 타입 소거 패턴을 std::function과 std::any의 내부 원리, 직접 만든 Concept·Model 구현으로 설명합니다. 콜백·플러그인·메시지 큐 예제와 가상 함수 방식과의 비용 차이도 다룹니다.
-
C++ 정책 기반 설계: 템플릿 매개변수로 동작을 컴파일 타임에 조합하기
C++ Policy-Based Design으로 템플릿 매개변수를 통해 컴파일 타임에 동작을 조합하는 방법을 정리합니다. 스마트 포인터, 로거, 컨테이너 성장 전략 예제와 인터페이스 불일치·복잡도 함정을 다룹니다.
-
C++ CRTP: 가상 함수 없이 정적 다형성 구현하기와 C++23 deducing this
C++ CRTP(Curiously Recurring Template Pattern)로 가상 함수 없이 정적 다형성을 구현하는 방법을 카운터 믹스인, 비교 연산자 자동 생성, 싱글톤, 체이닝 인터페이스 예제로 정리합니다. 가상 함수와의 성능 비교와 캐스팅·순환 의존 함정까지 다룹니다.
-
C++ 디자인 패턴 실전 | Singleton·Factory·Observer·Strategy·PIMPL 예제와 자주 하는 실수
전역 설정 접근, if-else로 늘어나는 객체 생성, 여러 UI에 변경 알리기, 알고리즘 교체, 헤더 하나 고쳤는데 오래 걸리는 재빌드를 Singleton, Factory, Observer, Strategy, PIMPL로 푸는 예제를 모았습니다. 패턴별로 자주 하는 실수도 짚습니다.
-
C++ PIMPL과 브릿지 패턴 | 구현 숨기기와 추상화 [#19-3]
private 멤버 하나를 추가했을 뿐인데 이 클래스를 include하는 모든 .cpp가 다시 컴파일됩니다. PIMPL로 컴파일 의존성을 끊는 방법, unique_ptr와 불완전 타입 함정, 브릿지 패턴으로 추상과 구현을 분리하는 방법을 정리합니다.
-
C++ 디자인 패턴 | Observer·Strategy
데이터 변경을 여러 UI에 알리다 강한 결합이 생기는 문제에서 출발해, C++로 Observer·Strategy·Command·State·Template Method 패턴을 구현하고 notify 중 detach, 상태 전이 시 수명 문제 같은 함정을 다룹니다.
-
C++ 생성 패턴 실무 활용: Singleton·Factory·Builder·Prototype
전역 설정 접근, 다형적 객체 생성, 파라미터가 너무 많은 생성자 같은 문제를 Singleton, Factory, Builder, Prototype이 각각 어떻게 푸는지 보여줍니다. 스레드 안전 Singleton, 정적 초기화 순서 문제, 얕은 복사 함정도 다룹니다.
-
C++ 디자인 패턴 | Adapter·Decorator
외부 라이브러리 인터페이스가 맞지 않거나 기존 코드를 고칠 수 없을 때 Adapter와 Decorator로 감싸는 방법을 먼저 보여주고, Proxy·Bridge·Composite까지 구조 패턴을 예제로 비교합니다. 세 래퍼 패턴이 헷갈리는 지점과 Decorator 체인의 메모리 관리도 다룹니다.