어댑터 패턴 ( 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..
참조 해당 글은 아래 책 내용을 학습•기록한 내용입니다. 책에서 말하고자 하는 내용과 스스로 정리한 내용이 개인적인 견해가 섞여 다를 수 있기 때문에 자세한 내용은 책을 통해 확인 부탁드립니다. 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지 - 교보문고 이 책은 도메인 모델을 이용하여 애플리케이션을 구현하는 데 필요한 내용을 다루며 전체 11 장으로 구성되어 있다. ★이 책의 내용 1장과 2장에서는 도메인 모델을 구현할 때 알아야 할 기본적 www.kyobobook.co.kr 도메인 이란? 🔥 소프트웨어로 해결하고자 하는 문제 영역으로 여러 하위 도메인으로 구성된다. 쇼핑몰 도메인과 그 하위 도메인 도메인 전문가 👉 각 ..
- Total
- Today
- Yesterday
- pool
- Memory Fragmentation
- 동적 디스패치
- 세션 불일치
- SpringBoot 2.2
- 육각형 아키텍처
- 수평 분할
- 뾰족함
- 클린 아키텍처
- OOP
- multimap
- pass by reference
- Sticky Session
- 메모리 파편화
- RestAssured
- 동적 타입 언어
- 내부 단편화
- 메모리 단편화
- 정적 타입 언어
- Session
- 수직 분할
- Object Pool
- 컴포짓 패턴
- 장애 해결기
- 객체 풀
- pass by value
- ATDD
- Clean Architecture
- java
- 외부 단편화
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |