분류 전체보기
-
[Design Pattern] 옵서버 패턴(Observer Pattern)Software Engineering 2020. 6. 6. 21:51
Observer Pattern 어떤 객체에 이벤트가 발생했을 때, 이 객체와 관련된 객체들(옵저버)에게 통지하는 패턴 데이터의 변경이 발생했을 경우 상대 클래스나 객체에 의존하지 않으면서 데이터 변경을 통보할 때 사용 통보 대상 객체의 관리를 Subject클래스와 Observer인터페이스로 일반화함 데이터 변경을 통보하는 클래스(ConcreteSubject)는 통보 대상 클래스나 객체(ConcreteObserver)에 대한 의존성을 없앨 수 있음 결과적으로 옵서버 패턴은 통보 대상 클래스나 대상 객체(ConcreteObserver)의 변경에도 ConcreteSubject 클래스를 수정 없이 그대로 사용할 수 있음 역할이 수행하는 작업 Observer 데이터의 변경을 통보 받는 인터페이스 Subject에서..
-
웹 서버(WS)와 웹 어플리케이션 서버(WAS)의 차이WEB 2020. 6. 5. 10:34
WS(Web Server) 클라이언트로부터 HTTP 요청을 받고 정적인 컨텐츠(html, css ...)를 제공 동적 컨텐츠를 제공하기 위해 클라이언트 요청을 WAS로 보냄 WAS(Web Application Server) 동적 컨텐츠 제공 HTTP를 통해 어플리케이션을 수행해주는 미들웨어 Web Application Server = Web Server + Web Container WAS 주요 기능 프로그램 실행환경 및 DB 접속 기능 여러 트랜잭션 관리 기능 업무 처리하는 비지니스 로직 수행 WS와 WAS를 구분하는 이유 WS는 정적 데이터를 처리하는 기능을 분배하여 서버의 부담을 줄임 WAS는 정적 데이터를 처리를 위해 지연되는 시간이 줄어 동적 컨텐츠의 처리속도가 향상됨
-
CORS(Cross Origin Resource Sharing)란?WEB 2020. 6. 4. 17:12
CORS란? Cross Origin Resource Sharing의 약자로 도메인 또는 포트가 다른 서버의 자원을 요청하는 매커니즘 동일 출처 정책(same-origin policy)로 인해 CORS같은 상황이 발생 하면 외부서버에 요청한 데이터를 브라우저에서 보안목적으로 차단함 CORS가 필요한 이유 XSS(Cross Site Scripting) 사용자가 웹 사이트에 접속했을 때 정상적이지 않은 요청이 클라이언트에서 실행됨 Cookie의 Session 정보를 탈취 당할 수 있음 CSRF(Corss-Site Request Forgeries) 웹 어플리케이션의 사용자가 의도하지 않은 처리를 웹 어플리케이션에서 실행하는 것을 나타냄
-
HTTP Status CodeWEB 2020. 6. 2. 21:23
HTTP Status Code 100 ~ 199 : 정보 확인 상태코드이름의미 100 Continue 요청의 시작 부분 일부가 받아들여졌으며 클라이언트는 나머지를 계속 이어서 보내야함을 의미 101 Switcing Protocol 요청자가 서버에 프로토콜 전환을 요청했으며 서버에서 이를 승인하는 중을 의미 200 ~ 299 : 통신 성공 상태코드이름의미 200 OK 요청 성공(GET) 201 Create 생성 성공(POST) 202 Accepted 요청 접수했지만 아직 처리하지 않음 204 No Content 요청 성공, 돌려줄 resource없음 206 Partial Content 지정된 범위만큼 요청 성공 300 ~ 399 : 리다이렉트 상태코드이름의미 300 Multiple Chice 요청 URI에..
-
[Design Pattern] 커맨드 패턴(Command Pattern)Software Engineering 2020. 6. 1. 17:07
Command Pattern 행위 패턴 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우에 이벤트를 발생시키는 클래스를 변경하지 않고 재사용할 수 있게하는 패턴 실행될 기능을 캡슐화하으로써 기능의 실행을 요구하는 호출자 클래스와 실제 기능을 실행하는 수신자 클래스 사이의 의존성을 제거 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용할 수 있도록 해줌 역할이 수행하는 작업 Command 실행될 기능에 대한 인터페이스 실행될 기능을 execute 메서드로 선언 ConcreteCommand 실제로 실행되는 기능을 구현(Command 인터페이스를 실체화) Invoker 기능의 실행을 요청하는 호출자 클래스 Receiver ConcreteCommand에서 execute 메서드를 구..
-
[Design Pattern] 스테이트 패턴(State Pattern)Software Engineering 2020. 5. 31. 19:59
State Pattern 행위 패턴 상태에 따라 동일한 작업이 다른 방식으로 실행될 때 해당 상태가 작업을 수행하도록 위임하는 패턴 시스템의 각 상태를 클래스로 분리하고 각 클래스에서 수행하는 행위들을 메서드로 구현 외부로부터 캡슐화하기 위해 인터페이스를 만들어 시스템의 각 상태를 나타내는 클래스로 실체화 역할이 수행하는 작업 State 시스템의 모든 상태에 공통의 인터페이스를 제공 인터페이스를 실체화한 상태 클래스는 기존 상태 클래스를 대신해 교체해서 사용 가능 ConcreteState Context 객체가 요청한 작업을 자신의 방식으로 실행 대부분의 경우 다음 상태를 결정해 상태 변경을 Context 객체에 요청하는 역할도 수행 Context State를 이용하는 역할을 수행 현재 시스템의 상태를 나..
-
[Design Pattern] 싱글턴 패턴(Singleton Pattern)Software Engineering 2020. 5. 29. 20:05
Singleton Pattern 어떤 클래스가 최초 한번만 메모리를 할당하고(Static) 그 메모리에 객체를 만들어 사용하는 디자인 패턴 객체를 하나만 생성하고 그 객체를 어디에서든 참조할 수 있음 역할이 수행하는 작업 Singleton 하나의 인스턴스만을 생헝하는 책임이 있음 getInstance 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행 사용하는 이유 객체 생성을 한번만 하기 때문에 재사용이 가능해 메모리 낭비를 방지할 수 있음 싱글톤으로 생성된 객체는 전역성을 띄기 때문에 다른 객체와 공유 가능 문제점 멀티 스레드 환경에서 동기화 문제인 경합조건 발생 경합조건 메모리와 같은 동일한 자원을 2개 이상의 스레드가 이용하려고 경합하는 현상 싱글톤 인스턴스의 역할이 많거나 ..
-
[Design Pattern] 스트래티지 패턴(Strategy Pattern)Software Engineering 2020. 5. 28. 20:25
Strategy Pattern 행위 패턴으로 분류됨 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘을 해결할 수 있게하는 디자인 패턴 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴 전략이란 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비지니스 규칙, 문제를 해결하는 알고리즘 등 역할이 수행하는 작업 Strategy 인터페이스나 추상 클래스로 외부에서 동일한 방식으로 알고리즘을 호출하는 방법을 명시 ConcreteStarategy 스트래티지 패턴에서 명시한 알고리즘을 실제로 구현한 클래스 Context 스트래티지 패턴을 이용하는 역할을 ..