네트워크, 통신(20)
-
JWT
JWT JWT(Json Web Token)이란 JSON 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token입니다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달합니다. 주로 회원 인증이나 정보 전달에 사용되는 JWT는 아래의 로직을 따라서 처리됩니다. 애플리케이션이 실행될 때, JWT를 static 변수와 로컬 스토리지에 저장합니다. static 변수에 저장하는 이유는 HTTP 통신을 할 때마다 JWT를 HTTP 헤더에 담아서 보내야 하는데, 이를 로컬 스토리지에서 계속 불러오면 오버헤드가 발생하기 때문입니다. 클라이언트에서 JWT를 포함해 요청을 보내면 서버는 허가된 JWT인지를 검사합니다. 또한 로그아웃을 할 경우 로컬 스..
2020.08.24 -
Web Socket
Web Socket이란 Web Application에서 기존의 서버와 클라이언트 간의 통신은 대부분 Http를 통해 이루어졌으며 Http는 Stateless Protocl입니다. 즉, 서버와 클라이언트 간의 Socket Connection같은 영구적인 연결이 되어있지 않고 클라이언트 쪽에서 필요할 때 Reqeust를 보내면 서버가 Response하는 방식으로 통신이 진행됩니다. 이러한 경우 서버쪽 데이터가 업데이트 되더라도 클라이언트 쪽에는 Refresh하지 않는 한 변경된 데이터가 업데이트 되지 않는 문제가 발생합니다. 이러한 문제는 일반적인 Web Application에서는 Ajax와 같은 통신을 사용해도 어느 정도 해결이 가능하지만 데이터의 빠른 업데이트가 아주 중요한 경우에는 한계가 있습니다. 그..
2020.06.26 -
HTTP2
HTTP/1.1의 단점 HOL(Head Of Line) Blocking HTTP/1.1은 위의 그림과 같이 기본적으로 하나의 연결에 하나의 요청을 처리하도록 설계되어 있습니다. 그래서 동시 전송이 불가능하고 요청과 응답이 순차적으로 이루어지게 됩니다. 그렇다보니 HTTP 문서 안에 포함된 다수의 리소스를 처리하려면 요청할 리소스 개수에 비례해서 대기 시간이 길어지게 됩니다. 그리고 아래의 그림과 같이 여러 번의 요청을 했을 때, 앞선 요청에 문제가 있어서 응답이 늦어지면 다음 응답도 같이 늦어진다는 문제점도 발생합니다. RTT(Rount Trip Time)증가 앞서 말한 것처럼 HTTP/1.1의 경우 하나의 연결에 하나의 요청을 처리합니다. 이렇다 보니 매번 요청을 할 때마다 새로 연결을 만들게 되고 T..
2020.06.09 -
SSL
SSL이란 SSL(Secure Socket Layer)이란 웹 서버와 브라우저간 통신의 보안을 위해 만들어진 프로토콜입니다. SSL은 Certificate Authority라 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용됩니다. SSL 통신은 공개키 암호화 방식과 비공개키 암호화 방식을 조합해 사용합니다. SSL에서는 통신을 수행할 때 먼저 통신 상대의 인증서를 체크함으로써 위장 여부를 확인합니다, 이 때, 인증서 체크는 공개키 암호화 방식에 기초한 것입니다. 공개키 암호화 방식은 처리 부하가 크기 때문에 대량 데이터 전송이 어렵기 때문에 SSL에서는 먼저 공개키 암호화 방식으로 비공개키를 암호화하여 통신 상대 사이에서 안전하게 비공개키를 배송합니다. 그리고 실제 대이터는 비공개키 암호화..
2020.06.08 -
Https
Https란 Http의 약점 Http는 웹에서 사용되는 심플하면서도 중요한 기술이지만 치명적인 단점이 있습니다. 아래의 그림과 같이 브라우저와 웹 서버가 통신함에 있어서 주고 받는 데이터가 암호화 되지 않고 그대로 전송된다는 점입니다. Http는 인터넷을 통해 웹 서버와 브라우저가 통신하는데, 해커가 중간에 도청하게 된다면 중요한 정보들을 탈취할 수 있습니다. 만약 이러한 데이터가 로그인 기능에서 사용하는 아이디, 비밀번호나 개인 정보와 관련된 데이터라면 치명적일 수 있습니다. 뿐만 아니라 정상적인 데이터를 중간에서 악의적으로 변조시킬 수도 있습니다. Https란 Https는 데이터가 암호화 되지 않는 Http의 단점을 극복하기 위해 Http에 암호화나 인증의 기능을 가진 SSL을 추가한 기술입니다. H..
2020.06.08 -
AMQP
AMQP란 AMQP란 클라이언트 미들웨어 브로커 간에 데이터 교환을 위한 MQ기반 메시지 교환 프로토콜입니다. AMQP의 특징 다른 기종 시스템 간 벤더 종속 없이 표준화된 네트워크 프로토콜 사용 비용 / 기술 / 시간적 측면에서 최대한 효율적 메시지 교환을 위한 MQ 사용 AMQP의 구성 Exchange Publisher로부터 수신한 MQ를 바인딩 여러 exchange type 인스턴스를 보유 Queue 메시지 저장 후 Consumer에 전달 메시지 타입 Exchange에 바인딩 Binding Exchange와 Queue의 관계 정의 1:N, N:1등 여러 방식으로 바인딩 Routing Key 송신 메시지 헤더에 포함되는 가상 주소 Exchange type은 Routing Key 이용 Exchange ..
2020.05.13