ECPJT log-2
Sep 14, 2019
프로젝트의 전반적인 아키텍쳐는 이렇다.
- 클라이언트-서버 통신은 HTTP(REST) API를 사용한다.
- 각 서비스 모듈은 독립적으로 개발, 데이터베이스를 분리한다.
- 서비스 모듈 앞엔 API 게이트웨이가 있다. API 게이트웨이는 토큰 검증, 트래픽(quota) 관리, 라우팅 등의 기능을 수행한다.
- 서비스 간 통신은 Message Queue를 사용한다. 단 조회성 통신은 API를 직접 호출한다.
- 프론트 오피스(사용자가 직접 접근하는 쇼핑몰, 이를테면 전시 공간)와 백 오피스(쇼핑몰 직원의 업무 공간, 상품 등록, 클레임 처리등)를 분리하고 각 영역 앞에 API 게이트웨이 혹은 프록시 서버를 둔다.
- 웹 브라우져 혹은 모바일 기기와 같은 클라이언트가 직접 API 서버(게이트웨이)를 호출한다. 이 때 사용자에 대한 인증은 로그인할 때 발급받은 인증토큰을 헤더에 실어서 검증한다.
- 별도의 세션 스토리지에서 접속 세션을 관리한다.
- 웹 페이지는 SPA 프레임워크를 사용한다.
- 각 서비스 모듈은 컨테이너로 운영된다. Docker, Kubernetes같은 도구를 사옹한다.