본문 바로가기
Design Pattern

[디자인 패턴] 총 정리 (2) - 디자인 패턴이란? + 디자인 패턴 종류

by 노력남자 2022. 2. 11.
반응형

이번 포스팅에선 디자인 패턴이 무엇인지 왜 배워야 하는지를 설명하고 디자인 패턴 종류를 알아보겠습니다.

 

디자인 패턴이란?

 

일반적으로 우리가 말하는 디자인 패턴은 GOF(Gang Of Four)라는 괴물들이 집필한 Design Patterns에 나오는 23개의 패턴을 말합니다.

 

개발을 구조적으로 우아하게 설계하려고 노력하다보니 반복되는 패턴들이 발견됐는데 그걸 바로 디자인 패턴이라고 합니다.

 

(괴물들이 집필한 이 책의 번역본이 있습니다. 근데 보기가 너무 어렵... ㅠㅠ)

 

디자인 패턴을 왜 배우라고 하나?

 

1. 일단 제일 큰 이유는 개발자들과 소통이 잘 되기 위함입니다.

 

예를 들어 코드리뷰를 할 때

 

디자인 패턴 모르는 개발자

 

"나는 1, 2, 3, 4 실행 순서 중 3번만 a, b, c 상태 별로 다르기 때문에 1, 2, (3), 4 순서는 부모 메소드에 냅두고 3번만 상속이나 구현으로 풀었으면 좋겠어요." (나 : ? 왜 저렇게 어렵게 말하지?)

 

디자인 패턴 아는 개발자

 

"이 부분 템플릿 메소드 패턴으로 하는 게 어떨까요?"

 

별 거 아닌 거 같아도 커뮤니케이션이 짧아지고 명확해지니 아주 좋은 소통을 할 수 있습니다.

 

2. 더 우아하고 더 빠른 개발을 할 수 있다.

 

이미 많은 고민들을 통해 나와있는 패턴들을 어느정도 숙지하고 있다면 개발하는데 많은 도움이 됩니다.

 

23개의 패턴이 항상 쓰이는 건 아니고 유용하지 않을 수도 있습니다. 하지만 패턴에서 보이는 고민들을 숙지하고 있으면 복잡하고 중복이 많은 코드를 짜지 않는 방향으로 개발할 가능성이 커집니다. 코드 보는 관점이 조금씩 바뀌니깐요.

 

디자인 패턴 종류

 

생성 패턴 (5개) + 구조 패턴 (7개) + 행동패턴 (11)개로 이루어져 있습니다.

 

23개를 어떻게 기억하지?라고 생각이 들 수도 있지만 패턴 이름에 뜻이 다 명확하게 보이기 때문에 걱정없습니다.

 

아래 표를 보시면 일이나 책에서 가끔 봤던 단어들이 보일 겁니다. 그게 바로 이겁니다.

 

생성 패턴 (5개) 구조 패턴 (7개) 행동 패턴 (11개)
싱글톤 (Singleton) 어댑터 (Adapter) 책임 연쇄 (Chain-of-Responsibility)
팩토리 메소드 (Factory Method) 브릿지 (Bridge) 커맨드 (Command)
추상 팩토리 (Abstract Factory) 컴포짓 (Composite) 인터프리터 (Interpreter)
빌더 (Builder) 데코레이터 (Decorator) 이터레이터 (Iterator)
프로토타입 (Prototype) 퍼사드 (Facade) 중재자 (Mediator)
  플라이웨이트 (Flyweight) 메멘토 (Memento)
  프록시 (Proxy) 옵저버 (Observer)
    상태 (State)
    전략 (Strategy)
    템플릿 메소드 (Template Method)
    비지터 (Visitor)

 

패턴이 23개나 되어서 배우는데 고민이 된다면 하루에 1개씩이라도 익히면 됩니다.

 

다음 포스팅부터 1개씩 알아보겠습니다. 생성 패턴부터 행동 패턴까지 쭉쭉 포스팅하겠습니다~

반응형

댓글