Rest란? Representational State Transfer의 약자(상태를 전달한다) 웹 표준에 기반한 아키텍처 스타일 데이터 커뮤니케이션을 위해서 HTTP프로토콜을 사용 HTTP 표준 프로토콜을 사용한 인터페이스를 통해 접근한 리소스를 중심으로 동작 Rest아키텍처에서 Rest서버는 단순하게 자원에 대한 ...
[디자인패턴] 스트래티지 패턴(Strategy Pattern)
스트래티지 패턴(Strategy Pattern) 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. 여기에서 전략이란 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비즈니스 규칙, 문제를 해결하는 알고리즘 등으로 이해할 수 있다. 프로그램에서 전략을 실행할 때는 쉽게 전략을 바꿔야 할 필요가 있는 경우가 많이 발생한다. 특히 게임 프로그래밍에...
[디자인패턴] 옵서버 패턴(Observer Pattern)
옵서버 패턴(Observer Pattern) 데이터의 변경이 발생하였을 때 상대 클래스 및 객체에 의존하지 않으면서 데이터 변경을 통보하고자 할 때 옵서버 패턴은 통보 대상 객체의 관리를 Subject 클래스와 Observer 인터페이스로 일반화한다. 그러면 데이터 변경을 통보하는 클래스(ConcreteSubject)는 통보 대상 클래스/객체...
[디자인패턴] 컴퍼지트 패턴(Composite Pattern)
컴퍼지트 패턴(Composite Pattern) 부분(part)-전체(whole)의 관계를 가지는 객체들을 정의할 때 유용 클라이언트는 전체와 부분을 구분하지 않고 동일한 인터페이스를 사용할 수가 있다. 컴퓨터에 추가 장치 지원하기 Example 소스 코드 public class Keyboard { private int pr...
[디자인패턴] 데커레이터 패턴(Decorator Pattern)
데커레이터 패턴(Decorator Pattern) 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 사용하는 패턴이다. 데커레이터 패턴은 기본 기능에 추가될 수 있는 많은 수의 부가 기능에 대해서 다양한 조합을 동적으로 구현할 수 있는 패턴이다. 동적으로 클래스의 기능을 확장시키고자 할 때 사용하는 패턴 (추가되는 기능을 갖는 클래스...
[디자인패턴] 팩토리 메서드 패턴(Factory Method Pattern)
팩토리 메서드 패턴(Factory Method Pattern) 객체의 생성 코드를 별도의 클래스/메소드로 분리함으로써 객체 생성의 변화를 대비하는 데 유용 팩토리 메소드 패턴은 객체의 생성 코드를 별도의 클래스/메소드로 분리함으로써 객체 생성 방식의 변화를 대비하는 데 유용하다. 여러 방식의 엘리베이터 스케줄링 방법 지원하기 Exampl...
[디자인패턴] 빌더 패턴(Builder Pattern)
Builder패턴(Builder Pattern) 객체의 생성과정과 표현을 분리하는 패턴입니다. 왜 Builder패턴을 사용하느가? 다음의 UserInfo클래스가 있다고 가정해보자. /** * 다음과 같이 객체를 만듭니다. */ public class UserInfo { private String name; private ...
[디자인패턴] 추상 팩토리 메서드 패턴(Abstract Factory Method Pattern)
추상 팩토리 메서드 패턴(Abstract Factory Method Pattern) 관련성이 있는 여러 종류의 객체를 일관된 방식으로 생성하는 경우에 유용 엘리베이터 부품 업체의 변경하기 Example LG와 현대 업체의 모터와 문을 지원하는 클래스 템플릿 메서드의 적용 public abstract...
[디자인패턴] 싱글톤 패턴(Singleton Pattern)
싱글톤 패턴(Singleton Pattern) Singleton 패턴은 인스턴스를 불필요하게 생성하지 않고 오직 JVM내에서 한 개의 인스턴스만 생성하여 재사용을 위해 사용되는 디자인패턴 프린터 관리자 Example 단 하나의 프린터 객체를 만들어 사용자 객체가 사용하려 한다. public class User { private...
[디자인패턴] 디자인 패턴
디자인 패턴 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 떄 재사용할 수 있는 훌륭한 해결책 패턴이란? 공통의 언어를 만들어 의사 소통을 원활하게 한다. 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 ...