Stack

언어

  1. ts
    1. node:v14.16.1
    2. nest.js
  2. go:1.16.3
    1. gin

DB

  1. DB
    1. mysql:5.7.16

프로토콜

  1. http
  2. 인증
    1. jwt
    2. OAuth 2.0

Health Check

  1. Server Side 제품은 모두 ping API를 통해 container health check를 필수적으로 해야합니다.
  2. 이를 위해 아래의 Controller를 노출 하도록 합니다.
    1. /
      1. 제품이름이 response 됩니다.
    2. /ping
      1. 200과 함께 OK 문자열이 response 됩니다.
    3. /version
      1. 제품 버전 정보가 response 됩니다.
    4. /env
      1. 실행되고 있는 제품의 모든 환경 변수가 response 됩니다.

        보안상으로 위험합니다. 환경에 맞게 혹은 사용하지 않도록 추후 반영하도록 합니다.

nest.js

  1. Api는 endpoint에 맞게 파일 디렉터리로 펼쳐 놓기
  2. 각 서비스에 맞는 apiClient Class를 생성합니다.
    1. 하나의 endpoint에 해당 class를 이용하여 호출하도록 합니다.
    2. 전체적으로 mock과 todo를 이으면 나중에 분리하기 어렵습니다.
  3. Controller 실제 사용되는 컨트롤러 이며 항상 service의 함수 호출을 통하여 가공됩니다.
  4. Service 비즈니스 로직이 모두 들어가 있습니다.
  5. 어디서 데이터를 추출할지는 모두 lib와 같은 다른 class를 통하여 디자인 됩니다.