본문 바로가기

Design Pattern

(10)
10. MA와 MSA 아키텍쳐 1. MA 모놀리틱 아키텍처 Monolithic Artchitecture 마이크로 서비스 아키텍쳐(MSA)에 반대되는 개념으로, 애플리케이션 모든 구성 요소가 한 프로젝트에 통합되어 있는 형태를 말함. 전체 어플리케이션이 하나로 되어있어 배포 및 테스트도 하나의 애플리케이션만 하면 되기에 개발 및 환경 설정이 단순함. 각 컴포넌트들이 함수로 호출 되기 때문에 성능 제약이 덜하고 운영이 용이. 작은 볼륨의 시스템 개발시 유용. 서비스 간 호출이 하나의 프로세스 내에서 이루어지기 때문에 속도가 상대적으로 빠를 수도 있음. 출처 : https://medium.com/koderlabs/introduction-to-monolithic-architecture-and-microservices-architecture-..
9. MVVM 패턴 보호되어 있는 글입니다.
8. MVC 패턴 보호되어 있는 글입니다.
7. 이터레이터 패턴과 노출모듈 패턴 보호되어 있는 글입니다.
6. 프록시 패턴 보호되어 있는 글입니다.
5. 옵저버 패턴 Observer Pattern 1. 옵저버 패턴이란 주체가 어떤 객체의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 옵저버 목록에 있는 옵저버들에게 상태 변화를 고지하는 디자인 패턴. 주체 : 객체 상태 변화를 보고 있는 관찰자 옵저버 : 이 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들 객체와 주체가 분리되어 있는 옵저버 패턴도 있고 객체와 주체가 합쳐진 옵져버 패턴도 있음. 이미지 출처 : 직접 제작 2. 옵저버 패턴의 활용 대표적인 옵저버 패턴 : 트위터 (옵저버들이 객체를 팔로우했다면 주체가 객체를 관찰하다가, 포스팅을 올리면 알림이 옵저버인 팔로워에게 감.) 옵저버 패턴은 주로 이벤트 기반 시스템에 사용 MVC (Model - View - Controller) 패..
4. 전략패턴 Strategy Pattern 1. 전략 패턴의 정의 객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 '캡슐화 한 알고리즘'(so called 'strategy')을 컨텍스트안에서 바꿔주어 교체가 가능하게 하는 패턴. 행위를 직접 수정하는 것이 아닌, 전략을 바꿔지기만 하기에 유연하게 확장가능한 패턴. 유연하고 재사용 가능한 객체 지향 소프트웨어를 설계하기 위해 반복되는 디자인 문제를 해결. passport(Node.js에서 인증 모듈을 구현할 때 쓰는 미들웨어 라이브러리)가 전략 패턴을 활용. (페이스북, 네이버 등 다른 서비스로 인증하는 OAuth Strategy와 서비스 내 회원가입 정보를 기반으로 인증하는 LovalStartegy를 지원.) 2. 전략패턴의 예시 public interface M..
3. 팩토리패턴 Factory Pattern 1. 팩토리 패턴 (Factory Pattern) 팩토리 패턴은 객체를 사용하는 코드에서 객체 생성 부분만 분리해 추상화한 패턴. 상속 관계에 있는 두 클래스에서 상위 클래스가 핵심 뼈대를 결정하고 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴. 장점 상위 클래스와 하위 클래스가 분리되기 때문에 느슨한 결합을 가지고 상위 클래스에서는 인스턴스 생성 방식에 대해 알 필요가 없어서 유연성이 높음. 객체 생성 로직이 분리되어있기에 코드 리팩터링이 용이하고 유지보수성이 증가. 하위 코드에서 CoffeeFactory는 상위 클래스가 중요한 뼈대를 결정하고 하위 클래스인 LatteFactory가 구체적인 내용을 결정. 이는 의존성 주입이라고 볼 수도 있다. (CoffeFactory에서 LatteF..