일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- resultMap
- @Configuration
- assertThat
- 스프링 부트
- sqld
- DIP
- db
- JPA
- java
- 스프링 빈
- 생성자 주입
- 스프링 프레임워크
- 스프링 부트 기본
- thymeleaf
- 스프링 컨테이너
- 필드 주입
- 스프링 부트 입문
- jdbc
- 싱글톤
- springboot
- 스프링
- Effective Java
- DI
- spring
- SQL
- mybatis
- 스프링부트
- kafka
- assertThrows
- Javascript
- Today
- Total
목록Language (90)
선 조치 후 분석
생성자와 정적 팩토리 메서드는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 단점이 존재한다. 점층적 생성자 패턴 필수 매개변수를 받는 생성자 1개, 그리고 선택 매개변수를 하나씩 늘여가며 생성자를 만드는 패턴 필수 매개변수만 받는 생성자, 필수 매개변수와 선택 매개변수 1개를 받는 생성자, 선택 매개변수를 2개 받는 생성자... 이런 형태로 선택 매개변수를 전부 다 받는 생성자까지 늘려가는 방식이다. public class NutritionFacts { private final int servingSize; //(mL, 1회 제공량) 필수 private final int servings; //(회, 총 n회 제공량) 필수 private final int calories; //(1회 제공량당) 선택..
클래스가 객체를 생성하는 방법에는 2가지가 있다. Public 생성자 → public 생성자를 통한 객체 생성은 일반적으로 알고 있는 'new' 키워드를 사용하는 방법 정적 팩토리 메서드 → 'new'를 직접적으로 사용하지 않고 클래스 내에 선언된 메서드 내부에서 'new'를 사용해 객체를 리턴하는 방법 정적 팩토리 메서드 예시 String 클래스에서 구현되어 있는 정적 팩토리 메서드이다. 넘겨받은 파라미터로 new를 통해 String 객체를 생성한다. /** * Returns the string representation of the {@code char} array * argument. The contents of the character array are copied; subsequent * mod..

방문자 (Visitor) 패턴기존 코드를 건드리지 않고 새로운 코드를 추가하는 방법을 제안하는 패턴방문자 패턴은 비즈니스 로직을 객체 구조에서 분리시키는 디자인 패턴비슷한 종류의 객체들을 가진 그룹에서 작업을 수행해야 할 때 주로 사용더블 디스패치 (Double Dispatch)를 활용디스패치(Dispatch)란? 자바는 객체지향 프로그래밍 언어로써 객체들 간의 메시지 전송을 기반으로 문제를 해결한다. 그리고 메세지 전송이라는 표현은 결국 메소드를 호출하는 것인데, 그것을 Dispatch라고 한다. 자바는 하위타입으로의 묵시적 형변환을 지원하지 않는, 싱글 디스패치(Single Dispatch) 언어이다. 따라서 런타임시에 부모 객체의 구현체로 어떤 자식 클래스가 들어오는지 확인하여 서로 다른 메소드를 ..

전략 (Strategy) 패턴여러 알고리즘을 캡슐화하고 상호 교환 가능하게 만드는 패턴실행(런타임) 중에 알고리즘 전략을 선택하여 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 패턴'전략'이란 일종의 알고리즘이나 기능, 동작이 될 수도 있는 특정판 목표를 수행하기 위한 행동 계획이다.어떤 일을 수행하는 알고리즘이 여러 가지 일 때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는 알고리즘 변형이 빈번하게 필요한 경우 적합한 패턴구조전략 알고리즘 객체들 (Concreate Strategy) : 알고리즘, 행위, 동작을 객체로 정의한 구현체전략 인터페이스 : 모든 전략 구현체에 대한 공용 인터페이스컨텍스트 (Context) : 알고리즘을 실행해야 할 때마다 해당 알고리즘과 연결된 전략 ..

옵저버 (Observer) 패턴다수의 객체가 특정 객체 상태 변화를 감지하고 알림을 받는 패턴객체의 상태 변화를 관찰하는 관찰자 객체를 생성하여, 특정한 객체의 상태 변경을 지켜보는 디자인 패턴객체의 상태변화를 관찰하는 옵저버(관잘차)들의 목록을 객체에 등록하여 상태 변화가 있을 때마다, notify를 통해 객체가 직접 목록의 각 옵저버에 통지하고, 각 옵저버는 이벤트가 발생했을 시 동작을 수행한다.이러한 구조로 객체의 상태가 변화하면, 종속 객체들이 자동으로 변화가 통지되어 그에 따른 명령을 수행하도록 하는 1:N (One To Many)의 의존성을 정의해 준다.즉, 관찰하고 있는 객체의 상태변경에 실시간으로 대응하기 위한 목적을 가지는 패턴"상태가 변화되는 객체"와 이 객체의 상태에 "의존성이 있는 ..

메멘토(Memento) 패턴 캡슐을 유지하면서 객체 내부 상태를 외부에 저장하는 방법 객체의 상태정보를 가지는 클래스를 따로 생성하여 객체 내부의 상태를 외부에 저장해 놓고 저장해 놓은 정보를 복원시킬 수 있도록 해주는 패턴 '특정 시점'의 '객체의 상태'를 외부에 저장하기 위해서는 객체 내부의 상태가 외부에 온전히 노출되어야 하지만 메멘토 패턴을 사용한다면 상태를 지키면서 복원시킬 수 있다. 즉, 메멘토 패턴은 내부 상태를 전부 외부에 노출하지 않으면서 객체 상태를 외부에 저장했다가 해당 상태로 다시 복구시키는 목적이 있다. (저장된 시점 불러오기와 같은 상태를 다시 불러올 때 사용) 구조 Originator : 상태를 저장하고 복원하려는 객체 Memento : immutable 한 객체로 일정 시점의..