Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

성빈

[설계패턴] 객체지향 모델링 (미완) 본문

설계패턴

[설계패턴] 객체지향 모델링 (미완)

성빈나 2023. 10. 24. 01:24

디자인 패턴

 

● 디자인 패턴이란?

소프트웨어를 설계할 때 자주 발생하는 문제들에 대한 "재사용 가능한 해결책"

 

● 디자인 패턴의 이점

- 경험이 많은 소프트웨어 엔지니어들의 이 같은 해법을 재사용

- 공통 언어 역할을 하게 되어, 경험 많은 이들이 이 공통의 언어를 이용하면 그렇지 않을 경우보다 좀 더 효율적으로 협동 작업 가능하다. 

- 불필요한 논쟁 시간 줄일 수 있다. 

 

● GoF(Gang of Four) 

Design Patterns : Elements of Reusable Object-Oriented Software

에릭 감마(Erich Gamma), 리차드 헬름(Richard Helm), 존 블리자이드(John Vlissides), 랄프 존슨(Ralph Johnson)

 

● GoF 설계패턴

1) 생성(creational) 패턴

    객체의 생성과 관련된 패턴

2) 구조(structural) 패턴

   클래스나 객체들을 조합해 더 큰 구조로 만들 수 있게 해주는 패턴

3) 행위(behavioral) 패턴

   객체들이 서로 소통하는 방법이나 어떤 태스크, 어떤 알고리즘을 어떤 객체에 할당하는 것이 좋을지를 정의하는 패턴

 

이러한 패턴들을 사용하여 객체간의 효과적인 상호작용을 가능하게 한다.

 

● GoF 디자인 패턴의 분류

  생성 패턴 구조 패턴 행위 패턴
패턴 이름 추상 팩토리
(Abstract Factory)
어댑터
(Adapter)
책임 연쇄 (Chain
of Responsibility)
  빌더
(Builder)
브리지
(Bridge)
커맨드
(Command)
  팩토리 메서드
(Factory Method)
컴퍼지트
(Composite)
인터프리터
(interpreter)
  프로토타입
(Prototype)
데커레이터
(Decorator)
이터레이터
(Iterator)
  싱글턴
(Singleton)
퍼사드
(facade)
미디에이터
(Mediator)
    플라이웨이트
(Flyweight)
메멘토
(Memento)
    프록시
(Proxy)
옵서버
(Observer)
      스테이트
(State)
      스트래티지
(Strategy)
      탬플릿 메서드
(Template Method)
      비지터
(Visitor)

 


모델링

● 모델의 역할 : 서로의 해설을 공유하여 합의, 가시화, 시스템을 구축하는 틀

● 모델링 : 모델을 추상화로 만든 것

* 추상화 : 관련있는 점은 부각하고, 관련 없는 것은 무시한다.

 

UML

시스템을 모델로 표현해주는 언어 (모델링 언어의 대표적인 예)

- 시스템 구조와 동작을 표현하는 13개 다이어그램을 제공한다. ( 다양한 관점에서 모델링하기 위함)
  이중 클래스 다이어그램(구조) + 순차 다이어그램(행위) => 설계패턴을 표현

- 현재 UML 2.5버전

- 객체 관련 표준화 기구(OMG) 에서 제인슨 러버 OMT + 이바 야콥슨 OOSE + 그래디 부치 OOAD 방법론을 통합해서 만들었다.