๐Ÿš€ Big News:Socket Has Acquired Secure Annex.Learn More โ†’
Socket
Book a DemoSign in
Socket

github.com/dms-sms/v1-api-gateway

Package Overview
Dependencies
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/dms-sms/v1-api-gateway

Source
Go Modules
Version
v0.0.0-20210428012006-2fcf9f692b9c
Version published
Created
Source

DMS-SMS/V1

API Gateway ์ด์™ธ์˜ ์„œ๋น„์Šค๋“ค์— ๋Œ€ํ•œ Repository๋Š” ์„œ๋น„์Šค ๋ถ„ํ•ด ๋ถ€๋ถ„์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!


INDEX

1. DMS-SMS๋ž€?

2. ์„œ๋น„์Šค ๊ธฐ๋Šฅ

3. ์„œ๋น„์Šค ๋ถ„ํ•ด

4. API Gateway ๊ธฐ๋Šฅ

5. ๋ฐฐํฌ ๋ฐฉ์‹

6. ๋ฒ„์ „๋ณ„ ๊ฐœ์š”

7. ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”


DMS-SMS๋ž€?

  • SMS๋Š” School Management System์˜ ์•ฝ์–ด๋กœ, ์‹ค์ œ๋กœ ํ•™์ƒ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ์šด์˜์ค‘์ธ ํ•™๊ต ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค

  • ๋Œ€๋•์†Œํ”„ํŠธ์›จ์–ด๋งˆ์ด์Šคํ„ฐ๊ณ ๋“ฑํ•™๊ต์˜ ๊ธฐ์ˆ™์‚ฌ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DMS, Dormitory Management System)์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋™์•„๋ฆฌ์ธ DMS์—์„œ 5๊ธฐ ๋ถ€์›๋“ค(ํ˜„ 2021๋…„ ๊ธฐ์ค€ 3ํ•™๋…„)์ด ๊ฐœ๋ฐœํ•˜๋Š” ์ƒˆ๋กœ์šด ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

  • ์„œ๋ฒ„ ๊ฐœ๋ฐœ์—๋Š” ํ˜„์žฌ README.md๋ฅผ ์ž‘์„ฑ์ค‘์ธ ๋ฐ•์ง„ํ™(PM)๊ณผ ์†๋ฏผ๊ธฐ ํ•™์ƒ์ด ์ฐธ์—ฌํ•ด ์ฃผ์—ˆ๊ณ , MSA ๊ธฐ๋ฐ˜์˜ ์„œ๋ฒ„๋ฅผ ๊ฐœ๋ฐœํ•˜์˜€๊ณ  ํ˜„์žฌ ์šด์˜์ค‘์ž…๋‹ˆ๋‹ค.


์„œ๋น„์Šค ๊ธฐ๋Šฅ

  • ์™ธ์ถœ์ฆ ์„œ๋น„์Šค

    • ์ €ํฌ ์„œ๋น„์Šค์˜ ์ฃผ๊ธฐ๋Šฅ์œผ๋กœ, ์˜คํ”„๋ผ์ธ ํ˜•์‹์ด์˜€๋˜ ๊ธฐ์กด์˜ ์™ธ์ถœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜จ๋ผ์ธ ํ˜•์‹์œผ๋กœ ๋งŒ๋“  ๊ฒƒ ์ž…๋‹ˆ๋‹ค.
    • ํ•™์ƒ์ด ์‹ ์ฒญํ•˜๊ณ  ์„ ์ƒ๋‹˜ ๋ฐ ํ•™๋ถ€๋ชจ๊ฐ€ ์Šน์ธ ๋ฐ ์กฐํšŒ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•™์‚ฌ ์ผ์ • ์„œ๋น„์Šค

    • ํ•™์‚ฌ ์ผ์ • ๊ด€๋ จ ์ •๋ณด๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค๋กœ, ์„ธ๋ถ€์ ์œผ๋กœ๋Š” ์‹œ๊ฐ„ํ‘œ์™€ ์บ˜๋ฆฐ๋” ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํ•™์ƒ์ด ๋ณผ ์ˆ˜ ์žˆ๊ณ , ๋˜ํ•œ ์บ˜๋ฆฐ๋”๋Š” ์„ ์ƒ๋‹˜์ด ์ผ์ •์„ ๊ด€๋ฆฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋™์•„๋ฆฌ ์„œ๋น„์Šค

    • 1ํ•™๋…„ ์นœ๊ตฌ๋“ค ๋Œ€์ƒ์˜ ์„œ๋น„์Šค๋กœ, ๋™์•„๋ฆฌ ์ •๋ณด ๋ฐ ๋™์•„๋ฆฌ ๋ชจ์ง‘ ๊ณต๊ณ ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
    • ๋™์•„๋ฆฌ ๊ด€๋ฆฌ์ž(๋ถ€์žฅ) ๊ฐ€ ๊ด€๋ฆฌํ•˜๊ณ  ํ•™์ƒ์ด ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณต์ง€ ์„œ๋น„์Šค

    • ๋งˆ์ง€๋ง‰์œผ๋กœ ์„ ์ƒ๋‹˜ ๋ฐ ๋™์•„๋ฆฌ ๊ด€๋ฆฌ์ž(๋ถ€์žฅ) ๊ฐ€ ๊ด€๋ฆฌํ•˜๊ณ  ํ•™์ƒ์ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์ง€ ์„œ๋น„์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์ฐธ๊ณ ๋กœ ์„ ์ƒ๋‹˜์ด ์˜ฌ๋ฆฌ์‹œ๋Š” ํ•™๊ต ๊ณต์ง€์—๋Š” ๋Œ€์ƒ(ํ•™๋…„ ๋ฐ˜)์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๋ถ„ํ•ด

API Gateway์— ๋Œ€ํ•œ HTTP API ๋ฐ gRPC ์„œ๋น„์Šค๋“ค์— ๋Œ€ํ•œ RPC API์— ๋Œ€ํ•ด ์„ค๊ณ„ํ•œ ๋‚ด์šฉ๋“ค์€ HTTP API ์„ค๊ณ„์™€ RPC API(Proto) ์„ค๊ณ„์—์„œ ์ถ”๊ฐ€๋กœ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ, protocol-buffer ๊ด€๋ จ ํŒŒ์ผ๋“ค์„ ๋ชจ์™€๋‘” ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ๋„ ์ฐธ๊ณ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • API Gateway (๊ฐœ๋ฐœ ์™„๋ฃŒ)

    • ์ด๋ฆ„ -> DMS.SMS.v1.api.gateway
    • ์„ค๋ช… -> ์ ์ ˆํ•œ ์„œ๋น„์Šค์— ์‚ฌ์šฉ์ž ์š”์ฒญ ๋ผ์šฐํŒ… ์„œ๋น„์Šค
    • ๊ฐœ๋ฐœ -> ๋ฐ•์ง„ํ™
  • Health Checker (๊ฐœ๋ฐœ ์™„๋ฃŒ)

    • ์ด๋ฆ„ -> DMS.SMS.v1.api.health-checker
    • ๊ธฐ๋Šฅ -> Consul์„ ์ด์šฉํ•œ ์„œ๋น„์Šค ๋ฐ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ด์šฉํ•œ API ์ƒํƒœ ์ฒดํฌ ๋ฐ ๊ธฐ๋ก ๊ด€๋ฆฌ
    • ๊ฐœ๋ฐœ -> ๋ฐ•์ง„ํ™
  • Outing Service (๊ฐœ๋ฐœ ์™„๋ฃŒ)

    • ์ด๋ฆ„ -> DMS.SMS.v1.service.outing
    • ๊ธฐ๋Šฅ -> ์™ธ์ถœ์ฆ ๊ด€๋ฆฌ ์„œ๋น„์Šค
    • ๊ฐœ๋ฐœ -> ์†๋ฏผ๊ธฐ
  • Auth Service (๊ฐœ๋ฐœ ์™„๋ฃŒ)

    • ์ด๋ฆ„ -> DMS.SMS.v1.service.auth
    • ์„ค๋ช… -> ํ•™์ƒ, ์„ ์ƒ๋‹˜, ๋ถ€๋ชจ๋‹˜ ๊ณ„์ • ๋ฐ ์ •๋ณด ๊ด€๋ฆฌ ์„œ๋น„์Šค
    • ๊ฐœ๋ฐœ -> ๋ฐ•์ง„ํ™
  • Announement Service (๊ฐœ๋ฐœ ์™„๋ฃŒ)

    • ์ด๋ฆ„ -> DMS.SMS.v1.service.announcement
    • ๊ธฐ๋Šฅ -> ๊ณต์ง€(ํ•™๊ต, ๋™์•„๋ฆฌ) ๊ด€๋ฆฌ ์„œ๋น„์Šค
    • ๊ฐœ๋ฐœ -> ์†๋ฏผ๊ธฐ
  • Schedule Service (๊ฐœ๋ฐœ ์™„๋ฃŒ)

    • ์ด๋ฆ„ -> DMS.SMS.v1.service.schedule
    • ๊ธฐ๋Šฅ -> ํ•™์‚ฌ ์ผ์ •(์‹œ๊ฐ„ํ‘œ, ์บ˜๋ฆฐ๋”) ๊ด€๋ฆฌ ์„œ๋น„์Šค
    • ๊ฐœ๋ฐœ -> ์†๋ฏผ๊ธฐ
  • Club Service (๊ฐœ๋ฐœ ์™„๋ฃŒ)

    • ์ด๋ฆ„ -> DMS.SMS.v1.service.club
    • ๊ธฐ๋Šฅ -> ๋™์•„๋ฆฌ(์ •๋ณด, ๋ชจ์ง‘) ๊ด€๋ฆฌ ์„œ๋น„์Šค
    • ๊ฐœ๋ฐœ -> ๋ฐ•์ง„ํ™

API Gateway ๊ธฐ๋Šฅ

  • ์š”์ฒญ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

    • ์„œ๋ฒ„์— ์ „์†กํ•œ payload์— ๊ผญ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค ์กด์žฌํ•˜๋Š”์ง€, ๋ฐ์ดํ„ฐ ์ œ์•ฝ์กฐ๊ฑด์€ ๋‹ค ๋งŒ์กฑํ–ˆ๋Š”์ง€ ํ™•์ธ (x -> 400 Bad Request)
  • ์ธ์ฆ ์ฒ˜๋ฆฌ

    • ํ† ํฐ์ด ํ—ค๋”์— ์กด์žฌํ•˜๊ณ  ์œ ํšจํ•œ์ง€, ํ•ด๋‹น ํ† ํฐ์˜ payload์˜ ํ˜•์‹์ด ์˜ณ๋ฐ”๋ฅธ์ง€ ํ™•์ธ (X -> 401 Unauthorized)
    • ํ˜ธ์ถœํ•œ ์„œ๋น„์Šค๊ฐ€ ๋ณธ์ธ ๊ณ„์ •์˜ ๊ถŒํ•œ์œผ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค์ธ์ง€ ํ™•์ธ (X -> 403 Forbidden)
  • ์„œ๋น„์Šค ํƒ์ƒ‰ ๋ฐ ๋ถ€ํ•˜ ๋ถ„์‚ฐ

    ์ฐธ๊ณ ๋กœ ์„œ๋น„์Šค์˜ ์žฅ์• ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ํฌ๊ธฐ๋ฅผ ๋™์ ์œผ๋กœ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ด Service Discovery๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ค„ ์•Œ์•„์•ผ ํ•จ!

    • ์„œ๋น„์Šค๋“ค์ด ๋™์  IP ์ฃผ์†Œ์— ํ˜ธ์ŠคํŒ…๋˜๋Š” ํŠน์„ฑ์ƒ ํŠน์ • ์„œ๋น„์Šค์— ์š”์ฒญ์„ ๋„ฃ์„ ๋•Œ ๋งˆ๋‹ค ํ•ด๋‹น ์„œ๋น„์Šค์˜ IP ์ฃผ์†Œ๋ฅผ ์•Œ์•„์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Service Discovery(consul ์‚ฌ์šฉ)์—์„œ ์กฐํšŒ (์กฐํšŒ ๊ฒฐ๊ณผ X -> 503 Service Unavailable)
    • ๋˜ํ•œ ์„œ๋น„์Šค ์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ, ๊ทธ ์ค‘ ์š”์ฒญ์„ ๋ณด๋‚ผ ์„œ๋น„์Šค๋ฅผ ์ •ํ•ด์•ผ ํ•˜๋ฏ€๋กœ Load Balancing์ด ํ•„์š”ํ•จ (Round Robin ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ)
  • ๊ณ„๋‹จ์‹ ์˜ค๋ฅ˜ ๋ฐฉ์ง€

    ํŠน์ • ์„œ๋น„์Šค์— ๋™๊ธฐ ํ†ต์‹ ์„ ํ•  ๊ฒฝ์šฐ, ํ•ด๋‹น ์„œ๋น„์Šค์˜ ์‘๋‹ต์ด ๋ฌด๊ธฐํ•œ ์—ฐ๊ธฐ๊ฐ€ ๋œ๋‹ค๋ฉด ์ด๋Š” ๊ณง ์—…์ŠคํŠธ๋ฆผ ์„œ๋น„์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ๊นŒ์ง€ ์žก์•„๋จน๊ฒŒ ๋˜์–ด ๊ณ„๋‹จ์‹ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด์— ๋Œ€ํ•œ ๋Œ€์ฑ…์ด ํ•„์š”ํ•จ!

    • ์‘๋‹ต์„ ์ตœ๋Œ€๋กœ ๋Œ€๊ธฐํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„ ์„ค์ • (์‹œ๊ฐ„ ๋งŒ๋ฃŒ -> 408 Request Timeout)
    • ์œ„์™€ ๊ฐ™์ด ํŠน์ • ์„œ๋น„์Šค๊ฐ€ ๋ถˆ๋Šฅ ์ƒํƒœ๊ฐ€ ๋˜์—ˆ์„ ๊ฒฝ์šฐ, ํ•ด๋‹น ์„œ๋น„์Šค๋กœ ์š”์ฒญ์ด ๊ฐ€๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด Circuit Breaker ํŒจํ„ด ์ ์šฉ
      • ์ฐจ๋‹จ๊ธฐ ์—ด๋ฆผ -> Service Discovery์˜ Health Check์„ Fatal๋กœ ๋ณ€๊ฒฝ (์กฐํšŒ X)
      • ์ฐจ๋‹จ๊ธฐ ๋‹ซํž˜ -> Service Discovery์˜ Health Check์„ Pass๋กœ ๋ณ€๊ฒฝ (์กฐํšŒ O)
  • Dos ๊ณต๊ฒฉ ๋Œ€๋น„

    • ๋™์ผํ•œ IP์˜ ์š”์ฒญ์ด 1์ดˆ์— ํŠน์ • ํšŸ์ˆ˜ ์ด์ƒ ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ, ํ•ด๋‹น IP ์ฐจ๋‹จ ๋ฐ ์•ž์œผ๋กœ์˜ ์š”์ฒญ 403 Forbidden ๋ฐ˜ํ™˜ (ํŠน์ • ํšŸ์ˆ˜ ์ด์ƒ ์‹œ์  ์ดํ›„์˜ ์š”์ฒญ -> 429 Too Many Request)
  • ๊ด€์ธก์„ฑ ํŒจํ„ด ์ ์šฉ

    • ELK Stack(Elasticsearch + Logstash + Kibana + Filebeat)๋กœ ๊ตฌ์„ฑ๋œ ๋กœ๊ทธ ์‹œ์Šคํ…œ์— ๋กœ๊ทธ ์ž‘์„ฑ
    • ์™ธ๋ถ€ API์— ๋Œ€ํ•œ ์ง€์—ฐ ์‹œ๊ฐ„ ๋ฐ ์‘๋‹ต ๊ฒฐ๊ณผ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•œ Distributed Trace(jaeger ์‚ฌ์šฉ)๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด Span ์ƒ์„ฑ ๋ฐ Metadata๋กœ ๋‹ค์Œ ์„œ๋น„์Šค์— Span-Context ์ „๋‹ฌ
  • ์†๋„ ์ œํ•œ

    • ์„œ๋น„์Šค๋ณ„๋กœ 1์ดˆ๊ฐ„ ์ˆ˜์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์š”์ฒญ์˜ ์ตœ๋Œ€ ํšŸ์ˆ˜ ์„ค์ • (ํ•ด๋‹น ํšŸ์ˆ˜ ์ดˆ๊ณผ -> 429 Too Many Request)
  • HTTP API ์‘๋‹ต ์บ์‹ฑ

    • ๋ฆฌ์†Œ์Šค๊ฐ€ ๋น„๊ต์  ๋งŽ์ด ์†Œ๋ชจ๋˜๋Š” API๋“ค์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์‘๋‹ต redis์— ์ €์žฅ (๋งŒ๋ฃŒ ์‹œ๊ฐ„ -> 1๋ถ„)
    • ์‘๋‹ต ์บ์‹œ๊ฐ€ ์กด์žฌํ•˜๋ฉด ํ•ด๋‹น ์บ์‹œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ํŠน์ • ์บ์‹œ์˜ ๋ณ€๊ฒฝ์ด ๊ฐ์ง€๋˜๋ฉด ํ•ด๋‹น ์บ์‹œ ์‚ญ์ œ

๋ฐฐํฌ ๋ฐฉ์‹

(2020-09-19)

  • ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค๋“ค์€ AWS EKS ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋…ธ๋“œ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ Public Subnet๋ฐ Private Subnet์— ์•Œ๋งž๊ฒŒ ๋ฐฐ์น˜๋˜์–ด ์‹คํ–‰์ค‘์ž…๋‹ˆ๋‹ค.
  • ๋ฐฐํฌ ์„œ๋น„์Šค ์—…๋ฐ์ดํŠธ ๋ฐฉ์‹์€ ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ ์„œ๋น„์Šค ์‹คํ–‰ ํŒŒ์ผ์ด ๋‹ด๊ธด Docker Image๋ฅผ Docker Hub์— ์˜ฌ๋ฆฐ ํ›„ AWS EKS ํด๋Ÿฌ์Šคํ„ฐ์— ์—ฐ๊ฒฐ๋œ kubectl ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ deployment ๊ฐ์ฒด์˜ ์ด๋ฏธ์ง€ ๋ฒ„์ „์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

(2020-11-24)

  • AWS EKS ๋น„์šฉ ์ง€์› ๋ฌธ์ œ๋กœ ์ธํ•ด EC2์—์„œ ์ง์ ‘ k8s ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‹คํ–‰์‹œ์ผœ์„œ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

(2020-12-29)

  • ๋ฆฌ์†Œ์Šค(๋ฉ”๋ชจ๋ฆฌ) ์šฉ๋Ÿ‰ ๋ฌธ์ œ๋กœ k8s์—์„œ docker swarm๋กœ ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฐ”๊ฟ”์„œ ์šด์˜์ค‘์ž…๋‹ˆ๋‹ค.

๋ฒ„์ „๋ณ„ ๊ฐœ์š”

v.1.0.0

  • ๋ฐฐํฌ ๋‚ ์งœ -> 2020.11.21
  • ๋ฒ„์ „ ๊ฐœ์š” -> Auth, Club Service ์—ฐ๊ฒฐ
  • PR link -> github.com/DMS-SMS/v1-api-gateway/pull/25
  • Docker -> jinhong0719/dms-sms-api-gateway:1.0.0.RELEASE
  • ๋ณ€๊ฒฝ ๋‚ด์šฉ
    • Auth & Club Service์˜ gRPC ๊ธฐ๋ฐ˜ API๋กœ ์š”์ฒญ์„ ์ŠคํŠธ๋ฆผํ•˜๋Š” HTTP API ์ถ”๊ฐ€

v.1.0.1

  • ๋ฐฐํฌ ๋‚ ์งœ -> 2020.12.12
  • ๋ฒ„์ „ ๊ฐœ์š” -> Outing, Schedule, Announcement Service ์—ฐ๊ฒฐ
  • PR link -> github.com/DMS-SMS/v1-api-gateway/pull/28
  • Docker -> jinhong0719/dms-sms-api-gateway:1.0.1.RELEASE
  • ๋ณ€๊ฒฝ ๋‚ด์šฉ
    • Outing & Schedule & Announcement Service์˜ gRPC ๊ธฐ๋ฐ˜ API๋กœ ์š”์ฒญ์„ ์ŠคํŠธ๋ฆผํ•˜๋Š” HTTP API ์ถ”๊ฐ€

v.1.0.2

  • ๋ฐฐํฌ ๋‚ ์งœ -> 2021.01.27
  • ๋ฒ„์ „ ๊ฐœ์š” -> ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ „์ฒด์ ์ธ consul ์„œ๋น„์Šค ๋…ธ๋“œ ์กฐํšŒ ๋ฐฉ์‹ ๋ณ€๊ฒฝ
  • PR link -> github.com/DMS-SMS/v1-api-gateway/pull/34
  • Docker -> jinhong0719/dms-sms-api-gateway:1.0.2.RELEASE
  • ๋ณ€๊ฒฝ ๋‚ด์šฉ
    • Consul์—์„œ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ ๊ฐ์ง€ ์‹œ, Gateway ํฌํ•จ ๊ฐ๊ฐ์˜ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” AWS SNS์— ๋ฉ”์‹œ์ง€ ๋ฐœํ–‰
    • ์„œ๋น„์Šค ๋ณ„๋กœ AWS SQS Pulling์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์œผ๋ฉด, ํ•ด๋‹น ์‹œ์ ์— consul ์„œ๋น„์Šค ๋…ธ๋“œ ์ „์ฒด ์กฐํšŒ ํ›„ ์ €์žฅ
    • ๊ทธ ํ›„, ์œ„์—์„œ ๋กœ์ปฌ์— ์ €์žฅํ•œ ๋…ธ๋“œ ๋ชฉ๋ก์„ ๊ธฐ์ค€์œผ๋กœ ์š”์ฒญ์„ ์ŠคํŠธ๋ฆผํ•  ์„œ๋น„์Šค ๋…ธ๋“œ ์„ ํƒ
    • ์š”์•… - '์š”์ฒญ ๋ฐœ์ƒ ์‹œ ๋งˆ๋‹ค ๋งค๋ฒˆ ์กฐํšŒ -> consul ๋ณ€๊ฒฝ ์‹œ์ ์—๋งŒ ์กฐํšŒ ํ›„ ์ €์žฅ'

v.1.0.3

  • ๋ฐฐํฌ ๋‚ ์งœ -> 2021.02.06
  • ๋ฒ„์ „ ๊ฐœ์š” -> API ๋ณ„๋กœ ์ค‘๋ณต๋˜๋Š” ๊ธฐ๋Šฅ๋“ค middleware๋กœ ๋ฌถ์€ ํ›„ router์— ๋“ฑ๋ก
  • PR link -> github.com/DMS-SMS/v1-api-gateway/pull/35
  • Docker -> jinhong0719/dms-sms-api-gateway:1.0.3.RELEASE
  • ๋ณ€๊ฒฝ ๋‚ด์šฉ
    • tracer span ๊ด€๋ฆฌ(์‹œ์ž‘, ์ข…๋ฃŒ ๋ฐ ๋กœ๊ทธ ๊ธฐ๋ก), ์ธ์ฆ ์ฒ˜๋ฆฌ, ์š”์ฒญ ๋ฐ”์ธ๋”ฉ ๊ธฐ๋Šฅ๋“ค middleware๋กœ ๋”ฐ๋กœ ๋นผ์„œ ์ฒ˜๋ฆฌ

v.1.0.4

  • ๋ฐฐํฌ ๋‚ ์งœ -> 2021.02.15
  • ๋ฒ„์ „ ๊ฐœ์š” -> ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ API ์‘๋‹ต ์บ์‹ฑ ํ•ธ๋“ค๋ง ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (in redis)
  • PR link -> github.com/DMS-SMS/v1-api-gateway/pull/38
  • Docker -> jinhong0719/dms-sms-api-gateway:1.0.4.RELEASE
  • ๋ณ€๊ฒฝ ๋‚ด์šฉ
    • Outing, Schedule, Announcement ์„œ๋น„์Šค์˜ ์กฐํšŒ ๊ด€๋ จ API ์‘๋‹ต redis์— ์ €์žฅ
    • ์‘๋‹ต ์บ์‹œ๊ฐ€ redis์— ์กด์žฌํ•  ๊ฒฝ์šฐ, ๋”ฐ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š๊ณ  json์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ๋นˆํ™˜
    • ํŠน์ • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ๊ฐ์ง€ ์‹œ(์ƒํƒœ ์ฝ”๋“œ๋กœ ํŒ๋ณ„), ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์™€ ๊ด€๋ จ๋œ ์บ์‹œ ์‚ญ์ œ
    • consul change event ์ „๋‹ฌ ๋ฐฉ์‹ ๋ณ€๊ฒฝ (AWS SNS & SQS -> gRPC)

๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”

์•„๋ž˜ ๊ฐ™์ด Kibana๋ฅผ ์ด์šฉํ•ด ์„œ๋น„์Šค๋ณ„ ์š”์ฒญ ํšŸ์ˆ˜ ๋ฐ ํ‰๊ท  ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ์›ํ˜• ๋„ํ‘œ์™€ ์„  ๋„ํ‘œ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

img

FAQs

Package last updated on 28 Apr 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts