어댑터 패턴 ( Adapter Pattern ) 🔥 클라이언트 의 인터페이스 와 맞지 않아도 클라이언트가 기대하는 인터페이스로 변환해 사용할 수 있게 해주는 디자인 패턴이다. 용도 인터페이스 변경이 불가능한 외부 라이브러리 혹은 프레임 워크의 인터페이스를 원하는 형태의 인터페이스로 변경 후 사용할 수 있다. 유사한 작업을 진행 하지만 인터페이스가 다른 경우 하나의 인터페이스를 통합 할 수 있다. 객체 모델 Target 클라이언트가 사용하는 인터페이스 public interface Target { String task(); } Adapter Adaptee 가 Target의 인터페이스를 따르게 하기위해 Adaptee를 Wrapping 하고 있는 객체 Apdater 를 통해 서로 다른 인터페이스를 가진 객체를..
프로토타입 ( Prototype ) 패턴 🔥 인스턴스를 복제(Deep Copy)해 새로운 인스턴스를 만드는 방법을 제공해주는 디자인 패턴. 🎯 특징 ProtoType != Origin But, ProtoType equals Origin 필요 이유 객체를 네트워크를 통해 받아작업이 있고 이 작업의 비용이 크다면 네트워크를 통해 가져오는 것보다 가져온 데이터를 복사하는 것이 효율적일 수 있다. 구현 객체모델 복제를 위한 clone() 메서드가 필요하다. 복사 후 두 객체가 같다는 것을 구분하기 위해 equals 와 hashCode를 오버라이딩 해주어야 한다. 코드 장점 복잡한 객체를 만드는 과정을 숨길 수 있다. 기존 객체 복제가 새 인스턴스 가져오는 것보다 효율적인 경우가 있다. 추상적인 타입을 리턴할 수..
빌더 패턴 ( Builder Pattern ) 🔥 동일한 프로세스를 통해 다양한 구성의 인스턴스를 만드는 방법. 필요 이유 필드 값의 null 여부에 의해 다양한 구성의 인스턴스가 존재할 수 있다. 이를 자연스럽게 생성하기 위한 방법으로 점층적 생성자 패턴이 있는데, 이를 사용해 다양한 형태의 객체를 대응하면 너무 많은 생성자가 필요해 코드를 작성하거나 읽기가 힘들어진다. 대안으로는 자바빈즈 패턴으로 생성 후 Setter를 통해 매개변수 설정 방법이 있을 수 있는데 이러한 방법은 세터 메서드가 전부 처리되기 전까지는 객체가 미완의 상태를 가지게 되고 불변 객체를 만들 수 없다는 문제가 있다. 때문에 대안으로 빌더 패턴이 필요하다. 객체 모델 구현 Product Builder 와 ConcreteBuilde..
팩토리 메소드 패턴 ( Factory Method Pattern ) 💡 다양한 구현체(Product)가 있고, 그 중에서도 특정한 구현체를 만들 수 있는 다양한 팩토리(Creator)를 제공하는 패턴. 상위 타입만 알고도 감춰진 구현체들을 생성할 수 있게 도와주는 Factory를 중간에 두어 새로운 구현체 추가를 위해 기존 코드 수정이 필요 없도록 한다. 팩토리 메소드 패턴 컴파일 의존관계 새로운 구현체(Product) 확장 후 의존관계 팩토리 메소드 패턴 런타임 의존관계 팩토리 메서드 패턴 구현 클래스간 의존 관계도 Client public class Client { private final PhoneFactory phoneFactory; public Client(PhoneFactory phoneFac..
- Total
- Today
- Yesterday
- 메모리 파편화
- 동적 타입 언어
- 컴포짓 패턴
- SpringBoot 2.2
- java
- 클린 아키텍처
- Sticky Session
- 수직 분할
- 수평 분할
- 객체 풀
- RestAssured
- Object Pool
- pass by reference
- pool
- 세션 불일치
- 육각형 아키텍처
- Clean Architecture
- 동적 디스패치
- OOP
- 외부 단편화
- 내부 단편화
- ATDD
- pass by value
- 메모리 단편화
- 뾰족함
- 장애 해결기
- Session
- multimap
- 정적 타입 언어
- Memory Fragmentation
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |