파사드 패턴(Facade Pattern) 💡 클라이언트에게 파사드(Facade)라는 하나의 인터페이스만 제공해 서브 시스템의 구현을 숨기고 의존성을 낮추는 방법을 제공한다. 개요 프랑스 어로 건물의 입구가 위치한 외벽을 가리킨다. 건물은 파사드(Facade)를 통해 외부에서 내부가 정확히 어떻게 생겼는지 알지 못하게 숨기게 되는데, 이는 소프트웨어에서 내부 구현을 숨기고 외부에는 파사드(Facade)만 노출시키는 상황을 예상해 볼 수 있다. 객체 모델 👍 장점 서브 시스템을 파사드를 통해 접근하게 구조화 하면 복잡성을 줄일 수 있다. 클라이언트가 가져야할 의존성을 하나로 통합하여 줄일 수 있다(Loose Coupling). 🎯 실제 활용 스프링에서 각 레이어간 의존성을 줄이기 위해 파사드(Facade)에..
데코레이터 패턴 (Decorator Pattern) 💡 기존 코드 변경 없이 부가 기능을 동적으로 추가할 수 있는 패턴이다. 확장을 위해 서브 클래스를 생성하는 것이 아닌 위임을 사용해 부가기능을 추가하는 것이 가능하다. 👍 장점 다른 객체에 영향을 주지 않고 객체에 새로운 책임을 동적으로 추가할 수 있다. 즉, OCP 원칙을 준수한다. 필요에 따라 추가•삭제가 용이하다. 객체 모델 Component 데코레이터 혹은 데코레이터를 통해 책임을 추가할 가능성이 있는 객체의 인터페이스 Decorator Component 객체를 합성하면서 Component 인터페이스를 구현해 중간에 책임을 추가할 수 있도록 만든 객체 ConcreteComponent 데코레이터를 통해 책임을 추가할 수 있는 Component ..
정의 💡 그룹의 여러 요소들을 동일한 인터페이스를 구현한 개별 객체 하나로 묶어 동일한 인터페이스로 접근하여 처리할 수 있는 패턴이다. 설명 하나의 인터페이스를 최상위 노드로 가지는 트리형태의 하위 타입 요소(Component)와 이를 포함하는 복합 객체(Composite)를 만들어 최상위 노드의 인터페이스로 복합요소를 사용하는 디자인패턴을 얘기한다. 객체 모델 Composite 복합 객체로 여러 Component 들을 포함하고 있는 객체이다. public class Composite implements Component{ List components; public Composite(List components) { this.components = components; } @Override public ..
브릿지 패턴 (Bridge Pattern) 💡 추상적인 것과 구체적인 것을 분리하고 연결해 각각이 독립적으로 다양성을 가질 수 있도록 하는 디자인 패턴이다. 브릿지 패턴은 추상체와 구현체를 수직이 아닌 수평으로 연결하는 방법이다. 🤔 필요성 👇 위에서 아래로 확장하는 상속의 경우 구현과 추상적인 개념을 강하게 종속시키기 때문에 추상체와 분리해서 수정 및 확장이 어렵고, 재사용이 힘들다. 즉, 수직으로 관계를 맺고 있는 경우 상위 개념에 종속되어 그 깊이가 깊어질수록 이식성이 떨어진다.(재활용 ❌) 브릿지 (가교) 패턴은 이러한 문제 해결을 위해 등장하였다. 🎯 장점 추상체와 구현체의 느슨한 결합(Loose Coupling)을 만들어 컴파일 시점이 아닌 런타임 시점에 결정할 수 있도록 할 수 있다. 느슨한..
- Total
- Today
- Yesterday
- pass by value
- multimap
- 컴포짓 패턴
- 메모리 파편화
- 내부 단편화
- 동적 타입 언어
- ATDD
- 정적 타입 언어
- 장애 해결기
- java
- 수평 분할
- 수직 분할
- Sticky Session
- 뾰족함
- 클린 아키텍처
- SpringBoot 2.2
- pool
- pass by reference
- Memory Fragmentation
- 객체 풀
- OOP
- 메모리 단편화
- 동적 디스패치
- Object Pool
- RestAssured
- 세션 불일치
- Session
- 외부 단편화
- 육각형 아키텍처
- Clean Architecture
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |