본문 바로가기
반응형

개발/Architecture & Design Pattern37

UML - 상태 다이어그램 (Statechart Diagram) Architecture & Design Pattern 전체 링크 참고 - 상태 다이어그램 그리기 상태 다이어그램 (Statechart Diagram) - 객체나 구성 요소의 다양한 상태, 이벤트에 응답하여 상태 전이를 어떻게 수행하는지를 모델링한다. - 동적인 동작을 가진 복잡한 시스템의 행동을 모델링하는 데 사용할 수 있다. - 시스템이 주고 받는 이벤트를 순서대로 표현할 수 있다. 구성 요소 상태 다이어그램(Finite State Machine, Statechart)에는 다음과 같은 구성 요소가 포함된다. - State : 시스템 또는 객체가 가질 수 있는 다양한 상태를 표시 - Event : 시스템 또는 객체가 상태 변화를 일으키는 사건 - Transition : 상태 간의 변화 아래의 다이어그램에.. 2024. 3. 3.
UML 다이어그램 (Unified Modeling Language Diagram) Architecture & Design Pattern 전체 링크 UML (Unified Modeling Language) - SW 개발에서 시스템을 시각적으로 모델링하고 문서화하기 위해 사용되는 표준화된 언어 - SRS, SDS, 데이터 / 비즈니스 / 오브젝트 / 컴포넌트 모델링에서 사용됨 MOF (Meta Object Facility) - 모델 기반 소프트웨어 공학 분야에서 사용되는 표준 메타모델링 언어 - M0 Layer : 실제 구축하고자 하는 SW 시스템의 인스턴스를 포함 (Application) - M1 Layer : M0에 대한 모델을 포함, 클래스 다이어그램 등이 속하게 된다. (UML Model) - M2 Layer : M1 계층의 모델을 설명하는 메타모델을 포함. 시스템 구조, 속성, .. 2024. 3. 2.
UML - 시퀀스 다이어그램 (Sequence Diagram) Architecture & Design Pattern 전체 링크 참고 - 시퀀스 다이어그램 그리기 - https://www.ibm.com/docs/en/dma?topic=diagrams-interaction-operators-in-sequence - 싱글턴 패턴 시퀀스 다이어그램 (Sequence Diagram) - 시간에 따른 객체 또는 구성 요소 간의 상호작용을 나타낸다. - 메시지 교환 순서를 보여주어 시스템의 제어 흐름을 모델링한다. 구성 요소 시퀀스 다이어그램에는 다음과 같은 구성 요소가 포함된다. - Object : 시스템의 객체 또는 시스템이 하는 역할 - Message : 객체 간의 상호작용을 나타내는 화살표 - Lifeline : 시간의 흐름에 따라 객체의 존재를 보여주는 수직선 - Pa.. 2024. 3. 2.
C++ - 메멘토 패턴 (Memento Pattern) C, C++ 전체 링크 Architecture & Design Pattern 전체 링크 메멘토 패턴 (Memento Pattern) - 행동 패턴 - 객체의 내부 상태를 저장하고 나중에 복원할 수 있는 패턴 - 상태를 변경하면서 객체를 수정할 때 사용한다. 구현 - Originator : 상태를 가지고 있는 객체, 객체의 상태를 저장하고 복원을 할 수 있다. - Memento : 상태를 저장하는 객체, Originator 객체의 상태를 포착한다. - Caretaker : Memento를 관리하는 객체, Memento의 생성, 저장, 복원을 담당한다. 장점 - 객체 상태를 저장하고 복원하기 때문에 이전 상태로 쉽게 되돌릴 수 있다. (실행 취소, 다시 실행 기능) - Memento는 Originator의 .. 2024. 3. 1.
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.
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.
반응형