개발 - 고급/Design Pattern

0. UML 및 기초

wooweee 2023. 10. 28. 10:51
728x90

1. UML

  • 시스템 개발을 위한 시각적인 설계 표기
  • UML은 표준화된 모델링 언어 : 시각화, 명세화, 구축, 문서화 언어이다.

2. UML 다이어 그램

  • 유스 케이스
  • 클래스
  • 순차
  • 통신
  • 활동
  • 상태
  • 컴포넌트
  • 배치
  • 패키지

3. 객체 지향 모델링

  • 모델링 : 개발하고자 하는 프로그램을 시각적으로 표현한 것
  • 객체 지향 모델링 : 객체 지향 시스템을 가시화하고 명세화, 문서화 하는 것이 목적인 모델링
  • 소프트웨어 모델링 : 실제 생활에 일어나는 일을 소프트웨어적으로 모델링한 것
  • 시스템 설계 시, 중요점 : 신뢰성, 확장성(유지보수)

4. 객체, 클래스, 메시지

  • 메시지
    • 객체간의 협력하기 위한 상호작용 수단
    • 한 객체가 다른 객체에게 작업을 요청하는 신호
  • 객체
    • 1가지의 역할만 가지고 변하는 것과 변하지 않는 것을 분리시켜야된다. srp 원칙

5. 클래스

5.1. 구성 요소

종류 부호
public +
protected #
(default) ~

5.2. 클래스 관계 구분

 

  • 생명주기
    • 복합 : 자동차,엔진,핸들 (같이 움직인다) (하얀거)
    • 집합 : 팀과 멤버 관계 (별개) (까만거)
  • 의존관계
    • tv → 리모컨 : tv는 리모콘을 안다. 하지만 리모컨은 tv인지 라디오인지 모른다.
    • →는 tv가 리모컨을 안다는 의미
    • 양방향이면 안된다. 보통 매개변수로 사용
  • 연관계계
    • worker - company : 쌍방 참조. 좋은 관계는 아님 * 양방향, 순환관계 안좋은 관계
  • 일반화, 특수화 관계 : 상속관계, kind-of, is-a

  • 참고 블로그 : https://mydirectorystory.tistory.com/entry/5-%ED%81%B4%EB%9E%98%EC%8A%A4-%EA%B4%80%EA%B3%84-Class-Relationships

 

6. 디자인 패턴 핵심 23개 (공식적으로 중요한 것)

  • template, factory, abstract 관계가 깊다.
  • strategy, template method 관계가 깊다.
  • 3,4,8번은 비슷

6.1. 개요

  • 디자인 패턴은 일반적인 개념.어떤 종료의 클래스와 인터페이스가 등장하는가, 어떤 관계에 있는가 → 어떤 역할인지가 핵심
  • 프로그램은 완성품이 아닌 기능을 확장해 가는 재사용 가능 한 것