본문 바로가기
반응형

개발739

C++ - 중재자, 미디에이터 패턴 (Mediator Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 중재자, 미디에이터 패턴 (Mediator Pattern) - 행동 패턴 - 객체 간의 상호작용을 캡슐화하여 복잡한 통신과 제어를 한 곳으로 집중시키는 패턴 - 객체 간의 직접적인 통신을 방지하여 결합도를 낮춘다. 구현 - Mediator : 객체들 간의 상호작용을 관리하고 조정하는 주체, 중재자는 요청을 받아들이고 적절한 객체에 전달한다. - Colleague : 중재자를 통해 상호작용하는 객체, 다른 Colleague 객체와 직접 통신하지 않는다. 장점 - SRP(단일 책임 원칙), 다양한 Colleague간의 상호작용을 한 곳으로 추출한다. - OCP(개방-폐쇄 원칙), 기존의 Colleague를 변경하지 않고 .. 2024. 3. 1.
C++ - 플라이웨이트 패턴 (Flyweight Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 플라이웨이트 패턴 (Flyweight Pattern) - 구조 패턴 - 객체를 공유하여 메모리 사용량을 줄이고 성능을 향상시키기 위한 패턴 - 많은 수의 유사한 객체를 생성해야 할 때 사용된다. 구현 - Flyweight Interface : 플라이웨이트 객체들이 구현하는 인터페이스를 정의, 외부에서 사용될 메서드를 포함한다. - Flyweight Factory : 플라이웨이트 객체들을 생성하고 관리, 객체를 생성하거나 이미 생성된 객체를 재사용한다. - Flyweight : 중복 생성되는 객체의 부분을 나타내는 클래스, 외부와 내부로 나뉘며, 내부 상태는 공유된다. 장점 - 중복되는.. 2024. 3. 1.
C++ - 빌더 패턴 (Builder Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 - 이동 생성자 move constructor 빌더 패턴 (Builder Pattern) - 생성 패턴 - 객체 생성 과정을 추상화하여 복잡한 객체를 조립하는 패턴 - 객체를 생성하는 방법을 클라이언트로부터 숨기고, 생성 과정을 단계적으로 나눈다. 구현 - Builder : 객체를 생성하기 위한 인터페이스를 정의, 객체의 각 부분을 생성하기 위한 메서드가 포함된다. - ConcreteBuilder : Builder 인터페이스를 구현하여 실제로 객체를 생성한다. - Director : 객체를 생성하는 방법을 결정하고, Builder를 사용하여 객체를 조립한다. - Product : Bu.. 2024. 3. 1.
Git Bash - fetch / pull 할 때 ID, Password 자동 입력하기 깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기) Git / GitHub 전체 링크  참고- https://git-scm.com/docs/git-credential-cache- 개인 토큰 발급 받기 (Personal access tokens) 깃허브의 저장소를 자동으로 sync하려면 fetch / pull 명령어를 하면 된다.git fetch origin maingit stashgit pull origin main 하지만 fetch를 할 때, 아래와 같이 Username과 Password를 매번 입력해야 한다. Username for 'https://github.com': Password for 'https://github.com :해결 방법 먼저 git config에서 name과.. 2024. 3. 1.
깃허브 - 개인 토큰 발급 받기 (Personal access tokens) 깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기) Git / GitHub 전체 링크 참고- RESTful API로 파일 읽기- fetch / pull 할 때 ID, Password 자동 입력하기 토큰을 발급받으면 깃허브의 RESTful API나 CLI 사용시 비밀번호를 대체할 수 있다. 깃허브 웹사이트에서 Settings로 이동한다. 왼쪽 하단의 Developer settings를 클릭한다. [Personal access tokens] → [Tokens (classic)] → Generate new token에서 classic을 클릭한다. 토큰에 대한 정보를 입력하고 만기일을 설정한다. 만기일은 무제한을 설정할 수 있지만, 보안에 유의해야 한다.토큰 권한에 대한 필요한 scopes를.. 2024. 3. 1.
C++ - 브리지 패턴 (Bridge Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 브리지 패턴 (Bridge Pattern) - 구조 패턴 - 클래스의 집합을 두 개의 추상화와 구현으로 분리하는 패턴 - 인터페이스와 구현을 별도의 클래스로 분리하여 각각 독립적으로 변경할 수 있다. 구현 - Abstraction : 기능적 요구사항을 정의하는 인터페이스를 제공한다. - Implementation : Abstraction이 정의한 인터페이스를 실제로 구현한다. - RefinedAbstraction : Abstraction을 확장한 클래스, 추가적인 기능을 정의한다. - ConcreteImplementation : Implementation의 실제 구현이 된다. 장점 -.. 2024. 3. 1.
C++ - 방문자, 비지터 패턴 (Visitor Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 복합체, 컴포지트 패턴 - 클래스 다이어그램 그리기 방문자, 비지터 패턴 (Visitor Pattern) - 행동 패턴 - 객체의 구조와 동작을 분리하여 새로운 동작을 추가하는 패턴 - 어떤 클래스에 대해 특정 메서드를 분리하고 싶을 때 사용할 수 있다. 구현 - Visitor : 새로운 동작을 정의하는 인터페이스, 특정 작업을 수행하는 메서드가 정의된다. - Element : Visitor를 수용하는 인터페이스, accept 메서드로 Visitor를 받는다. - ConcreteVisitor : 실제로 새로운 동작을 구현한다. - ConcreteElement : Visitor가 새로운 동작을 수행하는 실제 객.. 2024. 2. 29.
C++ - 프로토타입 패턴 (Prototype Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 - 복사 생성자를 이용한 객체의 깊은 복사 프로토타입 패턴 (Prototype Pattern) - 생성 패턴 - 초기 객체 생성 비용이 많이 드는 경우 사용하는 패턴 - 객체를 생성할 때 기존 객체의 복사를 통해 생성한다. - 생성할 객체의 유형에 대한 세부 정보를 숨기면서 복잡한 객체를 만들 수 있는 방법을 제공한다. 구현 - Prototype : 복제될 객체의 인터페이스를 정의, 객체를 복사하는 메서드를 제공한다. - ConcretePrototype : 복사될 때 생성될 새로운 객체의 초기 상태를 가지게 된다. - 클라이언트는 Concrete Class의 구체적인 내용을 몰라도 객.. 2024. 2. 29.
C++ - 역할 사슬, CoR 패턴 (Chain of Responsibility Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 참고 - 클래스 다이어그램 그리기 역할 사슬, CoR 패턴 (Chain of Responsibility Pattern) - 행동 패턴 - 요청을 보내는 객체와 요청을 처리할 수 있는 여러 객체 사이에 역할 사슬을 구성하는 패턴 - 요청을 처리하는 여러 개의 객체가 있는 경우, 요청을 처리할 객체를 결정할 수 있다. 구현 - Handler : 요청을 처리할 인터페이스와 다음 요청을 처리할 successor 참조를 제공한다. - ConcreteHandler : 실제로 요청을 처리하고, 처리하지 못하는 경우 successor에게 요청을 전달한다. - 클라이언트는 요청을 최초의 핸들러에게 전달한다. 장점 - SRP(단일 책임.. 2024. 2. 29.
반응형