본문 바로가기

World Wide Web

(11)
HTTP와 HTTPS HTTP 통신을 하다보면 몇 가지 보안상의 이슈가 발생하게 된다. HTTP 자체는 굉장히 단순한 프로토콜이고, 요청과 응답의 BODY가 암호화된 상태에서 통신이 이루어지지 않기 때문이다. 그래서 그에 대한 대안으로 HTTP 요청/응답의 메시지를 암호화해서 보내는 방식이 있다. 이것은 HTTP 자체를 암호화하는 것이 아니라 HTTP 통신은 그대로이나 그 안에 담긴 메시지만 암호화하는 것이다. 그럼에도 불구하고 이 방식은 범용성이 낮다는 점에서 한계가 존재한다. 메시지 자체를 암호화하는 것이기 때문에 클라이언트의 브라우저가 이 메시지를 해독하지 못할 확률이 존재하기 때문이다. 그래서 HTTP 메시지 자체를 암호화하는 것이 아니라 HTTP를 암호화하는 방식이 대안으로 제시되었다. HTTPS는 HTTP를 SSL..
마이크로서비스 아키텍처 마이크로서비스란? 마이크로서비스란 애플리케이션을 구축하기 위한 아키텍처 기반의 접근 방식으로 애플리케이션의 각 요소가 독립적으로 작동합니다. www.redhat.com 일반적으로 아키텍처를 구성한다함은 모놀리식과 마이크로서비스 두 가지가 존재한다. 각각에 대한 설명은 이미 잘 나와 있어서 잘 정리된 글을 첨부한다.
프록시, 게이트웨이에 관해 일반적으로 클라이언트와 서버가 HTTP통신을 할 때 요청과 응답을 주고 받는다. 클라이언트가 HTTP Request의 Header와 Body에 내용을 담아서 보내면, 서버는 그러한 Header와 Body에 담긴 내용을 해석해서 HTTP Response를 보내준다. 헌데 이 방식의 문제점은 보안에 취약하다는 문제가 존재한다. 클라이언트과 서버가 직접적으로 통신하는 것이기 때문에 서버의 위치가 노출되는 이슈가 있을 수 있으며, 주고 받는 데이터가 중복될 경우, 중복되는 통신을 서버와 하는 것이기 때문에 서버에 부담이 생길 가능성 역시 존재한다. 이러한 것을 해결하기 위해 클라이언트와 서버 사이에 중계자 역할을 하는 프로그램/서버를 넣기로 하였다. 그러한 것들이 바로 프록시, 게이트웨이이다. 1. 프록시 클라..
웹 시스템의 삼층 구성 | 웹 서버, 어플리케이션 서버, 데이터베이스 서버 일반적으로 서버라 하면 하나의 종류만 생각한다. 사실은 우리가 사용하는 웹어플리케이션은 삼중 시스템으로 구현되어 있다. 웹 어플리케이션을 만들기 위해선 웹 서버, 어플리케이션 서버, 데이터 베이스 서버가 필요하다. 1) 웹 서버 : HTTP 요청와 응답을 처리, 정적인 페이지 2) 어플리케이션 서버 : 동적인 페이지를 처리, 데이터베이스를 다루는 라이브러리 탑재 3) 데이터베이스 서버 : 고유의 포트 존재, SQL로 조작 우리같은 개인 개발자가 간단히 개발할 때는 하나의 컴퓨터(노드)에 웹 서버, 어플리케이션 서버, 데이터 베이스 서버를 모두 설치한다. 예를 들어, Python으로 웹 개발을 할 때, 하나의 컴퓨터에서 Http요청, Python 로직, PostgreSQL을 설치한다. 허나 이러한 삼중 시..
SPA와 WebPack에 관해 동적인 웹페이지, 웹 어플리케이션 그리고 이를 구현하기 위한 아키텍처와 프레임워크들. 이렇게 웹 어플리케이션을 구현하다 보면 다음과 같은 문제의식에 직면하게 된다. http 요청에 대한 응답으로 매번 html 파일을 렌더링 해주어야 하는데, 이를 한 번만 하게 할 수는 없을까? 즉 매번 다른 페이지를 보여주는 것이 아니라 새로고침처럼 변화하는 부분만 변하게 하고, html 전체를 렌더링 안하게 할 수는 없을까? 이러한 문제의식에서 나온 것이 SPA(Single Page Application)이라는 기술이다. 이 방식은 기존의 방식과 달리 HTML을 한 번만 렌더링 해주고, 그 때 그 때 변화가 필요한 부분만 바꾸어 준다. 헌데 이 방식 역시도 문제가 존재한다. 기존에는 html 파일을 변화가 있을 때마다..
MVC 패턴, 삼중 레이어 패턴 그리고 웹 프레임워크에 관해 웹 어플리케이션을 만들다 보면, 무언가 반복되는 부분이 있다는 것을 느낄 것이다. 모든 웹 어플리케이션은 MVC 패턴이라는 반복되는 부분이 존재한다. 클라이언트가 보게 되는 화면이 존재하고, 이를 위해 어떤 데이터를 가져올지가 필요하며, 이러한 화면과 데이터를 조정하는 부분이 존재한다. 이렇게 반복되는 패턴을 아키텍처라 한다. MVC 패턴은 또다른 이름으로 삼중 레이어 패턴이라 부르기도 한다. 삼중 레이어 패턴은 다음과 같이 구성된다. 1) 프레젠테이션 레이어 = View 2) 비즈니스 로직 레이어 = Controller 3) 데이터 액세스 레이어 = Model MVC 패턴, 삼중 레이어 패턴이라는 것이 존재하기 때문에 결국, 어떤 웹 어플리케이션을 만들든, 반복되는 작업이 존재할 수 밖에 없다. 이에 ..
정적 웹페이지와 동적 웹페이지, CGI 그리고 웹 어플리케이션에 관해 http://info.cern.ch/hypertext/WWW/TheProject.html The World Wide Web project The World Wide Web project World Wide Web The WorldWideWeb (W3) is a wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of documents. Everything there is online about W3 is linked directly or indirectl info.cern.ch 우리가 보는 웹페이지는 굉장히 다이내믹해졌지만, 초창기 웹사이트는 굉장히 정적이었다. 위 링..
IP, TCP/UDP, Port에 관해 HTTP 등의 응용 프로토콜로 통신을 할 때, 누구에게 보낼지를 알아야 한다. 예를 들어, 우리가 보내고 싶은 메시지가 있다면, 그 메시지를 누가 받는지 주소와 연락처를 알아야 제대로 메시지를 보낼 수 있다. 이 때 그러한 주소, 연락처 역할을 하는 것이 IP이다. 이 IP는 글로벌한지 혹은 사설인지에 따라 나뉜다. 글로벌 IP는 우리의 주민등록 상의 주소와 같다. 한 지붕 아래 두 집 살림이 아닌 이상, 동일한 집주소를 가진 경우는 없다. 이게 글로벌 IP이다. 반면에 가족끼리 집 주소를 이야기할 때는, 보통 '우리집'이라는 말을 많이 쓴다. 이렇게 간단히 '우리집'으로 말하는 것이 사설 IP이다. 연락처(IP)를 알았다면, 이에 메시지를 상대방에게 보낼 수 있다. 헌데 이 메시지를 보내는 방식에는 두..