티스토리 뷰

iOS/iOS-Design-Pattern

Design Pattern(디자인 패턴)

malrang-malrang 2022. 7. 18. 02:23

Design Pattern(디자인 패턴)

디자인 패턴이란?

  • 프로그래밍 설계를 할때 자주 발생하는 문제들을 해결하기 위해 사용되는 패턴, 구조 라고 할 수 있다.

    디자인 패턴을 공부하다 보면 '아 이게 패턴이었어?' 라는 생각이 드는 순간이 있다. 디자인 패턴이라는 것이 정형화된 어떤 기술이 아니기 때문이다.
    오래도록 경험이 축척되어 널리 굳혀진 방법론 일 뿐이며 누군가는 디자인 패턴을 선배들의 삽질 기록물 이라고 하는 이유가 그것이다.

디자인 패턴의 장점

  • 객체지향 프로그래밍의 다양한 문제를 해결 혹은 더 나은 방법 을 제시해준다.

    • 비슷한 상황에서 효과적으로 문제를 해결해오던 패턴이기 떄문에 쉽고 빠르게 해결책을 찾을수 있다.
  • 디자인 패턴은 프로그래머 사이의 협업 효율과 의사소통을 증진시켜준다.

    • 여기서는 Singleton pattern을 쓰면 좋지 않을까요? 등 코드의 구조에 이름을 붙여 소통할 수 있기에 좀더 의도를 정확하고 빠르게 전달 할 수 있다.
  • 디자인 패턴은 코드를 재사용성이 좋도록 만들어주고, 안정적이고 최적화 되게 만들어준다.

디자인 패턴과 아키텍쳐

  • MVC, MVVM 이러한 것들을 누군가는 디자인 패턴이라 부르기도 하고 누군가는 아키텍쳐 라고 부르기도 한다.

    아키텍쳐란 코드의 구조를 이야기 한다.
    아키텍쳐는 디자인 패턴보다 큰 개념으로 디자인 패턴을 아우르는 개념이라 할 수 있다.

    디자인 패턴은 마찬가지로 코드의 구조를 의미하지만 더작은 단위의 문제 해결에 대한 솔루션이라고 할 수 있다.

    위처럼 구분지어 설명해볼 수 있지만 디자인패턴과 아키텍쳐의 경계가 모호한 개념이기 때문에 아키텍쳐를 패턴이라 부르기도 한다. MVC, MVVM의 예시처럼 말이다.

GoF(Gang of Fours) 디자인 패턴

GoF디자인 패턴은 Gang of Fours의 약자로 4명의 개발자에의해 쓰여진 Design Patterns: Elements of Reusable Object-Oriented Software. (1995) 이라는 논문 에따라 GoF 디자인 패턴 이라는 이름이 붙게되었는데.
GoF 디자인 패턴은 생성 패턴, 구조 패턴, 행위 패턴 크게 3가지 카테고리로 나뉘며 총 23가지가 존재한다.

1. 생성 패턴
객체가 생성되는 과정의 유연성을 높이고 코드의 유지를 쉽게 만들어주는 패턴

  • Builder 패턴
  • Prototupe 패턴
  • Factory Method 패턴
  • Abstract Method 패턴
  • Singleton 패턴

2. 구조 패턴
둘 이상의 객체가 상호작용하며 더 큰 의미를 만들어내는 패턴

  • Bridge 패턴
  • Decorator 패턴
  • Facade 패턴
  • Flyweight 패턴
  • Proxy 패턴
  • Composite 패턴
  • Adapter 패턴

3. 행위 패턴
오브젝트 사이의 상호작용과 오브젝트의 역할(책임)에 대한 패턴
행위 패턴에서는 하나의 동작에 대해서 여러 객체들이 작업을 분배하여 각자의 역할을 가지게 됩니다.

  • Interpreter 패턴
  • Template Method 패턴
  • Chain of Responsibility 패턴
  • Command 패턴
  • Iterator 패턴
  • Mediator 패턴
  • Observer 패턴
  • State 패턴
  • Strategy 패턴
  • Visitor 패턴

'iOS > iOS-Design-Pattern' 카테고리의 다른 글

Coordinator 패턴  (0) 2022.07.17
Decorator Pattern(데코레이터 패턴)  (0) 2022.07.17
Singleton Pattern 이란????  (0) 2022.03.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
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
글 보관함