본문 바로가기

Programming

(9)
메시지 지향 미들웨어, 메시지 브로커, 메시지 큐 메시지 지향 미들웨어(Message-Oriented Middleware – MOM) MOM이란 응용 소프트웨어 간에 비동기적 데이터 통신을 위한 소프트웨어를 의미한다. 보다 쉽게 말하자면 MOM이란 독립된 서비스들이 서로 데이터를 주고받을 수 있도록 하는 미들웨어를 의미한다.미들웨어란 서로 다른 어플리케이션들을 연결하여 데이터 교환을 가능하게 해주는 소프트웨어이다. 메세지 지향 시스템은 메세지 API를 통해 분산된 어플리케이션간의 중개 역할을 수행하여 데이터가 안전하고 신뢰성 있게 교환될 수 있도록 지원한다. MOM은 메세지를 통해 여러 분산된 시스템간의 Connector 역할을 하며 시스템 간의 결합성을 낮추고 실시간으로 비동기식 데이터 교환을 가능하게 한다.    주문, 결제, 배송, 재고 관리 등 ..
Web Socket Web Socket 이란 웹 소켓(Web Socket)은 서버와 클라이언트 간의 실시간 전이중 통신(full-duplex communication)을 가능하게 하는 프로토콜이다. 웹 소켓은 2011년 HTML5 표준의 일부로 포함되며 본격적으로 사용되기 시작했다. 이러한 웹 소켓은 웹 소켓을 지원하는 브라우저에서 사용 가능하다. 하지만 이를 지원하지 않는 구형 브라우저에서는 사용할 수 없다. (ex. Internet Explorer 9이하)  Web Socket의 특징  1. 양방향 통신 (Full-Duplex)데이터 송수신을 동시에 처리할 수 있는 통신 방법 클라이언트와 서버가 서로에게 원할 때 데이터를 주고받을 수 있다. (통상적인 Http 통신은 Client가 요청을 보내는 경우에만 Server가..
WS(Web Server)와 WAS(Web Application Server) WS(Web Server) 란   웹 서버(Web Server)는 클라이언트(주로 웹 브라우저)로부터 HTTP 요청을 받아서 정적인 콘텐츠(HTML 파일, 이미지, CSS, JavaScript 파일 등)를 제공하는 서버 소프트웨어이다. 주로 정적인 웹 페이지를 제공하는 데 사용되며 대표적인 웹 서버로는 Apache HTTP Server, Nginx가 있다. 이러한 웹 서버의 특징은 다음과 같다.  HTTP 요청 처리클라이언트로부터의 HTTP 요청을 받아들이고 이에 대한 응답을 반환한다.정적 콘텐츠 제공정적인 파일(HTML, 이미지, CSS, JavaScript 등)을 클라이언트에게 제공한다.리버스 프록시요청을 다른 서버(ex. WAS)로 전달하여 처리 결과를 클라이언트에게 반환할 수 있다.로드 밸런싱여러..
Forward Proxy, Reverse Proxy Proxy 서버 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 Proxy, 그 중계 기능을 하는 것을 Proxy 서버라고 부른다. 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. Proxy 서버 중 일부는 Proxy 서버에 요청된 내용들을 캐시를 이용하여 저장해 둔다. 이러한 Proxy는 크게 Forward Proxy 와 Reverse Proxy 로 나뉜다.  Forward Proxy 클라이언트(사용자)가 인터넷에 직접 접근하는 대신, 포워드 프록시 서버가 클라이언트의 요청을 받아 인터넷에 연결하여 결과를 클라이언트에 전달한다. 이러한 포워드 프록시의 장점은 다음과 같다.   캐싱 프..
CSRF(Cross-Site Request Forgery) CSRF 란 사이트 간 요청 위조(Cross-site request forgery, CSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 의미한다.  CSRF 공격 시나리오  1. 사용자는 정상적으로 웹 애플리케이션에 로그인  - 로그인 과정에서 서버는 사용자의 세션 정보를 쿠키에 저장  - 이 쿠키는 세션 ID를 포함하고 있으며, 사용자가 로그인 상태를 유지하도록 함 2. 공격자는 사용자를 피싱 이메일이나 메시지를 통해 악성 링크를 클릭하도록 유도  - 피싱 이메일은 긴급한 보안 문제나 계정 확인을 빌미로 사용자를 속임  3. 패스워드 변경 요청   - 사용자가 악성 링크를 클릭하면 브라우저는..
XSS(Cross-Site Scripting) XSS 란 XSS 공격은 웹 서비스에 Javascript 등 스크립트를 실행할 수 있는 코드를 삽입하여 다른 사용자 등에게 공격자가 의도한 스크립트를 실행하게 하는 공격 방법이다. 참고로 Cross-Site Scripting의 약자는 CSS가 맞지만 CSS(Cascading Style Sheets)는 웹사이트에 표현되는 방법을 정해주는 스타일 시트 언어로 사용되기 때문에 XSS로 불리게 되었다.  XSS 공격 유형 1. Reflected XSS (반사형 XSS)Reflected XSS는 공격자가 악성 스크립트를 포함한 URL을 만들어서 사용자가 이를 클릭하도록 유도하는 공격 방식이다. 공격자의 악성 스크립트가 데이터베이스와 같은 저장소에 별도로 저장되지 않고 사용자의 브라우저에서 즉시 실행되면서 피해가 ..
CORS(Cross Origin Resource Sharing) CORS 란 CORS(Cross Origin Resource Sharing)를 직역하면 “교차 출처 리소스 공유” 정도로 번역될 수 있다. 다시 말해 CORS는 출처가 다른 서버간의 리소스 공유 정책이라고 할 수 있다. 웹 브라우저는 기본적으로 동일 출처 정책(SOP : Same-Origin Policy)을 따르기 때문에 같은 출처에서만 리소스를 공유할 수 있다. Origin(출처) 이란 그럼 CORS에서 말하는 출처는 어떤 것을 의미할까?  CORS에서 말하는 출처란 Protocol과 Domain(Host Name), Port로 이 중 하나라도 다르면 CORS 에러가 발생한다. CORS 정책이 등장한 이유 출처가 다른 두 개의 애플리케이션이 마음대로 소통할 수 있는 환경은 매우 위험하기 때문이다.특히 ..
가상화(Virtualization) 가상화(Virtualization) 란 가상화는 컴퓨터의 자원을 가상으로 분할하거나 모방하는 기술을 의미한다. 가상화 기술을 사용하면 하나의 물리적 서버에서 여러 운영체제와 애플리케이션을 실행할 수 있다. 다음과 같은 상황을 가정하자. 각각 용도가 다른 3개의 물리 서버(메일 서버, 웹 서버, 내부 레거시 서버)가 있다. 각 서버는 잠재적인 실행 용량의 일부에 불과한 30% 용량만 사용하고 있다. 그러나 내부 운영을 위해서는 레거시 애플리케이션이 계속 필요하므로 레거시 어플리케이션과 이를 호스팅하는 세 번째 서버를 유지해야 한다. 이런 상황에서 전통적인 서버 구성방식은 위와 같다. 한 개의 서버에 한 개의 운영체제와 한 개의 태스크 형태로 구성한다. 하지만 가상화 기술을 사용하면 서버를 아래와 같이 구성..