[Design Pattern] 5. Decorator Pattern
·
CS/Design Pattern
Decorator Pattern SOLID 중에서 OCP와 DIP를 따른다. 데코레이터 패턴은 기본 객체에 추가적인 기능을 동적으로 유연하게 첨가하는 패턴이다. 객체에 추가적인 요건을 동적으로 첨가하며, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다. Component ConcreteComponent 와 Decorator 가 구현할 인터페이스다. 두 객체를 동등하게 다루기 위해 존재함 ConcreteComponent Decorate 를 받을 객체다. 즉, 기능 추가를 받을 기본 객체 Decorator Decorate 를 할 객체의 추상 클래스다. 즉, 기능 추가를 할 객체는 이 객체를 상속받는다. ConcreteDecorator Decorator 를 상속받아 구현할 다양한..
[Design Pattern] 4. Observer Pattern
·
CS/Design Pattern
Observer Pattern Head First Design Pattern 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 정보가 자동으로 갱신되는 방식으로, 일대다(one-to-many) 의존성을 정의합니다. 옵저버 패턴은 관찰자 패턴이라고도 합니다. 일대다 관계를 이루고 있으며, 상태가 업데이트되면 모든 옵저버들에게 정보를 갱신할 수 있도록 하는 것을 의미합니다 예시 ) 유튜브 구독 알람 철수(Observer)가 코딩 공부를 위해 유튜브에서 프로그래밍 관련 영상을 찾고 있습니다. 그런데 Luckygg(Subject)라는 사람의 채널에 좋은 영상들이 있는 것을 알게 됐습니다. 하나 둘 개제 된 영상들을 보게 되다가 어느새 모든 영상들을 보게 됐습니다. 이제 새로운 영상이 업데이트되는 것을..
HTTP Protocol
·
Study/Spring
HTTP Protocol HTTP (Hyper Text Transfer Protocol)로 RFC 2616에서 규정된 Web에서 데이터를 주고 받는 프로토콜. TCP를 기반으로 한 REST의 특징을 모두 구현하고 있는 Web기반의 프로토콜 HTTP 통신 방법 HTTP는 메시지를 주고(Request) 받는 (Response) 형태의 통신방법. HTTP Method GET 리소스의 조회에 사용한다. 서버에 전달하고 싶은 데이터를 query(parameter, query string)을 통해 전달한다. 메시지 바디를 통해 데이터를 전달할 수도 있지만 지원하지 않는 곳도 존재하기 때문에 권장❌ POST 메시지 바디를 통해 서버로 요청 데이터를 전달한다. 서버는 메시지 바디를 통해 들어온 데이터를 처리하는 모든 ..
URI 설계 패턴
·
Study/Spring
URI 설계 패턴 URI(Uniform Resource Identifier) 인터넷에서 특정 자원을 나타내는 주소 값. 해당 값은 유일하다. URL(Uniform Resource Locator) 인터넷 상에서의 자원, 특정 파일의 위치를 나타내는 정보 URI 설계 시 주의할 점 1. 슬래시 구분자(/)는 계층 관계를 나타내는 데 사용 http://restapi.example.com/houses/apartments http://restapi.example.com/animals/mammals/whales 2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다. URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용되어야 하며 URI가 다르다는 것은 리소스가 다르다는 것이고, 역으로 리소스가 다르면 U..
REST
·
Study/Spring
Rest란? Rest ( Representational State Transfer : 자원의 상태 전달 ) - 네트워크 아키텍처 INDEX 1. REST 구성 2. REST 특징 3. REST API 디자인 가이드 4. HTTP 응답 상태 코드 1. REST 구성 자원(RESOURCE) - URI 행위(Verb) - HTTP METHOD 표현(Representations) 2. REST 특징 Uniform (유니폼 인터페이스) Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말합니다. Client - Server 구조 REST 서버는 API 제공, 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보)등을 직접 관리하는 ..
[Design Pattern] 3. Proxy Pattern
·
CS/Design Pattern
Proxy Pattern? OCP, DIP 설계 원칙 실제 기능을 수행하는 객체Real Object 대신 가상의 객체Proxy Object를 사용해 로직의 흐름을 제어하는 디자인 패턴입니다. 어떤 객체를 사용하고자 할때, 객체를 직접적으로 참조 하는것이 아니라, 해당 객체를 대행(대리, proxy)하는 객체를 통해 대상객체에 접근하는 방식을 사용하면 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고 또한 실제 객체의 기능이 반드시 필요한 시점까지 객체의 생성을 미룰 수 있습니다. 예를 들어 용량이 큰 이미지와 글이 같이 있는 문서를 모니터 화면에 띄운다고 가정하였을때 이미지 파일은 용량이 크고 텍스트는 용량이 작아서 텍스트는 빠르게 나타나지만 그림은 조금 느리게 로딩되는 것..
[Design Pattern] 2. Adapter Pattern
·
CS/Design Pattern
https://github.com/Jaekeun-Lee/TIL/tree/master/design-patterns/adapter Adapter Pattern **Structural Pattern** 프로그램 구조에 관련된 패턴들 프로그램 내의 자료구조나 인터페이스 구조 등 프로그램의 구조를 설계하는데 활용할 수 있는 패턴들 어댑터 패턴이란? 한 클래스의 인터페이스를 클라이언트에서 사용하고자하는 다른 인터페이스로 변환한다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있다. 어댑터 패턴 호출 과정 클라이언트에서는 Target Interface 를 호출하는 것 처럼 보인다. 하지만 클라이언트의 요청을 전달받은 (Target Interface 를 구현한) Adap..
[Design Pattern] 1. Singleton Pattern
·
CS/Design Pattern
https://github.com/Jaekeun-Lee/TIL/tree/master/design-patterns/singleton Singleton Pattern **Creational Pattern** 객체를 생성하는데 관련된 패턴들 객체가 생성되는 과정의 유연성을 높이고 코드의 유지를 쉽게 함 싱글톤 패턴이란? 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴 싱글턴 패턴은 인스턴스가 오직 1개만 생성되야 하는 경우에 사용되는 패턴. 예를들어 레지스트리 같은 설정 파일의 경우 객체가 여러개 생성되면 설정 값이 변경될 위험이 생길 수 있다. 인스턴스가 1개만 생성되는 특징을 가진 싱글턴 패턴을 이용하면, 하나의 인스턴스를 메모리에 등록해서..
[Java] 함수와 메서드
·
Study/Java
1. 함수와 메서드 - 객체의 속성은 멤버 변수로, 객체의 기능은 메서드로 구현한다 - 함수는 어디 속해 있는 것이 아닌 단독모듈, 호출하여 사용하면 된다. - 메서드는 클래스 안에 속해 있는 함수, 클래스의 맴버변수를 이용하여 구현된 함수 1-1) 함수 ( function ) 하나의 기능을 수행하는 일련의 코드 구현된 ( 정의된 ) 함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 제어가 반환됨 함수로 구현된 하나의 기능은 여러 곳에서 동일한 방식으로 호출되어 사용될 수 있음. 함수는 이름, 매개 변수, 반환 값, 함수 몸체(body)로 구성됨 int add(int num1, int num2) { int result; result = num1 + num2; return result; } 함수 호출과..