웹 서비스 아키텍처 ABC

원문 웹 서비스를 개발 할 때 참고 할 수 있는 기본 아키텍처다. 실 서비스에서는 구성요소들이 복잡해지고 다뤄야 하는 내용이 깊어질 수는 있겠지만 많은 서비스들은 여기에서 소개한 아키텍처를 확장 & 응용하는 것만으로 큰 틀을 잡을 수 있을 것이다. 위 그림은 운영중인 joinc 웹 서비스 아키텍처를 묘사하고(개인 사이트이기 때문에, 실제 위의 구성요소를 모...

HMAC

MAC는 Message Authentication code(메시지 인증 코드)의 줄임말로, 메시지를 인증하기 위해서 사용하는 정보다. A 유저가 인터넷으로 연결된 B 유저에게 라고 메시지를 보냈다고 가정해보자. 이 메시지에서 "A"가 보냈다는 것은 매우 중요한 정보를 담고 있으며, 따라서 위조 혹은 변조되면 안 된다. 메시지가 인터넷을 가로지르면 아래의 두...

HTML5 GeoLocation

Geolocation API를 이용하면, 웹 어플리케이션에서 사용자 위치를 알아낼 수 있다. 사생활 침해의 가능성이 있기 때문에, 사용자 동의를 받는 과정을 거쳐야 한다. 사용할 수 있는 브라우저는 아래와 같다.||API ||Chrome ||IE ||FireFox ||Sapari ||Opera ||||Geolocation ||5.0-49.0(http), 5...

nginx

Nginx(엔진 x)는 오픈소스기반의 리버스 프록시 서버로 뿐만 아니라, HTTPS, SMTP, POP3, IMAP 프로토콜을 지원한다. 또한 load balancer, HTTP cache, web server 용도로도 사용할 수 있다.이미 Apache가 자리잡은 웹 서버 시장에 뒤늦게 뛰어들었지만 고성능, 뛰어난 동시성, 낮은 메모리 사용량을 강점으로 빠...

Naver oAuth2 로그인

oAuth2는 외부 서비스에게 자신의 자원을 이용 할 수 있도록 인증과 권한을 관리해주는 시스템이다. 페이스북, 구글, 다음, 네이버등의 거대 인터넷회사들은 oAuth2를 이용해서 자신들이 가지고 있는 자원들을 이용할 수 있도록 허가하고 있다. 자세한 내용은 문서를 참고하자. 여기에서는 네이버의 oAuth2를 이용해서 네이버의 자원을 사용하는 방법에 대해서...

oauth2

이름에서 예상할 수 있듯이 OAuth 2.0은 OAuth 1.0의 새로운 버전이다. 앞자리가 바뀌었으니 메이저 업그레이드 버전이라고 할 수 있겠다. OAuth 2.0이 비록 OAuth 1.0에서 유래하긴 했으나 목적과 이름만 같을 뿐, 이 둘은 전혀 호환되지 않는다. OAuth 1.0은 지금은 레거시 취급 받는 상황이라서, 굳이 OAuth 1.0은 살펴보지...

JWT

는 단순하고 이해하기 쉬운 프로토콜이다. 대충 읽어도 이게 뭐하는 녀석인지 감을 잡을 수 있을 정도로 쉽다. 1요청 1응답 이로 직관적이고, 때문에 응용 프로그램을 만들기도 쉽다. 웹 브라우저를 비롯해서 수많은 지원 애플리케이션과 라이브러리들이 차고 넘친다.HTTP는 연결을 유지하지 않는다. 각 요청은 서로 독립적이다. 따라서 상태정보를 유지 할 수가 없다...

Let's Encrypt를 이용한 Free SSL 인증서 사용

2017년 1월 초, 그동안 문제 없이 돌던 사이트에 경고메시지가 뜨기 시작했다. 구글이 https를 적용하지 않은 사이트에 접속할 경우 "안전하지 않음(Not Secure)" 표시를 띄워서 사용자들에게 경고하기로 결정 했다. 서비스 사용에는 문제가 없으나 기분이 좋지는 않을 테다. 어차피 해야 할 것 SSL 인증서를 올리기로 했다.몇 개 공짜 SSL을 제...

GoLang을 이용한 http client 개발

http client 애플리케이션을 위한 구조체와 함수들은 net/http에서 찾을 수 있다. http.NewRequest("METHOD", "URL", nil) 메서드를 이용해서 요청객체를 만들 수 있다. METHOD는 GET, POST, DELETE, PUT 등을 사용 할 수 있다.요청 객체는 "어느 URL에 대해서 어떤 요청을 하라라는 정보"만 담고 ...

oAuth2에 대하여

oAuth(이하 oAuth는 oAuth2를 의미한다.)는 외부 서비스(3rd party)로 하여금 자신이 가지고 있는 자원에 대한 사용을 허용하기 위한 범용인증 표준이다. 여기에서 자원이라 함은 서비스가 가지고 있는 모든 것이다. 예를 들어 네이버라면 유저정보, 네이버가 가지고 있는 이미지, 음악, 위치정보, 블로그, 메일, 인공지능 등 모든 것을 의미한다...