디자인 패턴 - 커맨드 패턴 💡 요청을 캡슐화 해서 요청자(Invoker)와 수신자(receiver)를 분리하는 패턴으로 요청의 구현 내용이 바뀌더라도 요청자가 변경되지 않고 커맨드가 확장 될 수 있어 객체지향 원칙 OCP(Open Closed Principle)를 지킬 수 있다. 🎯 하나의 인터페이스를 통해 여러개의 구체적인 요청(Command)을 호출하도록 한다. 객체 모델 구현 👉 Command @FunctionalInterface public interface Command { void execute(); } Command 는 로직을 추상화 한다. 👉 ConcreteCommand public class FirstConcreteCommand implements Command{ private Rece..
책임 연쇄 패턴 🖌 어떤 요청 사항에 여러개의 책임이 있을 수 있다. 이 상황에서 하나의 객체에 여러 책임을 몰아 넣는 것은 단일 책임 원칙(SRP)에 어긋나는 행동일 수 있기 때문에 책임 연쇄 패턴은 이를 해결하기 위해 요청을 보내는 쪽과 요청을 처리하는 쪽을 분리하여 즉, 요청하는 쪽이 처리하는 쪽을 알지 못하게 숨겨 느슨한 결합(Loose coupling)을 만들고 요청을 처리 하는쪽을 동적으로 추가해 나갈 수 있도록 해주는 디자인 패턴이다. 객체 모델 Handler 요청을 처리하는 단일화 된 인터페이스를 통해 후속 처리자와의 연결을 시켜 메시지를 다은 객체에게 전달한다. public abstract class Handler { private Handler nextHandler; public Han..
이터레이터 패턴(Iterator Pattern) 📝 한글로는 반복자 패턴이라고 부르는데 집합 객체(aggregate object)에 내부를 노출시키지 않고 원소들을 순차적으로 접근하는 방법을 제공하는 디자인 패턴이다. 객체 모델 ⚙️ ConcreteAggregate public class ConcreteAggregate implements Aggregate{ Object[] aggregate; private int size; public ConcreteAggregate(Object[] aggregate) { this.aggregate = aggregate; this.size = aggregate.length; } @Override public Iterator createIterator() { return..
플라이웨이트 패턴 (Flyweight pattern) 📝 플라이웨이트(Flyweight) 단어에서 느낄 수 있듯이 가볍다는 의미를 내포하고 있다. 플라이웨이트 패턴은 공유(Sharing)를 통해서 객체를 가볍게 만들어 메모리 사용을 줄여주는 방법을 제공하는 패턴이다. 자주 변하는 속성(extrinsit)과 변하지 않는 속성(intrinsit)을 분리하고 재 사용해 메모리 사용량을 줄일 수 있다. 객체모델 Flyweight /** * Flyweight 객체는 캐싱되어야 하고 공유되어야 하기 때문에 불변해야 한다.
- Total
- Today
- Yesterday
- multimap
- 내부 단편화
- 컴포짓 패턴
- pass by value
- 메모리 단편화
- SpringBoot 2.2
- 뾰족함
- 메모리 파편화
- 정적 타입 언어
- Object Pool
- ATDD
- java
- Memory Fragmentation
- 객체 풀
- 동적 타입 언어
- 동적 디스패치
- 세션 불일치
- pass by reference
- Session
- 외부 단편화
- 수평 분할
- 장애 해결기
- OOP
- 육각형 아키텍처
- RestAssured
- 클린 아키텍처
- Clean Architecture
- 수직 분할
- Sticky Session
- pool
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |