Main (84) 썸네일형 리스트형 8. 프록시 패턴 / Proxy Pattern 목차 1. 프록시 패턴 / Proxy Pattern 이란? 2. 프록시 패턴 구조 3. 예시 프록시 패턴 / Proxy Pattern 이란? proxy 는 대리인, 대변인 이라는 의미를 가지고 있습니다. 여기서 대리인, 대변인은 누군가를 대신해서 어떠한 역할을 수행하는 존재들 입니다. 프록시 패턴은 이와 마찬가지로 대리인을 통해 실행하도록하는 구조 디자인 패턴입니다. 프록시 패턴 구조 Proxy Pattern Structure 이름 내용 DIsplay 출력 기능의 정의한 인터페이스 ScreenDisplay 문자열을 출력해주는 기능을가진 클래스 BufferDisplay ScreenDIsplay 의 Proxy 클래스 Main 메인 클래스 예제 DIsplay 인터페이스 print 메서드를 정의합니다. publ.. 7. 책임 연쇄 패턴 / Chain Of Responsibility Pattern 목차 1. 책임 연쇄 패턴 이란? 2. 책임 연쇄 패턴 구조 3. 예제 - URL 에서 프로토콜, 도메인, 포트를 분리하기 책임 연쇄 패턴 이란? 책임 이란 무언가를 처리하는 기능을 가진 클래스 여러 개의 책임들을 동적으로 연결해서 순차적으로 실행하는 행동 디자인 패턴입니다. 기능을 클래스 별로 분리하여 구현하도록 유도하므로 클래스의 코드가 최적화 된다는 장점이 있습니다. 책임 연쇄 패턴 구조 이름 내용 Handler 실행을 담당해줄 추상클래스 ProtocolHandler 프로토콜을 찾아줄 클래스 DomainHandler 도메인을 찾아줄 클래스 PortHandler 포트를 찾아줄 클래스 Main 메인 클래스 예제 - URL 에서 프로토콜, 도메인, 포트를 분리하기 Handler 추상클래스 Handler .. 6. 브리지 패턴 (Bridge Pattern) 목차 1. 브리지 패턴 (Bridge Pattern) 이란? 2. 브리지 패턴 구조 3. 예제 브리지 패턴 (Bridge Pattern)이란? 기능 계층과 구현 계층의 분리로 시스템의 확장성과 유지보수성을 높이는 패턴 입니다. 기능 계층과 구현 계층을 연결한다는 뜻으로 브리지 패턴이라고 불립니다. 기존 시스템에 새로운 기능을 추가해도 기능계층을 통해 기존에 작성된 작성된 코드의 변경을 최소화 또한 기존의 기능에 대해서도 구현계층을 통해 확장을 용이하게 해줍니다. 브리지 패턴 구조 (Bridge Pattern Structure) 이름 내용 DIsplay 초안 내용을 출력을 도와줄 인터페이스 Draft 초안을 적을 클래스 Publication 추가 요청에 관련된 초안 클래스 SimpleDisplay 간단하게.. 5. 메멘토 패턴 (Memento Pattern) 목차 1. 메멘토 패턴(Memento Pattern) 이란? 2. 메멘토 패턴 구조 (Memento Pattern Structure) 3. 예제 메멘토 패턴 (Memento Pattern) 이란? Memento 는 "추억" 또는 "과거의 기억" 이라는 단어를 뜻합니다. 단어의 의미에 알맞게 메멘토 패턴은 객체의 상태에 대한 기억을 저장해 두었다가 필요할때 기억해둔 상태로 객체를 되돌릴 수 있는 행동 디자인 패턴 입니다. 이 기억은 다른 객체에서도 읽기 전용으로 접근할 수 있으며, 해당 기억은 오직 해당 객체만 할 수 있는 특징이 있습니다. 메멘토 패턴 구조 (Memento Pattern Structure) 이름 내용 Walker 걷기를 수행할 클래스 Memento 현재 위치를 기억하는 내부 클래스 Mai.. 4. 컴포지트 패턴 (Composite Pattern) 목차 1. 컴포지트 패턴 (Composite Pattern) 이란? 2. 컴포지트 패턴 구조 3. 예제 컴포지트 패턴 (Composite Pattern) 이란? 컴포지트 패턴의 예시로 폴더와 파일이 있습니다. 폴더와 파일은 서로 다르지만 모두 폴더안에 넣을 수 있다는 공통점이 있습니다. 이러한 공통점을 이용하여 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 할 수 있게 도와주는 패턴이 컴포지트 패턴입니다. 컴포지트 패턴 구조 이름 내용 Item File 과 Folder 를 동일시하는 추상 클래스 Folder 폴더를 나타내는 클래스 File 파일을 나타내는 클래스 Main 메인 클래스 예제 Item 추상클래스 Item 추상클래스는 기본적인 것만제공하고 나머지는 Folder 와 File 클래스 에서.. controller 호출 전 Request body 값 읽기 상황 모든 api 요청에 대한 로그를 남겨야 한다. 이때 파라미터 값, 즉 body 에 들어있는 값도 저장해야한다. 문제 filter 나 interceptor 로 request 객체의 body 에 접근하여 데이터를 읽어 오려고 하였다. 이때 getReader 나 getInputStream 을 사용하여 body 의 데이터를 읽어왔는데 java.lang.IllegalStateException: getReader() has already been called for this request 와 같이 이미 읽은 데이터라는 에러가 등장하였다. 에러의 원인은 getReader를 사용하면 request body 를 읽기 위한 스트림을 반환하고, 읽는 동안 내부적으로 포인트를 사용하여 읽은 위치를 기억하고, 두번째 부터.. 3. 어댑터 패턴 (Adapter Pattern) 목차 1. 어댑터 패턴 (Adepter Pattern)이란? 2. 어댑터 패턴 구조 3. 예제 어댑터 패턴 (Adepter Pattern)이란? 220v 에서 작동하는 가전제품을 110v 에서 작동하도록 하려면 어떻게 해야할까요? 바로 110v 어댑터를 사용하는 것입니다. 이처럼 어댑터 패턴은 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 해주어 기존의 코드를 수정하지 않고 재사용 할 수 있도록 도와주는 구조적 디자인 패턴입니다. 어댑터 패턴 구조 이름 내용 Animal 새롭게 만들어진 추상클래스 Dog Animal을 상속받은 강아지 클래스 Cat Animal을 상속받은 고양이 클래스 Tiger 기존 코드 TigerAdapter Animal과 연결을 도와줄 Adapter 클래스 Animal .. 2. 싱글톤 패턴 (Singleton Pattern) 목차 1. 싱글톤 패턴이란? 2. 싱글톤 패턴 구조 3. 예제 4. 추가 고려사항 싱글톤 패턴 (Singleton Pattern) 이란? 싱글톤 패턴은 클래스의 인스턴스가 단 하나만을 필요로 할때 해당 클래스의 인스턴스가 '반드시' 1개 밖에 존재하지 않는 것을 '보증' 하고 싶을때 사용하는 디자인 패턴 입니다. 싱글톤 패턴 구조 이름 내용 Singleton 인스턴스가 1개만 존재해야하는 클래스 Main 메인 클래스 예제 Singleton 클래스 instance 필드를 가지고 getInstance 를 통해 객체를 생성합니다. 그리고 생성자를 private 로 하여 new 키워드로 생성하는것을 막아줍니다. 만약 해당 객체 값이 null 이면 객체를 생성해주고 해당 객체를 저장합니다. 이후 객체를 생성하려고.. 이전 1 2 3 4 5 6 7 8 ··· 11 다음