빌더 패턴이란? 자바에서는 클래스를 인스턴스화 하는 방법에는 점층적 생성자 패턴, 자바 빈즈 패턴, 빌더 패턴이 존재합니다. 점층적 생성자 패턴이란? User Class 필수 매개변수를 받는 생성자를 생성하고, 선택 매개변수 1개, 선택 매개변수 2개 등 선택 매개변수를 추가로 받는 생성자를 매개변수 개수만큼 생성자를 늘리는 방식입니다. 마치 생성자가 점층적으로 늘어나는 생성자를 가지도록 한 디자인 패턴을 말합니다. public class User { private String name; // 필수 private int age; // 필수 private String phone; // 선택 private String email; // 선택 private String address; // 선택 // 필수 데..
전략 패턴이란? 변하지 않는 기능을 Context라는 곳에 두고, 변하는 부분을 Strategy라는 인터페이스를 만들고 해당 인터페이스를 구현하도록하여 문제를 해결하는 방식입니다. 상속이 아닌 위임을 통하여 문제를 해결합니다. 클래스 다이어그램 전략 패턴 구조 상황 설명 교수와 학생은 휴대폰의 잠금을 해지하는 경우 교수는 안면 인식을 통하여 잠금을 해제하고 학생은 비밀번호를 입력하여 잠금을 해제합니다. 여기서 잠금을 해제하는 행위는 변하지 않는 행위이며 휴대폰의 잠금을 해지하기 위한 과정의 행위는 변하는 행위입니다. 안면인식과 비밀번호 입력은 사용자마다 변하는 행위이므로 Straegy에 비유할 수 있고 잠금 해제하는 행위는 변하지 않는 행위이므로 Context에 비유할 수 있습니다. 전략 패턴을 적용하지..
템플릿 메서드 패턴이란? 변하는 기능과 변하지 않는 기능을 분리하여 설계를 하는 것이라고 생각합니다. 휴대폰의 잠금 장치를 해제하는 행위은 각 사용자마다 다릅니다. 하지만 잠금 장치를 해제하기 위해서 휴대폰 화면을 키는 행위는 모든 사용자가 하는 행위입니다. 여기서 위에 말한거처럼 변하는 기능과 변하지 않는 기능을 두고 봤을때 장금 장치를 해제하는 행위는 변하는 기능이고 휴대폰 화면을 키는 행위는 변하지 않는 기능입니다. 템플릿 메서드 패턴을 적용하지 않은 예제 아래 예제를 보면 Boy 객체와 Girl 객체는 휴대폰의 암호를 해지하는 방법을 제외하고는 화면을 키는 행위는 동일하며 코드 수정시 2개의 코드를 수정해야하는 번거로움이 있습니다. public class Boy { public void scree..
람다 표현식(Lambda Expressions) 람다식이란 메서드를 하나의 식으로 표현한 것입니다. 람다식으로 표현하면 return이 없어지므로 람다식을 익명 함수라고도 합니다. 람다식의 장점 코드가 간결해집니다. 가독성이 향상됩니다. 멀티 쓰레드 환경에서 용이합니다. 함수를 만드는 과정없이 한번에 처리하기에 생산성이 높아집니다. 람다식의 단점 람다로 인한 무명 함수는 재사용이 불가능합니다. 디버깅이 까다롭습니다. 람다를 무분별하게 사용하게 되면 코드가 지져분해 집니다. 재귀로 만드는 경우 부적합해집니다. 람다를 사용하지 않은 예제 interface MyFunction { void init(); } public class Example { public static void main(String[] arg..
- Total
- Today
- Yesterday
- pipeline architecture
- redis 대기열 구현
- java ThreadLocal
- pipe and filter architecture
- 람다 표현식
- @ControllerAdvice
- spring boot excel download oom
- space based architecture
- java userThread와 DaemonThread
- spring boot excel download paging
- spring boot redisson 분산락 구현
- transactional outbox pattern
- 자바 백엔드 개발자 추천 도서
- spring boot 엑셀 다운로드
- transactional outbox pattern spring boot
- polling publisher spring boot
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- 레이어드 아키텍처란
- JDK Dynamic Proxy와 CGLIB의 차이
- 트랜잭셔널 아웃박스 패턴 스프링부트
- 공간 기반 아키텍처
- microkernel architecture
- 서비스 기반 아키텍처
- redis sorted set으로 대기열 구현
- spring boot poi excel download
- service based architecture
- spring boot redis 대기열 구현
- redis sorted set
- spring boot redisson sorted set
- spring boot redisson destributed lock
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |