Microservices์™€ API ๊ฒŒ์ดํŠธ์›จ์ด: ์ค‘์š”์„ฑ๊ณผ ์‹ค์ œ ์‘์šฉ

๊ธฐ์ˆ  ๋ฐœ์ „ ์‹œ๋Œ€์—๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ๊ณผ ํ†ตํ•ฉ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์‚ฌ์šฉ์ž๋“ค ์‚ฌ์ด์—์„œ ํŠธ๋ Œ๋“œ๋กœ ์ž๋ฆฌ์žก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž๋“ค์€ Microservices์™€ API ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์กฐํ•ฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. BAP ์†Œํ”„ํŠธ์›จ์–ด์™€ ํ•จ๊ป˜ Microservices์™€ API ๊ฒŒ์ดํŠธ์›จ์ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , ์ด๋“ค์˜ ์žฅ๋‹จ์  ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ถ„์•ผ์—์„œ์˜ ์‹ค์ œ ์‘์šฉ์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. Microservices๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

What are microservices?

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋นŒ๋”ฉ ํ”„๋กœ์„ธ์Šค ์ค‘์— ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ถœ์ฒ˜: acropolium.com

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋ถ„์‚ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ž‘์€ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ์œผ๋ฉฐ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋ผ ๋ถˆ๋ฆฌ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ HTTP์™€ ๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์„œ๋กœ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: ์ƒํƒœ ์œ ์ง€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค(Stateful microservices)์™€ ์ƒํƒœ ์—†๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค(Stateless microservices).

์ƒํƒœ ์œ ์ง€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ๊ธฐ์–ตํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

์ƒํƒœ ์—†๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์žฅ์ :

  • ์‰ฌ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—…๋ฐ์ดํŠธ:

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์—์„œ ๊ฐ ๊ธฐ๋Šฅ์€ ๋…๋ฆฝ์ ์œผ๋กœ ์„ค๊ณ„ ๋ฐ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์—…๋ฐ์ดํŠธํ•  ๋•Œ, ๊ฐœ๋ฐœ์ž๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹จ์ˆœ์„ฑ:

๊ฐœ๋ฐœ์ž๋Š” ์ „์ฒด ์‹œ์Šคํ…œ์„ ์ดํ•ดํ•  ํ•„์š” ์—†์ด ์ฑ…์ž„ ์žˆ๋Š” ํ•˜๋‚˜ ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์žฅ์•  ํ—ˆ์šฉ์„ฑ ํ–ฅ์ƒ:

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์ž‘์€ ์„œ๋น„์Šค๋กœ ๋‚˜๋ˆ„์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ „์ฒด ์‹œ์Šคํ…œ์„ ์ค‘๋‹จ์‹œํ‚ค์ง€ ์•Š๊ณ  ๋น ๋ฅด๊ฒŒ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ  ํ…Œ์ŠคํŠธ ๊ธฐํšŒ ์ œ๊ณต:

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ ์šฉํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•  ๋•Œ, ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์„ ํ…Œ์ŠคํŠธํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋…๋ฆฝ์ ์ธ ๋ฐฐํฌ ๊ธฐ๋Šฅ:

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋ณ„๋„์˜ ๋ชจ๋“ˆ์ด๋ฏ€๋กœ ์–ด๋–ค ์†Œํ”„ํŠธ์›จ์–ด์—์„œ๋“  ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐฐํฌ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ :

  • ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ๋ณต์žก์„ฑ ์ฆ๊ฐ€:

์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์ถ• ์‹œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“ˆ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•˜๋ฉฐ, ๋ชจ๋“ˆ ๊ฐ„ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๊ฐœ๋ฐœ์ž๋Š” ๋” ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋” ๋งŽ์€ ์ž์›์ด ํ•„์š”:

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ๋ฐฐํฌ์— ํ•„์š”ํ•œ ์ž์›๊ณผ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ์†Œ๊ทœ๋ชจ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Œ:

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€ํ˜• ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์ ํ•ฉํ•˜์ง€๋งŒ ์†Œ๊ทœ๋ชจ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ๋ฐฐํฌ์— ๋” ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. API ๊ฒŒ์ดํŠธ์›จ์ด(API gateway)๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

What is an API gateway?

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ํšจ์œจ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ถœ์ฒ˜: indusface.com

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๊ณ ๊ฐ์œผ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์ด๊ณ  ํ•ด๋‹น ์š”์ฒญ์„ ๊ด€๋ฆฌ, ๋ณด์•ˆ ๋ฐ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ค‘๊ฐ„ ๊ฒŒ์ดํŠธ์›จ์ด์ž…๋‹ˆ๋‹ค. API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ˆ˜๋‹จ ๋˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

API ๊ฒŒ์ดํŠธ์›จ์ด์—๋Š” ์‚ฌ์„ค API, ๊ณต๊ฐœ API, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค API ๋ฐ ์›๊ฒฉ API์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ์œ ํ˜•์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์žฅ์ :

  • ๋ฐ์ดํ„ฐ ์ „์†ก ์†๋„ ์ œํ•œ:

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ํŠน์ • ์‹œ๊ฐ„์— ์‚ฌ์šฉ์ž๊ฐ€ ์ „์†กํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ธฐ์ˆ ์  ์˜ค๋ฅ˜๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๋ฉฐ ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€์›:

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์š”์ฒญ์„ ๋ชจ๋‹ˆํ„ฐํ•˜๊ณ  ๊ธฐ๋กํ•˜์—ฌ ๊ด€์ธก์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

  • ๋†’์€ ๋ณด์•ˆ์„ฑ:

API ๊ฒŒ์ดํŠธ์›จ์ด์—๋Š” ํŠน์ • ๋ณด์•ˆ ๊ทœ์น™์ด ์žˆ์–ด ์•…์„ฑ ์š”์ฒญ์„ ์ฐจ๋‹จํ•˜๊ณ  ํ•ด์ปค๋กœ๋ถ€ํ„ฐ์˜ ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋‹จ์ :

  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„ฑ๋Šฅ ์ €ํ•˜:

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ†ต๊ณผํ•ด์•ผ ํ•˜๋Š” ํฌํŠธ์˜ ๋ ˆ์ด์–ด๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ์„ฑ๋Šฅ์„ ๋Šฆ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ž˜๋ชป ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ์—๋Š” ๋”์šฑ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

  • ์‹ ๋ขฐ์„ฑ ๋‚ฎ์Œ:

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ๋ณด์•ˆ ๋ฐ ์‹ ๋ขฐ์„ฑ ์œ„ํ—˜์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ณ ๊ฐ€์˜ ์‚ฌ์šฉ ๋น„์šฉ:

API ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ์šฉ์ž๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ๊ณผ ์ž‘์—…ํ•  ๊ฒฝ์šฐ ์„œ๋ฒ„ ๋ฐ API์— ๋Œ€ํ•œ ์ €์ž‘๊ถŒ์„ ๊ตฌ๋งคํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ API ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์ฐจ์ด๋ฅผ ๊ตฌ๋ณ„ํ•˜์„ธ์š”.

Distinguish between Microservices and API gateway

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ์ค‘๊ฐœ ๊ฒŒ์ดํŠธ์›จ์ด์ž…๋‹ˆ๋‹ค. ์ถœ์ฒ˜: dashbird.io

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์ง€๋งŒ, ๊ทธ๋“ค์€ ๋˜ํ•œ ๋งŽ์€ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์˜ ํ‘œ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ API ๊ฒŒ์ดํŠธ์›จ์ด ์•„ํ‚คํ…์ฒ˜ ๊ฐ„์˜ ์ผ๋ถ€ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค:

๋งˆ์ดํฌ๋กœ์„œ๋น„์ŠคAPI ๊ฒŒ์ดํŠธ์›จ์ด

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ํฐ ์ฝ”๋“œ ๋ธ”๋ก์„ ์ž‘์€ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋‚ด์™ธ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋†’์€ ๋ณด์•ˆ ์ˆ˜์ค€์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ•„์š”ํ•œ API ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ณด๋‹ค ๋‚ฎ์€ ๋ณด์•ˆ ์ˆ˜์ค€์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ๋” ์‰ฝ๊ณ  ์‹œ๊ฐ„์ด ์ ๊ฒŒ ๋“ญ๋‹ˆ๋‹ค.API๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ๊ฝค ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์™ธ๋ถ€์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ ํ†ต์‹ ํ•˜๋ ค๋ฉด ์ค‘๊ฐ„ ์—ญํ• ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.API๋Š” ์‰ฝ๊ฒŒ ์„œ๋กœ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ํ•˜๋‚˜์˜ API์—๋งŒ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.๊ฐ API๋Š” ์—ฌ๋Ÿฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ API ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์ค‘์š”์„ฑ

The importance of API gateway with Microservices

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์„ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค. ์ถœ์ฒ˜: toponseek.com

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ํ™•์žฅํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” API ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์ง€์›์ด ํ•„์š”ํ•˜๋ฉฐ, ๊ทธ๋“ค์€ ์„œ๋กœ ๊ฐ•ํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ์— ๋Œ€์ฒ˜ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋ถ„์‚ฐ๋œ ํŠน์„ฑ์€ ๋งŽ์€ ๋ถ€๋ถ„์ด ์›€์ง์ด๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์€ ํ•˜๋‚˜์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋Œ€์‹  ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋ชจ๋‹ˆํ„ฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋“ค์€ ๋…๋ฆฝ์ ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„ ๋ณต์žก์„ฑ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์ด ๋ณต์žก์„ฑ์„ ๋ชจ๋“  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ํ†ต์น˜ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ๋ชจ๋ธ๋กœ ๊ทน๋ณตํ•ฉ๋‹ˆ๋‹ค.

  • API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ถ„์‚ฐ๋œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํ†ตํ•ฉ๋œ ๋„๋ฉ”์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ชจ๋“  ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ํ†ตํ•ฉ ๋„๋ฉ”์ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ณ  ์„œ๋น„์Šค๋ฅผ ๋‹ค๋ฅธ ์ง€์—ญ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ํƒ„๋ ฅ์ ์ธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋ณต์žกํ•œ ์žฅ์•  ๊ทน๋ณต ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ๋ณตํ•ฉ๋‹ˆ๋‹ค. API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค์— ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํƒ„๋ ฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜์‹  ๊ฐ€์†ํ™”

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ํ˜์‹ ์ ์ธ ๊ธฐ๋Šฅ์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค๋กœ ์ œ๊ณตํ•จ์œผ๋กœ์จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ˜์‹ ์„ ๊ฐ€์†ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ๋น„ํ•ต์‹ฌ ๋ชจ๋“ˆ์„ ์ฐฝ์กฐํ•˜์ง€ ์•Š๊ณ  ์ค‘์š”ํ•œ ์ฝ”๋“œ์— ์‹œ๊ฐ„์„ ํˆฌ์žํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€ ์†Œํ”„ํŠธ์›จ์–ด ํ˜์‹ ์„ ๊ฐ€์†ํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ตœ์ ํ™”

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ, ๋žฉํ†ฑ ๋“ฑ๊ณผ ๊ฐ™์€ ํ”Œ๋žซํผ์— ์ตœ์ ํ™”๋œ API ํฌํŠธ๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์—ฐ๊ฒฐํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋” ๋‚˜์€ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

5. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ API ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์‘์šฉ

Application of Microservices and API gateway

๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ „ํ˜•์ ์ธ ์‹ค์ œ ์‘์šฉ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ถœ์ฒ˜: mona.media

5.1. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ:

  • ๋„ค์ดํ‹ฐ๋ธŒ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ:

ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ์ค‘์ ์„ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ์จ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ง„ํ–‰๋˜๋ฉฐ, ๋” ๋งŽ์€ ๋„ค์ดํ‹ฐ๋ธŒ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ถœ์‹œํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • ์›น ์‚ฌ์ดํŠธ API ๋””์ž์ธ ์ง€์›:

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋Œ€์‹  ์„œ๋น„์Šค ๊ทธ๋ฃน์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์–ด ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ณ  ๋” ์œ ์—ฐํ•œ ์›น API๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

  • IoT์™€ ํ†ตํ•ฉ ํ™•์žฅ:

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์€ ๋™์ผํ•œ ์ œํ’ˆ์—์„œ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด IoT ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5.2. API ๊ฒŒ์ดํŠธ์›จ์ด ์‘์šฉ:

  • ๋‹ค์ค‘ ๋ฐ์ดํ„ฐ ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ง€์›:

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ค์–‘ํ•œ ์‹œ์Šคํ…œ์—์„œ ์—ฌ๋Ÿฌ ์ •๋ณด ์†Œ์Šค์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•  ๋•Œ API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๊ทธ ์ •๋ณด ์†Œ์Šค์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ํ—ˆ๋ธŒ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • API ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„ ๋ฐ์ดํ„ฐ ํ˜•์‹ ๋ณ€ํ™˜:

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ํ˜•์‹์œผ๋กœ ์ œ๊ณตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ๊ณผ ํ˜ธํ™˜๋˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • ์„ฑ๋Šฅ ์ตœ์ ํ™”:

API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ํŠธ๋ž˜ํ”ฝ ์–‘, ์‘๋‹ต ์‹œ๊ฐ„, ์˜ค๋ฅ˜ ๋นˆ๋„ ๋“ฑ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ™œ๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํ•ด๊ฒฐํ•˜์—ฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

์š”์•ฝํ•˜๋ฉด, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ชจ๋‘ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ง€์› ๋„๊ตฌ์ด๋ฉฐ, API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ณ ๊ฐ ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ์ค‘๊ฐœ์ž๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์™€ API ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์„œ๋กœ ๊ทน๋„๋กœ ๋ฐ€์ ‘ํ•œ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

BAP Software๋Š” ํ˜„์žฌ ๋น„์ฆˆ๋‹ˆ์Šค๊ฐ€ ๋น„์šฉ์„ ์ตœ์ ํ™”ํ•˜๊ณ  ์šด์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์†”๋ฃจ์…˜ ์ œ๊ณต ์—…์ฒด์ž…๋‹ˆ๋‹ค. ๊ท€์‚ฌ๊ฐ€ ์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ถ๊ธˆํ•œ ์‚ฌํ•ญ์ด ์žˆ์œผ๋ฉด ์ฆ‰์‹œ ๋ฌธ์˜ํ•˜์—ฌ ์ƒ๋‹ด ๋ฐ ๋‹ต๋ณ€์„ ๋ฐ›์œผ์„ธ์š”.