REST 41

대용량 웹서비스를 위한 마이크로 서비스 아키텍쳐의 이해

마이크로 서비스 아키텍쳐 (MSA의 이해)조대협(http://bcho.tistory.com) 배경 마이크로 서비스 아키텍쳐(이하 MSA)는 근래의 웹기반의 분산 시스템의 디자인에 많이 반영되고 있는 아키텍쳐 스타일로, 특정 사람이 정의한 아키텍쳐가 아니라, 분산 웹 시스템의 구조가 유사한 구조로 설계 되면서, 개념적으로만 존재하던 개념이다.얼마전 마틴파울러(Martin folwer)가 이에 대한 MSA에 대한 개념을 글로 정리하여, 개념을 정립 시키는데 일조를 하였다.이 글에서는 대규모 분산 웹시스템의 아키텍쳐 스타일로 주목 받고 있는 MSA에 대한 개념에 대해서 알아보도록 한다. 모노리틱 아키텍쳐(Monolithic Architecture) 마이크로 서비스 아키텍쳐를 이해하려면 먼저 모노리틱 아키텍쳐 ..

빠르게 훝어 보는 node.js - #15 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 1/2)

빠르게 훝어보는 node.js#15 - Passport를 이용한 OAuth 2.0 API 인증 (Facebook 1/2)조대협 (http://bcho.tistory.com) REST 기반의 OPEN API 인증을 고민하다가 보니, 가장 많이 쓰이는게, OAuth 2.0이라서, 이 OAuth 2.0을 보다보니, 도저히 이해가 안되겠다 싶어서, 간단하게 직접 구현해보기로 했다. OAuth 서버를 구현하기전에 먼저 테스트 클라이언트가 필요했기 때문에, node.js + passport 를 이용해서 facebook API를 호출하는 간단한 웹 사이트를 만들어보기로 했다.Facebook의 API는 기본적으로 OAuth 2.0을 사용하고, Passport 모듈에서 잘 추상화된 라이브러리를 제공하기 때문에 쉽게 구축..

REST API 디자인 가이드

REST API 디자인 가이드조대협(http://bcho.tistory.com)REST API 디자인을 보면, REST 사상에 맞춰서 제대로 디자인 (CRUD를 HTTP method에 맞춘)하기도 어렵고, URI Convention등이나 보안, 버전 관리등 고려할 사항이 많다. 이번 글에서는 REST API를 디자인에 대한 가이드를 소개하고자 한다.동사보다는 명사를 사용하자URL을 심플하고 직관적으로 만들자REST API를 URL만 보고도, 직관적으로 이해할 수 있어야 한다 URL을 길게 만드는것 보다, 최대 2 depth 정도로 간단하게 만드는 것이 이해하기 편하다./dogs /dogs/1234URL에 동사보다는 명사를 사용한다.REST API는 리소스에 대해서 행동을 정의하는 형태를 사용한다. 예를 ..

OAuth 2.0 based API 인증 메모

* Authroization Code- Redirect base / 서버 백엔드가 있는 경우 사용 - 파트너사가 API를 사용하는 시나리오에 유리* Implicit - Rediect base / 특히 Java script 처럼 서버 백엔드가 없는 경우 유용. Read Only 등에 사용* Resource Owner Password Credential - Client Id, Secret을 앱에 넣은 후, Client Id/Password로 인증하여, access token을 발급 받는 방식으로, Authorization Server와 Resource Owner가 같은 서비스인 경우 유용함 (자사 API 제공에 유용)* Client Crendetial- 유용한 Link서버 구현체 : http://oauth...

대용량 분산 시스템 아키텍쳐 디자인

대용량 분산 시스템 아키텍쳐 디자인 대용량 분산 시스템에 대한 아키텍쳐 설계에 대한 내용을 공유합니다. 아직 많이 부족합니다. 많은 피드백 부탁드립니다. 1. 아키텍쳐 설계 프로세스 대용량 분산 아키텍쳐 설계 #1 아키텍쳐 설계 방법론 from Terry Cho 2. 대용량 분산 시스템 아키텍쳐 대용량 분산 아키텍쳐 설계 #2 대용량 분산 시스템 아키텍쳐 디자인 패턴 from Terry Cho 3. 대용량 분산 시스템 아키텍쳐 디자인 패턴 대용량 분산 아키텍쳐 설계 #3 대용량 분산 시스템 아키텍쳐 from Terry Cho 4. 레퍼런스 아키텍쳐 - SOA 대용량 분산 아키텍쳐 설계 #4. soa 아키텍쳐 from Terry Cho 5. 레퍼런스 아키텍쳐 - REST 대용량 분산 아키텍쳐 설계 #5. ..

django 에서 REST API 만들기

Dango에서 간단한 REST API 만들기 조대협 Django에서 REST API를 만들려면 가장 널리 사용되는 프레임웍중 하나가 dango rest_framework이다.http://django-rest-framework.org/tutorial/quickstart 설치는 다음과 같다.pip install djangorestframeworkpip install markdown # Markdown support for the browsable API.pip install django-filter # Filtering support 1. quickstart라는 앱을 생성 C:\Users\terry\git\django_restframework_sample\django_restframework_sample>p..

Python에서 Open API 호출하기

Rest API를 호출하기여러가지 라이브러리 (urllib2, httplib2)등을 체크해봤으나, https 를 가장 쉽게 호출할 수 있고, 사용하기 편한것은 requests라는 것이 가장 편리함 http://www.python-requests.org/en/latest/user/quickstart/#make-a-request 에서 curl 로 다운로드 하고 설치해서 사용 위는 도스창을 이용해서 간단하게 https로 dna.daum.net을 호출한 코드인데, 리턴값이 한글이라서 그런지. cp949 encode 에러가 남. (이건 나중에 수정해야 할거 같고) 기타 참고 자료 (아래) 참고 : API 호출 하기https://dna.daum.net/tools/python/tutorial SSL 사용하기urlli..

API 플랫폼에 대한 소개

API Platform조대협 근래에 들어서 모바일 애플리케이션의 발전과 SNS의 발전과 더불어서 Open API 에 대한 관심도가 급격하게 높아졌다. Open API란, API를 내부 사용자뿐만 아니라 외부 개발자에게까지 공개해서, 외부 개발자가 API를 이용해서 새로운 서비스를 만들도록 하는 모델이다. 근래에 들어서는 API만 전문적으로 개발 및 서비스를 해서 이를 통해서 수익을 창줄하는 비지니스 모델까지 생겨나고 있다. 이런 배경으로 API 관리에 대한 중요성이 대두되었는데, API에 대한 쉬운 관리, 모니터링 및 유료화 그리고, API에 대한 편리한 사용법, 샘플 코드 및 메뉴얼 제공하는 시나리오가 필요하게 되었는데, 이를 하나의 플랫폼 형태로 묶어 놓은 것을 API 플랫폼이라고 한다.API 플랫폼..

REST API에 대한 보안

REST API 보안조대협REST API에 대한 보안에 대해서 알아보자. API 에 대한 보안은 인증, 메세지 암호화, 무결성 크게 3가지 관점에서 고민해볼 수 있다. 1) 인증인증은, REST API를 호출한 사람(클라이언트)가 적절한 사용자 인가를 판단해주는 것이다. 아무나 API를 호출하는 것이 아니라 인증을 받은 사람많이 API를 호출해주게 하는 것인데, 쉽게 생각하면 사용자의 id,passwd로 서비스에 로그인을 하는 개념을 생각할 수 있다.API Key 방식API에 대한 인증 방법은 몇가지가 있는데, 그 중에서 가장 기초적인 방법은 API Key를 이용하는 방법이다. API Key란, 특정 사용자만 알 수 있는 일종의 문자열이다. 현재 Amazon이 이 방식을 사용하고 있는데 API를 사용하고..