아키택처 패턴과 디자인 패턴의 차이점

 

개발하면서 MVVM, MVC MVP 등등 용어를 사용하게 되는데 

어떤 글을 보면 "디자인 패턴의 한 종류"일 뿐이다. 란 글도 있고, 어떤곳에서는 아키택처라고 부르기도하고.. 개인적으로

차이점을 명확하게 정리할 필요가 있다고 생각했고, 필요해서 글을 남기게 되었다.

 

아키텍처 패턴 vs. 디자인 패턴

  1. 범위와 초점
    • 아키텍처 패턴은 비즈니스 문제에 대한 해결책으로, 아이디어의 추상적인 관점에 더 초점 맞췄다. 전체 시스템의 구조를 설계하는 데 사용된다.
    • 디자인 패턴은 매우 구체적인 소프트웨어 관련 작업을 제공하며, 구현 관점에 초점을 둔다. 소프트웨어 개발의 특정 부분에 대한 솔루션을 제공.
  2. 정의의 수준
    • 디자인 패턴은 세부적인 수준에서 정의되는 반면, 아키텍처 패턴은 보다 고수준에서 정의. 
  3. 상호작용
    • 하나의 아키텍처 패턴은 여러 디자인 패턴을 사용하여 구현될 수 있다. 아키텍처 패턴과 디자인 패턴 사이에 일대다 관계가 있음을 나타냄.

주요 아키텍처 패턴

  • MVC (Model-View-Controller)
  • MVP (Model-View-Presenter)
  • MVVM (Model-View-ViewModel)
  • VIPER
  • 쓰리-티어/멀티-티어
  • 의존성 주입

주요 디자인 패턴

  • 갱 오브 포(Gang of Four, GOF)에 의해 정의된 23가지 디자인 패턴이 있으며, 이는 생성 패턴, 구조 패턴, 행위 패턴으로 분류.

결론

아키텍처 패턴은 더 높은 수준의 추상화를 제공하고, 프로젝트나 솔루션의 전체 구조에 관한 지침을 제공한다.

반면, 디자인 패턴은 구체적인 소프트웨어 개발 문제에 대한 솔루션을 제공한다.

 

"아키텍처 패턴 >>>>> 디자인 패턴"