데코레이터 패턴 데코레이터패턴은 객체의 결합을 통하여 기능을 동적으로 확장할 수 있도록 해주는 패턴입니다. 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우 각 추가 기능을 Decorator 클래스로 정의한 후 필요한 Decorator 객체를 조합함으로써 추가 기능을 조합하는 설계 방식입니다. 클래스 다이어 그램 Component 기본 기능을 의미하는 ConcreteComponent와 추가 기능을 의미하는 Decorator의 공통 기능을 정의합니다. 클라이언트는 Component를 통해 실제 객체를 사용합니다. ConcreteComponent 기본 기능을 구현하는 클래스 Decorator 다양한 추가 기능에 대한 공통 클래스를 정의합니다. ConcreteDecorator Decorator 클래스의..
컴포지트 패턴 여러개의 객체들로 구성된 복합 객체와 단일 객체를 클라이언트에서 구별없이 다루게 해주는 패턴입니다. 클라이언트는 복합 객체와 단일 객체를 신경쓰지 않고 인터페이스를 통해 어떠한 객체든 사용할 수 있습니다. 클래스 다이어 그램 Component Leaf 클래스와 Composite 클래스의 공통 인터페이스 정의 Leaf 구체적인 부분 클래스 Composite 객체의 부품으로 설정 Composite 전체 클래스 복수개의 Component를 갖도록 정의 예시 휴대폰에 각종 기능 장착하기 // 배터리 기능 @Getter public class Battery { private int price; private int power; public Battery(int price, int power) { t..
어댑터 패턴 어댑터 패턴은 이름에서 알 수 있는거처럼 어댑터처럼 사용되는 패턴입니다. 예를들어 마치 안드로이드 충전기에 아이폰 젠더를 사용하여 아이폰 휴대폰을 충전할 수 있도록 해주는 것입니다. 이처럼 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 동작할 수 있도록 해주는 패턴입니다. 클래스 다이어 그램 Client 써드파티 라이브러리나 외부 시스템을 사용할려는 쪽입니다. Target Interface Adapter가 구현하는 인터페이스입니다. 클라이언트는 Target Interface를 통해 Adaptee에 접근하게 됩니다. Target Interface를 통해 어댑터에게 요청을 보냅니다. Adapter Client와 Adaptee 사이에서 호환성이 없는 둘을 연결시켜주는 역할을..
싱글톤 패턴이란? 싱글톤이란 어떠한 클래스가 최초 한번만 static 영역에 할당이 되어 객체가 만들어지고 여러 차례 호출이 되더라도 하나의 인스턴스를 공유하여 사용하는 디자인패턴입니다. 즉 하나의 객체를 공유하여 여러 사람들이 사용을 하는 것입니다. 클래스 다이어 그램 Eager Initalzation (이른 초기화 방식) static으로 선언하였기 때문에 클래스 로더에 의하여 클래스가 로딩될때 객체가 생성됩니다. 또한 클래스 로더에 의해 클래스가 최초 로딩될 때 객체가 생성되므로 쓰레드에 안전합니다. 하지만 싱글톤 객체의 사용 유무와 상관없이 클래스 로더에 의해 클래스가 로딩 되는 시점에 객체가 생성되므로 메모리를 잡고 있어 비효율적입니다. public class User { private stati..
- Total
- Today
- Yesterday
- 람다 표현식
- spring boot excel download oom
- redis sorted set으로 대기열 구현
- 트랜잭셔널 아웃박스 패턴 스프링부트
- 공간 기반 아키텍처
- 자바 백엔드 개발자 추천 도서
- spring boot redisson sorted set
- java userThread와 DaemonThread
- 서비스 기반 아키텍처
- polling publisher spring boot
- spring boot 엑셀 다운로드
- microkernel architecture
- pipeline architecture
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- 레이어드 아키텍처란
- spring boot poi excel download
- spring boot redisson 분산락 구현
- spring boot redis 대기열 구현
- space based architecture
- redis sorted set
- java ThreadLocal
- pipe and filter architecture
- JDK Dynamic Proxy와 CGLIB의 차이
- @ControllerAdvice
- transactional outbox pattern
- service based architecture
- transactional outbox pattern spring boot
- spring boot excel download paging
- spring boot redisson destributed lock
- redis 대기열 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |