![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ACf9o/btruBbyNmZt/ExP1GlwmRqaJ28aIx1xzH0/img.png)
프로토 타입 패턴이란? 기존 인스턴스를 복제하여 새로운 인스턴스를 만드는 방법입니다. 프로토 타입 패턴은 객체를 생성하는데 비용이 많이 들고, 비슷한 객체가 이미 있는 경우에 사용되는 생성 패턴 중 하나입니다. 즉 프로토 타입 패턴은 원본 객체를 새로운 객체에 복사하여 필요에 따라 수정하는 원리를 제공합니다. java에서는 대표적으로 clone() 메서드를 제공하고 있습니다. 객체 생성 프로토 타입 패턴을 설명하기 전에 객체 생성에 대해 간단히 설명 드리겠습니다. 객체를 생성하기 위해서는 먼저 클래스의 선언이 필요하며, 선언된 클래스를 기반으로 객체를 생성합니다. 객체는 선언된 클래스의 인스턴스화를 통하여 메모리에 적재가 되며 여기서 객체를 만드는 일반적인 방법은 new 키워드가 유일하며, new 키워드..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dk3dKA/btrtYVPNM0r/r2qtB3Bivl1mtMsiFTPQpK/img.png)
빌더 패턴이란? 자바에서는 클래스를 인스턴스화 하는 방법에는 점층적 생성자 패턴, 자바 빈즈 패턴, 빌더 패턴이 존재합니다. 점층적 생성자 패턴이란? User Class 필수 매개변수를 받는 생성자를 생성하고, 선택 매개변수 1개, 선택 매개변수 2개 등 선택 매개변수를 추가로 받는 생성자를 매개변수 개수만큼 생성자를 늘리는 방식입니다. 마치 생성자가 점층적으로 늘어나는 생성자를 가지도록 한 디자인 패턴을 말합니다. public class User { private String name; // 필수 private int age; // 필수 private String phone; // 선택 private String email; // 선택 private String address; // 선택 // 필수 데..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/yoDZf/btrtB8vCKGd/okh46nyDBtAnKR1iGKcck0/img.png)
전략 패턴이란? 변하지 않는 기능을 Context라는 곳에 두고, 변하는 부분을 Strategy라는 인터페이스를 만들고 해당 인터페이스를 구현하도록하여 문제를 해결하는 방식입니다. 상속이 아닌 위임을 통하여 문제를 해결합니다. 클래스 다이어그램 전략 패턴 구조 상황 설명 교수와 학생은 휴대폰의 잠금을 해지하는 경우 교수는 안면 인식을 통하여 잠금을 해제하고 학생은 비밀번호를 입력하여 잠금을 해제합니다. 여기서 잠금을 해제하는 행위는 변하지 않는 행위이며 휴대폰의 잠금을 해지하기 위한 과정의 행위는 변하는 행위입니다. 안면인식과 비밀번호 입력은 사용자마다 변하는 행위이므로 Straegy에 비유할 수 있고 잠금 해제하는 행위는 변하지 않는 행위이므로 Context에 비유할 수 있습니다. 전략 패턴을 적용하지..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cyo2dC/btrtvrP4Zmc/8vu0K302I76KTWfWvKAdQK/img.png)
템플릿 메서드 패턴이란? 변하는 기능과 변하지 않는 기능을 분리하여 설계를 하는 것이라고 생각합니다. 휴대폰의 잠금 장치를 해제하는 행위은 각 사용자마다 다릅니다. 하지만 잠금 장치를 해제하기 위해서 휴대폰 화면을 키는 행위는 모든 사용자가 하는 행위입니다. 여기서 위에 말한거처럼 변하는 기능과 변하지 않는 기능을 두고 봤을때 장금 장치를 해제하는 행위는 변하는 기능이고 휴대폰 화면을 키는 행위는 변하지 않는 기능입니다. 템플릿 메서드 패턴을 적용하지 않은 예제 아래 예제를 보면 Boy 객체와 Girl 객체는 휴대폰의 암호를 해지하는 방법을 제외하고는 화면을 키는 행위는 동일하며 코드 수정시 2개의 코드를 수정해야하는 번거로움이 있습니다. public class Boy { public void scree..
- Total
- Today
- Yesterday
- pipeline architecture
- 트랜잭셔널 아웃박스 패턴 스프링부트
- spring boot 엑셀 다운로드
- redis sorted set
- spring boot excel download oom
- transactional outbox pattern spring boot
- redis sorted set으로 대기열 구현
- spring boot redisson 분산락 구현
- 자바 백엔드 개발자 추천 도서
- 람다 표현식
- redis 대기열 구현
- 서비스 기반 아키텍처
- java ThreadLocal
- spring boot redis 대기열 구현
- JDK Dynamic Proxy와 CGLIB의 차이
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- @ControllerAdvice
- microkernel architecture
- pipe and filter architecture
- polling publisher spring boot
- space based architecture
- transactional outbox pattern
- spring boot excel download paging
- 레이어드 아키텍처란
- spring boot poi excel download
- java userThread와 DaemonThread
- spring boot redisson destributed lock
- spring boot redisson sorted set
- 공간 기반 아키텍처
- service based architecture
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |