MVVM, MVI, 레이어드 아키텍처, 클린아키텍처 이런글들을보면 디자인패턴과 아키텍처패턴의 구분에 대해하여 생각하게됩니다.
단순히 MVVM, MVI가 디자인패턴이고 레이어드 아키텍처, 클린아키텍처가 아키텍처패턴이라고 끝나는것이 아니라 그정확한 구분에 대하여 알아봅시다.
디자인 패턴은 소프트웨어 설계 시 자주 발생하는 문제를 해결하기 위한 재사용 가능한 솔루션입니다. 이는 주로 코드 레벨에서 적용되며, 클래스와 객체 간의 관계와 상호 작용을 정의합니다. 디자인 패턴은 객체지향 프로그래밍에서 흔히 사용됩니다.
ex) 싱글턴 (Singleton),옵저버 (Observer),팩토리 메소드 (Factory Method),MVVM,MVI등
아키텍처 패턴은 시스템의 전체 구조를 정의하며, 시스템의 주요 구성 요소와 그들 간의 상호작용을 규정합니다. 이는 시스템 레벨에서 적용되며, 큰 규모의 구조적 문제를 해결하기 위한 솔루션을 제공합니다. 아키텍처 패턴은 시스템의 모듈화, 유지보수성, 확장성을 고려합니다.
ex) 레이어드 아키텍처 (Layered Architecture), 클린 아키텍처 (Clean Architecture)등
디자인 패턴은 주로 코드 레벨에서 클래스와 객체 간의 관계와 상호작용을 정의합니다.
아키텍처 패턴은 시스템 레벨에서 전체 구조를 정의합니다.
reference
https://onlyfor-me-blog.tistory.com/766