Nest Microservices - gRPC, API Gateway (ing)

Microservice

microservice๋“ค์˜ ์•„ํ‚คํ…์ณ ๋‹ค์ด์–ด๊ทธ๋žจ๋“ค๊ณผ ์„œ๋น„์Šค๋“ค์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ณ  ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด microservice architecture์€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

Nest Microservice

gRPC

1๏ธโƒฃ gRPC ์ •์˜

2๏ธโƒฃ gRPC ํŠน์ง•

โœ”๏ธ ๋กœ๋“œ๋ฐธ๋Ÿฐ์‹ฑ, ํŠธ๋ ˆ์ด์‹ฑ, ํ—ฌ์Šค ์ฒดํ‚น, ๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ์— ๋Œ€ํ•œ ์ ‘์† ๊ฐ€๋Šฅํ•œ ์ง€์›๊ณผ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ์„œ๋น„์Šค๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ”๏ธ ๋งŽ์€ RPC์™€ ๊ฐ™์ด, gRPC๋Š” ์ž๋™์ ์œผ๋กœ ๋ถˆ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋“ค์˜ ์šฉ์–ด์—์„œ ์„œ๋น„์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฐœ๋…์— ๊ธฐ๋ฐ˜ํ•œ๋‹ค.

โœ”๏ธ ์„œ๋น„์Šค, ํŒŒ๋ผ๋ฏธํ„ฐ, ๊ทธ๋ฆฌ๊ณ  ๋ฆฌํ„ด ํƒ€์ž…๋“ค์€ ๊ตฌ๊ธ€์˜ ์˜คํ”ˆ ์†Œ์Šค language-neutral protocol buffers mechanism์„ ์ด์šฉํ•˜๋Š” .proto ํŒŒ์ผ๋“ค์— ์ •์˜๋˜์–ด ์žˆ๋‹ค.

3๏ธโƒฃ API Gateway

API Gateway๋Š” HTTP ๊ธฐ๋ฐ˜์˜ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ๋“ค์˜ entry point์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ HTTP๋งŒ์„ ์ œํ•œํ•  ํ•„์š”๋Š” ์—†๋‹ค.

API -

โœ”๏ธ API Gateway๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ํ†ตํ•ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

โœ”๏ธ ๋ช‡๋ช‡ ์š”์ฒญ๋“ค์€ ๋‹จ์ˆœํžˆ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค์— proxy / route๋œ๋‹ค.

โœ”๏ธ ๋‹ค๋ฅธ ์š”์ฒญ๋“ค์„ ๋‹ค์ˆ˜์˜ ์„œ๋น„์Šค๋“ค์— ํผ๋œจ๋ฆผ์œผ๋กœ์จ ์ฒ˜๋ฆฌํ•œ๋‹ค.