디자인 패턴 0 - intro

·2020년 7월 25일
0

Design Patterns

목록 보기
1/2
post-thumbnail

누군가가 이미 여러분의 문제를 해결해 놓았습니다.

디자인 패턴 공부를 시작하는 이유

공부해야 할 것이 정말 많은 와중에 디자인 패턴에 관심을 가지게 된 이유는

  1. 최근 부쩍 클린 코드에 대한 욕심이 생겨서
  2. 다른 개발자들의 말을 정확하게 이해하고 싶어서
  3. 파편적으로 공부하던 이전과는 달리 주제를 정해서 지속적으로 스터디하듯 진행하고자 하는데 구성원 모두가 관심을 가질만한 주제였으면 해서 - 이다.

 

디자인 패턴이란?

개발을 하다보면 누구나 만나게 되는 반복적인 문제들이 있는데 이 문제에 대한 해결법들에서 나타나는 규칙성, 말 그대로 '패턴'을 의미한다.

즉 내가 앞으로 겪게 될 문제들을 미리 겪은! 다른 개발자들이 먼저 고민하고 찾아낸 솔루션, 방법론이라고도 할 수 있다.

typical solutions to common problems in software design in object-oriented design

코드를 재사용하는 것과 마찬가지로 경험을 재사용하는

 

무엇을 디자인하는 것인가?

객체,
객체들의 관계,
객체들간의 상호작용 방법

 

디자인 패턴을 알아야 하는 이유

올바른 설계를 빠르게 완성할 수 있다.
패턴이라는 '공통의 언어'를 알게 되면 효율적이고 정확하게 커뮤니케이션을 할 수 있다.

 

디자인 패턴의 구조

context
어떤 맥락에서 이 문제가 발생했는가 (케바케라고 하듯, 어떤 케이스인지에 대한 이해가 필요하다)

problem
패턴이 적용되어 해결해야 할 문제

solve
특정한 상황 context 에서 구조적인 문제 problem 을 해결하는 방식

 

디자인 패턴의 종류

생성

  • 추상 팩토리
  • 빌더
  • 팩토리 메서드
  • 프로토타입
  • 싱글턴

구조

  • 어댑터
  • 브리지
  • 컴퍼지트
  • 데코레잍
  • 퍼사드
  • 플라이웨이트
  • 프록시

활동

  • 책임 연쇄
  • 커맨드
  • 인터프리터
  • 이터레이터
  • 미디에이터
  • 메멘토
  • 옵저버
  • 스테이트
  • 스트래터지
  • 템플릿 메서드
  • 비지터

 

소프트웨어 디자인 패턴? GoF? 동시성? 아키택처?

소프트웨어 디자인 패턴에는 GoF 패턴, 동시성 패턴, 아키택처 패턴 등 여러 종류가 있다.
그 중 내가 공부하고자 하는, 위에서 설명한 '디자인 패턴'은 GoF 가 정의한 패턴들을 의미한다.

 
🔗 세션자료 https://docs.google.com/presentation/d/1DEt8wMt_tA2oWhR5tLad70scLA7eJl9zc4_JZ2jgzY0/edit?usp=sharing

0개의 댓글