본문 바로가기

전체 글

(31)
9. MVVM 패턴 보호되어 있는 글입니다.
8. MVC 패턴 보호되어 있는 글입니다.
7. 이터레이터 패턴과 노출모듈 패턴 보호되어 있는 글입니다.
6. 프록시 패턴 보호되어 있는 글입니다.
[Q&A] 1. 디자인 패턴 및 프로그래밍 패러다임 1. 싱글톤 패턴에 대해 설명하고 장단점을 설명하시오. 클래스에 하나의 인스턴스만 만들어, 단일 인스턴스를 모듈이 공유합니다. 단일 인스턴스 기반으로 로직을 설계합니다. 데이터베이스 연결 모듈에 많이 사용됩니다. 장점으로는 인스턴스 생성비용이 감소합니다. 따라서 인스턴스 생성 비용이 많이 드는 I/O바운드 작업(네트워크 연결, 데이터베이스 연결 등 )에 많이 사용됩니다. 단점으로는 단일 인스턴스에 모듈들이 종속되기에 의존성이 높아집니다. +추가 답변: 따라서 TDD(Test Driven Development)에서는 걸림돌이 될 수 있습니다. TDD에서는 단위 테스트를 주로 하기에 테스트가 서로 독립적이고 어떤 순서로든 실행가능해야합니다. 하지만 싱글톤 패턴은 미리 생성된 하나의 인스턴스를 기반으로 구현하..
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..