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