디자인 패턴(Design Pattern)은 작은 요소(기능)에 포커스를 맞추고 해결하려는 패턴이고,
아키텍쳐 패턴(Architecture Pattern)은 그보다는 더 큰 개념으로써, 어플리케이션 전반, 즉 어플리케이션을 이루는 요소들에 대한 상호관계/흐름(workflow)에 포커스를 맞추고 더 적합하고 나은 구조/체계를 위한 패턴이다.
프로그램을 좀 더 효율적으로 만들기 위한 모델/패턴이라고 이해하면 된다.
모델(Moder), 뷰(view), 컨트롤러(controller) 로 이루어져있다.
컴포넌트를 독립적으로 개발될 수 있다. 각 컴포넌트가 명확한 역할을 가지고 있기 때문에 가독성이 좋아지고, 가독성이 좋다는건 개발자들 사이에서 코드의 이해를 좋게 하기 때문에 협업에 좋다.
Singleton 패턴은 객체의 생성과 관련된 패턴으로서 특정 클래스의 객체가 오직 한 개만 존재하도록 보장한다. 즉 클래스의 객체를 하나로 제한한다.
① 유일한 인스턴스
② 공유 리소스
③ 단일 지점 제어
추상 팩토리 패턴은 관련성 있는 객체들의 그룹을 생성하기 위한 인터페이스를 제공하는 디자인 패턴입니다. 이 패턴은 객체를 생성하는 데 필요한 로직을 캡슐화하여 코드의 유연성과 확장성을 향상시키며, 구체적인 클래스의 인스턴스 생성을 서브 클래스에 위임합니다.
전략 패턴(Strategy Pattern)은 알고리즘을 정의하고 각각을 캡슐화하여 교환 가능하게 만드는 디자인 패턴입니다. 이 패턴을 사용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 선택하고 교환할 수 있습니다. 전략 패턴은 특히 런타임에 알고리즘을 선택해야 하는 경우에 유용합니다.
파사드 패턴은 여러 개의 저수준 인터페이스를 하나의 고수준 인터페이스로 묶어주는 패턴이다. 클라이언트가 여러 저수준 인터페이스의 동작을 제어하려면 여러 저수준 인터페이스를 일일이 호출해야 하는데, 파사드 패턴을 이용하면 고수준 인터페이스의 메소드 호출만으로 한번에 동작을 수행할 수 있게 된다.
옵저버 패턴은 객체 간의 일대다 의존 관계를 정의하여 한 객체의 상태가 변경될 때 모든 의존 객체에 자동으로 알림을 전송하고, 그 결과로써 모든 객체가 자동으로 갱신되는 방식을 제공합니다. 이 패턴은 특히 분산 시스템에서 많이 사용되며, 이벤트 처리 시스템, 리스너 패턴, 발행-구독 시스템 등에서도 활용됩니다.