API 버전 관리

API 버전관리가 점점 힘들어지고 있다. API는 더 이상 쓸모가 없어 폐기 될때까지 계속적인 수정, 업데이트, 기능 추가가 발생한다. 이 기능은 클라이언트 애플리케이션의 작동과 품질에 영향을 주기 때문에, 각 API의 변경 내용을 추적하고 관리 할 수 있어야 한다. 일반적으로 API의 버전을 이용해서 추적 관리한다. 문제는 클라우드환경에서 MSA 도입이 ...

Monolithic에서 Microservice Architecture로

이 문서에서는 마이크로서비스 아키텍처를 디자인하는 방법을 여러 사례를 들어서 살펴볼 것이다. 먼저 일반적인 패턴을 소개하고 AWS에서 어떻게 구축할지를 살펴보도록 하겠다.이 문서를 통해서 얻고자 하는 것은 다음과 같다. 초당 수천/수만건의 데이터를 처리하기 위한 시스템을 만들기 위한 아이디어 고가용성, 높은 확장성, 짧은 대기시간(latency), 복원력을...

AWS Lambda

API 서버의 경우, stateless하게 개발을 한다. Stateless는 서버로의 모든 요청과 응답이 다른 요청 혹은 응답과 독립적으로 이루어지는 것을 의미한다. 서버는 상태를 저장할 필요가 없으므로 요청처리부가 단순해지고, 요청을 자유롭게 분산할 수 있다. 각 요청이 독립적으로 실행이된다면, 클라이언트와 서버간의 요청&처리 프로세스는 함수의 실행으로...

Go-swagger

Go 언어로 만든 REST API의 문서화가 절실하다. GoDoc은 좋은 문서화 툴이긴 하지만 패키지 단위라서, API 레벨의 문서화에는 적당하지 않다. 주석을 문서화 하는 툴들은 API 스펙의 변화를 반영하지 못하기 때문에, 문서의 품질은 위키로 한땀 한땀 노가다 뛰는 것과 큰 차이가 없다. 그러다가 찾은게 다. 개발자가 API의 스펙을 만들면, 스펙으로...