📌 샘플 소스코드 다운로드📌 C++ 샘플 소스코드📌 구현에 대한 설명📌 이 구현 방식의 장점📌 주의할 점 샘플 소스코드 다운로드 C++ 샘플 소스코드#include #include #include #include // 프로토타입 기본 클래스class Prototype {public: virtual ~Prototype() = default; virtual std::unique_ptr clone() const = 0; virtual void print() const = 0;};// 구체적인 프로토타입 클래스class ConcretePrototype : public Prototype {public: ConcretePrototype(std::string type) : t..
📌 샘플 소스코드 다운로드📌 C++ 샘플 소스코드📌 구현에 대한 설명📌 이 구현 방식의 장점📌 주의할 점 샘플 소스코드 다운로드 C++ 샘플 소스코드#include #include #include // 추상 제품 클래스들class Chair {public: virtual ~Chair() = default; virtual void sit() const = 0;};class Table {public: virtual ~Table() = default; virtual void use() const = 0;};// 구체적인 제품 클래스들 - 모던 스타일class ModernChair : public Chair {public: void sit() const overri..
📌 샘플 소스코드 다운로드📌 C++ 샘플 소스코드📌 구현에 대한 설명📌 이 구현 방식의 장점📌 주의할 점 샘플 소스코드 다운로드 C++ 샘플 소스코드#include #include #include // 제품 인터페이스class Vehicle {public: virtual ~Vehicle() = default; virtual void drive() const = 0;};// 구체적인 제품들class Car : public Vehicle {public: void drive() const override { std::cout createVehicle() const = 0; // 공통 로직을 포함한 메서드 void deliverVehicle() ..
📌 샘플 소스코드 다운로드📌 C++ 샘플 소스코드📌 구현에 대한 설명📌 이 구현 방식의 장점📌 주의할 점 샘플 소스코드 다운로드 C++ 샘플 소스코드#include #include class Singleton {public: // 싱글톤 인스턴스를 얻는 정적 메서드 static Singleton& getInstance() { static Singleton instance; // 정적 지역 변수로 인스턴스 생성 return instance; } // 일반적인 멤버 함수 void setValue(const std::string& value) { m_value = value; } std::string getValu..
실무에서 자주 사용되는 디자인 패턴을 주요 카테고리별로 정리 하였습니다. 📌 생성 패턴 (Creational Patterns)📌 구조 패턴 (Structural Patterns)📌 행위 패턴 (Behavioral Patterns)📌 동시성 패턴 (Concurrency Patterns)📌 아키텍처 패턴 (Architectural Patterns) 1. 생성 패턴 (Creational Patterns) ▪️ 싱글톤 (Singleton) ▪️ 팩토리 메서드 (Factory Method) ▪️ 추상 팩토리 (Abstract Factory) ▪️ 빌더 (Builder) ▪️ 프로토타입 (Prototype) 2. 구조 패턴 (Structural Patterns)▪️ 어댑터 (Adapter)▪️ 브..
싱글턴 패턴 동기화 처리 싱글턴 패턴은 애플리케이션에서 특정 클래스의 인스턴스가 오직 하나만 만들어지도록 보장하는 디자인 패턴입니다. 이 패턴을 사용하면 클래스의 인스턴스를 전역 변수로 사용할 때와 같은 편리함을 누릴 수 있으면서도, 전역 변수와 같은 문제점 (모듈성 파괴 등)을 회피할 수 있습니다. C++11 이전까지는 정적 변수를 초기화하는 순서가 보장되지 않았기 때문에 멀티스레딩 환경에서는 동기화 문제가 발생할 수 있었습니다. 그러나 C++11부터는 이 문제가 해결되었으므로, C++11 이상에서는 정적 멤버 변수를 사용하는 것만으로도 스레드 안전성을 보장할 수 있습니다. 다음은 싱글턴 패턴을 사용하여 클래스의 인스턴스를 만드는 예시입니다. 이 예시에서는 정적 멤버 변수를 사용하여 인스턴스를 만들고,..