일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링
- SQL
- spring
- db
- 스프링 부트 기본
- 싱글톤
- 필드 주입
- thymeleaf
- 스프링 프레임워크
- assertThrows
- Effective Java
- 스프링 빈
- Javascript
- DIP
- kafka
- JPA
- 스프링부트
- resultMap
- java
- 스프링 컨테이너
- jdbc
- assertThat
- 스프링 부트
- 스프링 부트 입문
- 생성자 주입
- springboot
- sqld
- DI
- mybatis
- @Configuration
- Today
- Total
목록분류 전체보기 (292)
선 조치 후 분석

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

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

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

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

중재자 (Mediator) 패턴객체들 간의 의사소통 하는 방법을 캡슐화하여 객체 간의 의존성(결합도)을 낮추는 패턴객체 간의 중간 의사소통 담당자(중재자)를 통해 객체 간의 소통을 캡슐화하는 방법객체 간의 직접적인 상호작용보다 중자를 두어 간접적으로 상호작용 하도록 하는 것컴포넌트 사이의 M:N의 의존관계가 중재자와의 M:1의 의존관계가 되므로 결합도 감소구조Mediator : Colleague 객체 간의 상호참조를 위한 인터페이스. 클라이언트 등록, 실행등의 메소드 정의Colleague : 다른 Colleague와의 상호참조를 위한 인터페이스ConcreteMediator : Mediator 구현 클래스, Colleague 간의 상호참조를 조정ConcreteColleage : Colleage 구현 클래스..

반복자 (Iterator) 패턴 집합 객체 내부 구조를 노출시키지 않고 순회하는 방법을 제공하는 패턴 반복자 패턴의 본질은 기반이 되는 표현을 노출시키지 않고 연속적으로 객체 요소에 접근하는 방법을 제공하는 것 즉, aggregate (집합체) 유형에 무관한 동일 순차 접근 방법을 제공하는 것이다 aggregate란 반복자 객체를 생성하기 위한 인터페이스를 정의하는 것이고, iterator란 요소에 접근할 수 있고 순회할 수 있는 인터페이스를 정의하는 것 이러한 반복자 패턴을 사용하면 집합 객체를 순회하는 클라이언트 코드를 변경하지 않고 다양한 순회 방법을 제공할 수 있다. 구조 Iterator : 집합체의 요소들을 순서대로 검색하기 위한 인터페이스 정의 ConcreateIterator - Iterato..