๐Ÿ‘ท๐Ÿป Architecture

5ํŽธ. Micro Service๋Š” ๋„์ถœํ•˜๋Š” ์ด๋ฒคํŠธ ์Šคํ† ๋ฐ์— ๋Œ€ํ•ด์„œ

DevPoong 2024. 4. 7. 22:51

Bounded Context ๊ธฐ๋ฐ˜ ๋„์ถœ

๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ๋ž€ DDD๋ฅผ ์ ์šฉํ•œ ์„ค๊ณ„์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ์‘์ง‘์„ฑ์ด ์žˆ๋Š” ๋„๋ฉ”์ธ์„ ์ •์˜ํ•˜๊ณ  ๋„๋ฉ”์ธ ๊ฐ„์˜ ๊ฒฝ๊ณ„๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

์ด ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š”๋ฐ ์ข‹์€ ๋‹จ์œ„๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

 

์šฐ์„ , ํ•˜๋‚˜์˜ ํฐ ๋„๋ฉ”์ธ์„ ์ „๋žต์ ์œผ๋กœ ์ค‘์š”๋„์— ๋”ฐ๋ผ ๋‚˜๋ˆ„์–ด์•ผ ํ•œ๋‹ค. ๋˜ํ•œ, ํ•˜๋‚˜์˜ ํฐ ๋„๋ฉ”์ธ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•˜์œ„ ์„œ๋ธŒ ๋„๋ฉ”์ธ์œผ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.

 

์ด๋•Œ, ๋˜‘๊ฐ™์€ ํšŒ์›์ด๋”๋ผ๋„ ์˜ˆ์•ฝ ๋„๋ฉ”์ธ์—์„œ์˜ ํšŒ์›๊ณผ ๊ฒฐ์ œ ๋„๋ฉ”์ธ์—์„œ์˜ ํšŒ์›์€ ์˜๋ฏธ๊ฐ€ ๋‹ค๋ฅด๋‹ค. ์˜ˆ์•ฝ ๋„๋ฉ”์ธ์—์„œ๋Š” ์˜ˆ์•ฝ์ž์˜ ๊ฐœ์ธ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์˜ˆ์•ฝ์ž์˜ ์—ญํ• , ๊ฒฐ์ œ ๋„๋ฉ”์ธ์—์„œ๋Š” ๊ฒฐ์ œ์ž์˜ ์—ญํ• ๋กœ ์นด๋“œ ์ •๋ณด ๋“ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํšŒ์›์„ ์˜๋ฏธํ•œ๋‹ค.

๋”ฐ๋ผ์„œ, ๊ฐ ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ๋งˆ๋‹ค ๊ฐ™์€ ํšŒ์›์ด๋”๋ผ๋„ ๊ฐ ์ปจํ…์ŠคํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด๋กœ ํ‘œ๊ธฐํ•ด์•ผ ํ•œ๋‹ค.

 

์ด๋Ÿฐ ์‹์œผ๋กœ ๋„๋ฉ”์ธ ๋ชจ๋ธ๋“ค์„ ๊ตฌ์„ฑํ•˜๋‹ค ๋ณด๋ฉด ํšŒ์›๊ณผ ๊ฐ™์ด ์—ฌ๊ธฐ์ €๊ธฐ์„œ ์‚ฌ์šฉํ•˜๋Š” ์˜๋ฏธ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ ๊ฒฝ๊ณ„๊ฐ€ ๋„๋ฉ”์ธ์˜ ๊ฒฝ๊ณ„์ธ ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ์ด๋‹ค. 

 

๋‚ด๊ฐ€ ๋งŒ๋“  Context Map์—์„œ ์ผ๋ถ€ Bounded Context ์˜ˆ์‹œ

์ด์ „์— ์ƒ๋‹ด ์„œ๋น„์Šค์˜ MSA ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ง์ ‘ ์ž‘์„ฑํ–ˆ๋˜ ์ž๋ฃŒ์ด๋‹ค. ์•„์ง์€ ์—ฌ๊ธฐ๊นŒ์ง€ ์„ค๋ช…ํ•˜์ง€๋Š” ์•Š์•˜์ง€๋งŒ ๋…ธ๋ž€์ƒ‰ ์ง์‚ฌ๊ฐํ˜• ํฌ์ŠคํŠธ์ž‡์˜ ๊ฐ ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ์ž๋ฅผ ์ž˜ ๋ณด๋ฉด ๋œ๋‹ค.

 


์ฒซ ๋ฒˆ์งธ๋Š” ํšŒ์› ์ปจํ…์ŠคํŠธ์ด๋‹ค. ํšŒ์› ์ปจํ…์ŠคํŠธ์˜ ๊ฐ ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ์ž๋Š” ์ƒ๋‹ด ์˜๋ขฐ์ž์™€ ์ „๋ฌธ๊ฐ€๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

 

 

๋‘ ๋ฒˆ์งธ๋Š” ๊ฒฐ์ œ ์ปจํ…์ŠคํŠธ์ด๋‹ค. ํ•ด๋‹น ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ์ž๋Š” ์ƒ๋‹ด ์ƒํ’ˆ ๊ตฌ๋งค์ž์ด๋‹ค.

 

์ด๋ ‡๋“ฏ, ๊ฐ ์ปจํ…์ŠคํŠธ๋งˆ๋‹ค ๊ฐ™์€ ํšŒ์›์ด๋”๋ผ๋„ ์˜๋ขฐ์ž, ์ƒํ’ˆ ๊ตฌ๋งค์ž ๋“ฑ์œผ๋กœ ๋‹ค์–‘ํ•˜๊ฒŒ ์šฉ์–ด๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ , ์ด๊ฒŒ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š”๋ฐ ์šฉ์ดํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

Context Mapping์„ ํ†ตํ•œ ์—ฐ๊ฒฐ

๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ๋ฅผ ์‹๋ณ„ํ•  ๋•Œ ๊ฐ ์ปจํ…์ŠคํŠธ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์‘์ง‘์„ฑ์ด ๋†’์•„์•ผ ํ•˜๊ณ , ์ตœ๋Œ€ํ•œ ๋‹ค๋ฅธ ์ปจํ…์ŠคํŠธ์™€๋Š” ์˜์กด๊ด€๊ณ„๊ฐ€ ๋‚ฎ์•„์•ผ ํ•œ๋‹ค.

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

 

์ด๋Ÿฌํ•œ ์˜์กด๊ด€๊ณ„๋ฅผ ์ปจํ…์ŠคํŠธ ๋งคํ•‘์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ๋•Œ๋Š” ์ปจํ…์ŠคํŠธ ๊ฐ„์˜ ์„ ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

์ปจํ…์ŠคํŠธ ๋งคํ•‘์˜ ๊ด€๊ณ„๋กœ๋Š” ๊ณต์œ  ์ปค๋„, Cusotmer-Supplier, Anti-Corruption Layer์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋งคํ•‘ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

๋Œ€ํ‘œ์ ์œผ๋กœ Customer-Supplier ๋งคํ•‘ ์ „๋žต์—์„œ๋Š” ๊ณต๊ธ‰์ž ์ปจํ…์ŠคํŠธ๋ฅผ ์ƒ์œ„์— ๋‘๊ณ , ์†Œ๋น„์ž ์ปจํ…์ŠคํŠธ๋ฅผ ํ•˜์œ„์— ๋‘๋Š” ๋ฐฉ์‹์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.

 

์ด๋Ÿฐ ์‹์œผ๋กœ, ํ•˜๋‚˜์˜ ํฐ ๋„๋ฉ”์ธ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ๋กœ ๋‚˜๋ˆ„๊ณ  ๋งคํ•‘ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ ๊ฒƒ์„ Context Map์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์ด๋•Œ, ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ํ†ต์‹  ๋ฐฉ์‹๊ณผ ๋™๊ธฐ Rest API ๊ธฐ๋ฐ˜ ํ†ต์‹  ๋ฐฉ์‹ ๋“ฑ์„ ํ‘œํ˜„ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

์ด๋ฒคํŠธ ์Šคํ† ๋ฐ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•

์ด๋ฒคํŠธ ์Šคํ† ๋ฐ์€ ์ด๋ฒคํŠธ ์ค‘์‹ฌ์œผ๋กœ ์—ฌ๋Ÿฌ ์ดํ•ด๊ด€๊ณ„์ž๋“ค(๋„๋ฉ”์ธ ์ „๋ฌธ๊ฐ€, ๊ธฐํš์ž, ๊ฐœ๋ฐœ์ž, ๋””์ž์ด๋„ˆ ๋“ฑ)์ด ๋ชจ์—ฌ์„œ ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ์„ ํ•˜๋Š” ์›Œํฌ์ˆ์„ ์˜๋ฏธํ•œ๋‹ค.

MSA ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ํŽธํ•˜๊ฒŒ ์ ์šฉํ•ด ๋ณด๊ณ ์ž Figma๋ฅผ ์ด์šฉํ•ด์„œ ์˜จ๋ผ์ธ์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋˜ ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ ๊ฐ’์ง„ ๊ฒฝํ—˜์ด์—ˆ๋‹ค.

 

ํ˜„์‹ค์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์„ ์ด๋ฒคํŠธ ์Šคํ† ๋ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ ์˜๋ฏธ์˜ ํฌ์ŠคํŠธ์ž‡์„ ์ด์šฉํ•ด์„œ ๊ทธ๋ ค๋‚ด๋Š” ๊ณผ์ •์„ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ๋Œ€์ƒ์„ ์‹๋ณ„ํ•ด ๋‚ด๋ฉด ๋œ๋‹ค.

 

1. ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ (์ฃผํ™ฉ)

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

 

ex) ์ฃผ๋ฌธ๋จ, ์ฃผ๋ฌธ ์ทจ์†Œ๋จ

 

2. ์™ธ๋ถ€ ์‹œ์Šคํ…œ (ํ•‘ํฌ)

์„œ๋“œ ํŒŒํ‹ฐ ์‹œ์Šคํ…œ๊ณผ ๊ฐ™์ด ์™ธ๋ถ€ ์‹œ์Šคํ…œ์„ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํ‘œ์‹œํ•œ๋‹ค.
์ด๋ฒคํŠธ์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ๋ถ™์ด๊ณ  ํ™”์‚ดํ‘œ๋ฅผ ๊ทธ๋ ค์„œ ์ด ์™ธ๋ถ€ ์‹œ์Šคํ…œ์„ ํ˜ธ์ถœํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ‘œ์‹œํ•˜๋ฉด ๋œ๋‹ค.

 

ex) ์ด๋ฉ”์ผ ์‹œ์Šคํ…œ, PG ๊ฒฐ์ œ ์‹œ์Šคํ…œ, ๊ธˆ์œต๊ฒฐ์ œ์› ์‹œ์Šคํ…œ

์ด๋ฉ”์ผ ์‹œ์Šคํ…œ ํ•ซํ•‘ํฌ

3. ์ปค๋งจ๋“œ (ํŒŒ๋ž‘)

๊ฐ ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ๋ฅผ ๋™์ž‘ํ•˜๊ฒŒ ํ•˜๋Š” ์ปค๋งจ๋“œ๋ฅผ ์ฐพ์œผ๋ฉด ๋œ๋‹ค.
๋ช…๋ นํ˜•์œผ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋˜๊ณ , ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ์˜ ์ขŒ์ธก์— ๋ถ™์—ฌ์ค€๋‹ค.

์ฃผ์˜ํ•ด์•ผ ํ•  ๊ฒƒ์€, ํ•˜๋‚˜์˜ ์ปค๋งจ๋“œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

ex) ๋กœ๊ทธ์ธ (๋กœ๊ทธ์ธ๋จ์˜ ์ปค๋งจ๋“œ)

 

4. ํ•ซ์ŠคํŒŸ (๋ณด๋ผ)

์›Œํฌ์ˆ ๋„์ค‘์— ์ •ํ•  ์ˆ˜ ์—†๋Š” ์‚ฌํ•ญ์ด๊ฑฐ๋‚˜ ์˜๋ฌธ์‚ฌํ•ญ์„ ์ฐพ์œผ๋ฉด ํ‘œ๊ธฐํ•œ๋‹ค.
๊ฐ ์ปค๋งจ๋“œ ์˜†์— ๋ถ™์ด๋ฉด ๋œ๋‹ค.

 

ex) ์ฃผ๋ฌธ ๊ฐ€๋Šฅ ์กฐ๊ฑด ํ™•์ธ

 

5. ์•กํ„ฐ (๋…ธ๋ž‘ - ์ž‘์€ ํฌ์ŠคํŠธ์ž‡)

ํ™”๋ฉด์„ ํ†ตํ•ด ์ปค๋งจ๋“œ๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž(์—ญํ• )๋ฅผ ํ‘œ๊ธฐํ•œ๋‹ค.

์ถ”์ƒ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๊ตฌ์ฒด์ ์ธ ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ex) ๊ตฌ๋งค์ž, ๋ฐฐ๋‹ฌ๊ธฐ์‚ฌ ๋“ฑ๋“ฑ ๋ช…ํ™•ํ•œ ์—ญํ• ์„ ๋„์ถœํ•ด๋‚ด์•ผ ํ•œ๋‹ค.

์ปค๋งจ๋“œ์˜ ์™ผ์ชฝ ์•„๋ž˜์— ๋ถ™์ด๋ฉด ๋œ๋‹ค.

์•กํ„ฐ๋ฅผ ๋„์ถœํ•˜๋ฉด์„œ๋Š” ์‹๋ณ„ํ•œ ์ปค๋งจ๋“œ์™€ ์ด๋ฒคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์žฅ์œผ๋กœ ๋งŒ๋“ค์–ด์„œ ๊ฒ€ํ† ํ•ด๋ด์•ผ ํ•œ๋‹ค.

 

ex) ์˜๋ขฐ์ž๊ฐ€ ์ƒ๋‹ด์„ ์˜ˆ์•ฝํ•˜๋ฉด [์ƒ๋‹ด์˜ˆ์•ฝ๋จ]์ด๋ผ๋Š” ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

6. ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ์ •์˜ (๋…ธ๋ž‘ - ํฐ ํฌ์ŠคํŠธ์ž‡)

์ปค๋งจ๋“œ์™€ ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ๊ฐ€ ๋ฒŒ์–ด์ง€๋Š” ๊ฒƒ์„ ์–ด๋–ค ๋‹จ์–ด๋กœ ์นญํ•  ์ˆ˜ ์žˆ์„์ง€๋ฅผ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋„ ์•กํ„ฐ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ถ”์ƒ์ ์ด์ง€ ์•Š๊ฒŒ, ๊ตฌ์ฒด์ ์ธ ํ‘œํ˜„์œผ๋กœ ๋„์ถœํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.
๊ทธ ์ด์œ ๋Š” ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์‹๋ณ„ํ• ์ˆ˜๋ก ์ปจํ…์ŠคํŠธ์˜ ๊ฒฝ๊ณ„๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์ˆ˜์›”ํ•ด์ง„๋‹ค.

์ปค๋งจ๋“œ์™€ ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ์˜ ์ค‘๊ฐ„ ์ƒ๋‹จ์— ๋ถ™์—ฌ์ค€๋‹ค.

 

ex) ํšŒ์›, ์ƒ๋‹ด, ๊ฒฐ์ œ

 

7. ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ ๊ทธ๋ฆฌ๊ธฐ (๊ฒฝ๊ณ„์„ )

์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋ฅผ ๋ดค์„ ๋•Œ ์ผ๋ถ€ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋Š” ์ด๋ฆ„์ด ๊ฐ™๊ฑฐ๋‚˜ ์œ ์‚ฌํ•˜๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ, ์ด๋ฆ„์ด ๊ฐ™๊ฑฐ๋‚˜ ์œ ์‚ฌํ•œ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ์™€ ๊ตฌ๋ถ„ํ•ด์„œ ๊ฒฝ๊ณ„๋ฅผ ๊ทธ๋ฆฐ๋‹ค.

 

๊ฐ ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ์—๋Š” ์ด๋ฆ„์„ ๋ถ€์—ฌํ•˜๊ณ , ์ด ์ด๋ฆ„์€ ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ ๋‚ด์˜ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ์ด๋ฆ„์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ, ๋‚ด๋ถ€์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ์ค‘ ๋ฃจํŠธ ์• ๊ทธ๋ฆฌ๊ฑฐํŠธ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์˜ ์ด๋ฆ„์œผ๋กœ ์ •์˜ํ•œ๋‹ค.

 

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

 

8. ๋น„์ฆˆ๋‹ˆ์Šค ์ •์ฑ… ๋„์ถœ (๋ผ์ผ๋ฝ)

์ด๋ฒคํŠธ ๋’ค์— ๋”ฐ๋ผ์˜ค๋Š” ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์œผ๋กœ, ์–ด๋– ํ•œ ์ปค๋งจ๋“œ๋ฅผ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค.

์ •์˜: [๋„๋ฉ”์ธ ์ด๋ฒคํŠธ]ํ•  ๋•Œ๋Š” ํ•ญ์ƒ [์ปค๋งจ๋“œ]ํ•œ๋‹ค.  

 

๋”ฐ๋ผ์„œ, ์ •์ฑ…์€ ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ์™€ ์ปค๋งจ๋“œ ์‚ฌ์ด์— ์กด์žฌํ•˜๋ฉฐ, ์ด๋Ÿฌํ•œ ์ •์ฑ…์ด ํ˜ธ์ถœํ•˜๋Š” ์ปค๋งจ๋“œ๋Š” ๊ฐ™์€ ๋ฐ”์šด๋””๋“œ ๋˜๋Š” ์™ธ๋ถ€ ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ์— ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋Ÿฌํ•œ ์ •์ฑ…์„ ๋„์ถœํ•ด๋‚ด๋Š” ๊ณผ์ •์—์„œ ์—ฌ๋Ÿฌ ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์‹๋ณ„ํ•ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. 

 

ex) [์ƒ๋‹ด ์ทจ์†Œ๋จ] -> ์ •์ฑ… [์ƒ๋‹ด ์ƒํ’ˆ ์ƒํƒœ ๋ณ€๊ฒฝ] -> [์ƒ๋‹ด ์ƒํ’ˆ ์ƒํƒœ ๋ณ€๊ฒฝ๋จ]

 

9. ์ปจํ…์ŠคํŠธ ๋งคํ•‘

8๋ฒˆ๊นŒ์ง€ ์ง„ํ–‰ํ•˜๋ฉด ๋Œ€๋žต ๋ฐ”์šด๋””๋“œ ์ปจํ…์ŠคํŠธ๊ฐ€ ์‹๋ณ„๋˜๊ณ  ๊ด€๊ณ„๊ฐ€ ํŒŒ์•…๋˜๊ณ  ๋งคํ•‘์„ ํ•˜๋ฉด ๋œ๋‹ค.

 

์ด๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€, ํ˜ธ์ถœ ๊ด€๊ณ„์˜ ๋ฐฉํ–ฅ์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๊ณ , ๋™๊ธฐ ๋ฐฉ์‹ ๋˜๋Š” ๋น„๋™๊ธฐ ๋ฐฉ์‹ ์ค‘ ์–ด๋–ค ๋ฐฉ์‹์˜ ํ˜ธ์ถœ์ด ํ•„์š”ํ•œ์ง€ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

์ด๋•Œ, ์ปจํ…์ŠคํŠธ ๊ฐ„์— ํ•ญ์ƒ ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ๊ด€๊ณ„์ผ ๋•Œ๋Š” ๋™๊ธฐ ํ˜ธ์ถœ๋กœ ํ‘œํ˜„ํ•˜๊ณ , ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ผ๊ด€์„ฑ์ด ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํžˆ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ๊ด€๊ณ„๋ผ๋ฉด ๋น„๋™๊ธฐ ๋ฐฉ์‹ ํ˜ธ์ถœ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ, ์˜์กด๋„๋ฅผ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด ์ •๋ง ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ •ํ•ฉ์„ฑ์ด ๋งž์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋งŒ ์•„๋‹ˆ๋ผ๋ฉด ๋น„๋™๊ฐ€ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด  ์ข‹๋‹ค.
๋˜ํ•œ, ๋น„๋™๊ธฐ ๋ฐฉ์‹์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค์˜ ์„ฑ๋Šฅ๊ณผ ์•ˆ์ •์„ฑ์ด ์˜ฌ๋ผ๊ฐ์— ๋”ฐ๋ผ ํ˜„์žฌ๋Š” ๋น„๋™๊ธฐ ๋ฐฉ์‹์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

  • ๋™๊ธฐ ํ˜ธ์ถœ์€ ์‹ค์„ 
  • ๋น„๋™๊ธฐ ํ˜ธ์ถœ์€ ์ ์„ 

 

10. ๊ฒฐ๊ณผ๋ฌผ ํ™•์ธ

์•„๋ž˜ ์‚ฌํ•ญ์„ ์ฒดํฌํ•ด์•ผ ํ•œ๋‹ค.

  1. ๋น„์ง€๋‹ˆ์Šค ์ธก๋ฉด์—์„œ ํ•˜๋‚˜์˜ ๋งฅ๋ฝ์œผ๋กœ ๊ตฌ๋ถ„๋˜๋Š”๊ฐ€?
  2. ๋ฐ์ดํ„ฐ ์ธก๋ฉด์—์„œ Micro Service๋ณ„๋กœ ๋ถ„๋ฆฌ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ ๊ฐ€๋Šฅํ•œ๊ฐ€?
  3. ์šด์˜ ์ธก๋ฉด์—์„œ ๋…๋ฆฝ์ ์œผ๋กœ ์šด์˜ ๊ฐ€๋Šฅํ•œ๊ฐ€?
  4. ๋ณ€๊ฒฝ ์‹œ ์„œ๋กœ ์˜ํ–ฅ๋„๊ฐ€ ํฐ๊ฐ€?

 

๊ทธ๋ฆฌ๊ณ  ์ด ์ดํ›„์— ์ƒ์„ธ ์„ค๊ณ„๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค๋กœ ๋‚˜๋ˆ„์–ด์ ธ ๊ฐœ๋ฐœํ•˜๋ฏ€๋กœ, ๋ฐฑ์—”๋“œ์—์„œ๋Š” ์„œ๋น„์Šค์˜ ๋ชจ๋ธ๋ง๊ณผ ๊ฐœ๋ฐœ ์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.

 

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

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