๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ผ์ง€ ๐Ÿงพ/๐Ÿƒ‍โ™‚๏ธ ๋‚˜์˜ ์„ฑ์žฅ ์ผ์ง€

๋ˆ„์  ๋ฐฉ๋ฌธ ์ˆ˜ 2๋งŒ๋ช… ๋‹ฌ์„ฑ~!

by GroovyArea 2023. 8. 27.

๊ฐœ๋ฐœ ๋ธ”๋กœ๊ทธ ์‹œ์ž‘ํ•œ์ง€ 2๋…„ ์ข€ ์•ˆ ๋˜์—ˆ๋‹ค.

2021๋…„ ๊ฒจ์šธ ์ •๋„์— ์‹œ์ž‘ํ–ˆ์œผ๋‹ˆ ๋ง์ด๋‹ค.

๋ฒŒ์จ (์•„๋‹ˆ ์ด์ œ์•ผ..) 2๋งŒ๋ช… ๋‹ฌ์„ฑ์ด๋ผ๋‹ˆ..

์กฐํšŒ ์ˆ˜๋Š” ์ฐธ ๋Š˜๋ฆฌ๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๊ตฌ๋‚˜..

์–‘์งˆ์˜ ๊ธ€์„ ์จ๋ณด๋„๋ก ๋…ธ๋ ฅํ•˜์ž.

 

์š”์ƒˆ ๋ญํ•˜๊ณ  ์ง€๋‚ด๋‹ˆ?

ํšŒ์‚ฌ์—์„œ ์—ด์‹ฌํžˆ ์ฝ”๋”ฉ ์ค‘์ด๋‹ค.

์„œ๋น„์Šค ๊ฐœ๋ฐœ ๋งˆ์ผ์Šคํ†ค์ด ์ƒ๋‹นํžˆ ์งง์€ ๊ฐ์ด ์—†์ง€ ์•Š์ง€๋งŒ,

์งง๋‹ค๊ณ  ๋Š๋ผ๋Š” ๊ฒƒ๋„ ๊ฒฐ๊ตญ ๋‚ด ์‹ค๋ ฅ ๋ถ€์กฑ์ด๋ž€ ์ƒ๊ฐ๋„ ๋“ ๋‹ค.

 

์ด์ „์—๋Š” CRUD ์— ์ง„์ ˆ๋จธ๋ฆฌ ๋‚˜์„œ, 

์›ฌ๋งŒํ•œ ๊ฑด ์ •๋ง ํด๋ฆฐํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค.

๋” ํฐ ๊ทœ๋ชจ์˜ ์„œ๋น„์Šค ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ํšŒ์‚ฌ์— ์˜ค๋‹ˆ, ์ด๋Ÿฐ? ํฐ ์˜ค์‚ฐ์ด์—ˆ๋‹ค..

 

๊ฐœ๋ฐœ ์†๋„ VS ํ€„๋ฆฌํ‹ฐ

์ด์ „๊ณผ ๊ฐ™์ด ์ง€๊ธˆ๋„ ๋ณ€ํ•จ ์—†๋Š” ์ƒ๊ฐ์ด์ง€๋งŒ,

ํ€„๋ฆฌํ‹ฐ๋Š” ๊ฐœ๋ฐœ์ž์˜ ๊ธฐ๋ณธ ์—ญ๋Ÿ‰์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

์—ญ๋Ÿ‰์„ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์€ ์˜ค๋กœ์ง€ ๋ณธ์ธ์˜ ๋ชซ์ด๋ฉฐ, 2๊ฐ€์ง€๋ฅผ ์–‘์ž ํƒ์ผ์˜ ๋น„๊ต ์„ ์ƒ์— ๋‘๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ์ž˜๋ชป๋œ ์งˆ๋ฌธ์ด๋‹ค.

 

ํšŒ์‚ฌ ์ž…์žฅ์—์„œ๋Š” ๋‹น์—ฐํžˆ ์„œ๋น„์Šค ๊ฐœ๋ฐœ ๋ฐ ์ถœ์‹œ์ผ์„ ํ”ฝ์Šคํ•˜์—ฌ,

๊ธฐํš, ๊ฒฝ์˜, ๋งˆ์ผ€ํŒ…์„ ์ง„ํ–‰ํ•  ๊ณ„ํš์„ ์„ธ์šฐ๊ณ  ์‹œ์žฅ์— ๋‚ด๋†“์•„ ์ˆ˜์ต์„ ๋‚ด๋Š” ๊ฒƒ์ด ๊ทผ๋ณธ์ ์ธ ๋ชฉํ‘œ์ด๋‹ค.

๋‚˜๋Š” ํšŒ์‚ฌ์—์„œ ๋ˆ์„ ๋ฐ›๊ณ  ์ผํ•˜๋Š” ํ”„๋กœ์ด๋ฏ€๋กœ, ๋‹น์—ฐํžˆ ๊ธฐ๊ฐ„์„ ๋งž์ถ”๋Š” ๊ฒƒ์ด ๋งž๋‹ค.

 

ํ•˜์ง€๋งŒ, ๊ฐœ๋ฐœ์ž๋กœ์„œ ์š•์‹ฌ๋„ ์žˆ๋‹ค.

ํ€„๋ฆฌํ‹ฐ, ์ฝ”๋“œ ํ’ˆ์งˆ.. ๊ทธ๊ฒƒ๋งŒ์€ ํฌ๊ธฐ ๋ชปํ•œ๋‹ค..

๋‚จ์ด ๋ณด๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ, ๋ณ€์ˆ˜๋ช…, ํ•จ์ˆ˜๋ช…, ํด๋ž˜์Šค๋ช…, ํŒจํ‚ค์ง€๋ช…, ๊ตฌ์กฐ ๋“ฑ๋“ฑ ๊ณ ๋ฏผ๋งŒ ๊ฑฐ์ง„ 90%, ๋‚˜๋จธ์ง€ 10% ์ฝ”๋“œ ์ž‘์„ฑ..

๊ทธ๋ž˜์„œ ํ•ญ์ƒ ๋Šฆ๊ฒŒ๊นŒ์ง€ ์ผ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋Ÿฌํ•œ ์—ญ๋Ÿ‰์€ ์‹ ์ž… ๋•Œ ๋…ธ๋ ฅํ•˜์—ฌ ์Œ“์•„๋‘๋Š” ๊ฒƒ์„ ์Šต๊ด€ํ™”ํ•˜๋ฉด ๋ถ„๋ช…ํžˆ ๋ ˆ๋ฒจ์—…ํ•˜๊ณ  ์žˆ์ง€ ์•Š์„๊นŒ๋ž€ ๋ฏฟ์Œ์„ ๊ฐ€์ง„๋‹ค.

 

๋น„๊ฐœ๋ฐœ ์—ญ๋Ÿ‰

๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœ๋งŒ ์ž˜ํ•˜๋ฉด ๋์ง€. ๋˜ ๋ญ”๊ฐ€ ํ•„์š”ํ•œ๋ฐ??

๋ˆ์„ ๋ฐ›๊ณ  ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋Š๋‚€ ์ค‘์š”ํ•œ ์—ญ๋Ÿ‰์€ ๋ฐ”๋กœ ๋น„๊ฐœ๋ฐœ์ ์ธ ๋ถ€๋ถ„์ด๋‹ค.

๋ฐ”๋กœ ๋ฌธ์„œํ™”.

 

๊ฐ€๋ น, ์ƒˆ ์„œ๋น„์Šค์˜ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด, ๋ถ„๋ช…ํžˆ API ๋ช…์„ธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค.

ํ˜ผ์ž์„œ ํ•  ๋•Œ์•ผ ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๊ณ  ์ฝ”๋”ฉํ–ˆ๋‹ค. ์ข€ ๋” ์‹ ๊ฒฝ์„ ์ผ๋‹ค๋ฉด ๋…ธ์…˜์— API ์—”๋“œํฌ์ธํŠธ๋งŒ ํœ˜๊ฐˆ๊ฒผ์—ˆ๋‹ค.

 

ํšŒ์‚ฌ๋Š” ์•ˆ๋œ๋‹ค.

์ด์ „ ํšŒ์‚ฌ์—์„œ๋Š” swagger ๋กœ ์• ๋…ธํ…Œ์ด์…˜์„ ๋–ก์น ํ•˜์—ฌ ๋งŒ๋“ค์–ด์ง„ swagger docs ๋กœ ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์™€ ์†Œํ†ตํ–ˆ์—ˆ๋‹ค.

๊ทธ ๋• API Docs ๋ฆฌ๋ทฐ ๊ฐ™์€ ๊ฑด ์—†์—ˆ๋‹ค. ๋ฌผ๋ก , ๊ทน ์ดˆ๊ธฐ ์Šคํƒ€ํŠธ์—…์ด๋ผ ๊ฐœ๋ฐœ ๋ฌธํ™”๊ฐ€ ์žกํžˆ์ง€ ์•Š์€ ๊ฑด ๋‹น์—ฐํ•˜๋‹ค.

์ƒˆ๋กœ ์˜ฎ๊ธด ํšŒ์‚ฌ์—์„œ๋Š” API ๋ช…์„ธ์— ๋Œ€ํ•œ ๊ธ€์„ ์ž‘์„ฑํ•˜๊ณ  ํ…Œํฌ ๋ฆฌ๋“œ์™€ ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆ˜์ •ํ•œ open-api-doc (swagger.yaml) ์„ merge ๋œ ํ›„, ๋ช…์„ธ์— ๋งž๊ฒŒ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•œ๋‹ค. (๋ฌผ๋ก  ํ…œํ”Œ๋ฆฟ์ด ์žˆ๋‹ค.)

 

ํ…œํ”Œ๋ฆฟ์ด ์žˆ์ง€๋งŒ, ์ตœ๋Œ€ํ•œ ๊ธฐํš์ž๊ฐ€ ๋ณด๋”๋ผ๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ , ๋””ํ…Œ์ผํ•œ ๋ถ€๋ถ„๊นŒ์ง€ ์บ์น˜ํ•˜๋ ค ํ•œ๋‹ค.

๋ฌด์—‡๋ณด๋‹ค ๊ฐœ๋ฐœ์ž๊ฐ€ ์“ด๋“ฏํ•œ ๊ธ€์ด ์•„๋‹ˆ๊ณ , ์ „๋ฌธ ๊ธฐํš์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ฒƒ ๊ฐ™์ด ๋ณด์—ฌ์ง€๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ๋ฐ”๋žจ๋„ ์žˆ๋‹ค.

 

์ด๋Ÿฐ ๋น„๊ฐœ๋ฐœ์ ์ธ ์—ญ๋Ÿ‰์€ ์ „์ฒด ์Šคํ”„๋ฆฐํŠธ, ์—ํ”ฝ์—์„œ ํƒ„ํƒ„ํ•˜๊ณ , ์•ˆ์ •์„ฑ ์žˆ๊ฒŒ ๊ณผ์ •์„ ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ดˆ ํ† ๋Œ€๊ฐ€ ๋œ๋‹ค.

๊ฐœ๋ฐœ์ž๋„ ์—„์—ฐํžˆ ํ˜‘์—…์„ ์œ„ํ•ด ๋ˆ์„ ๋ฐ›๊ณ  ์ผํ•˜๋Š” ํŒ€์›์ด๋ฏ€๋กœ, ์ด๋Ÿฌํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ”์–ด์•ผ ํ•œ๋‹ค.

 

1๋…„ ์ฐจ๊ฐ€ ๋˜์—ˆ์„ ๋•Œ ๋‚˜๋Š” ์–ด๋–ค ๋ชจ์Šต์ผ๊นŒ?

๊ฐœ๋ฐœ ์—ญ๋Ÿ‰๋„ ๊ฐœ๋ฐœ ์—ญ๋Ÿ‰์ธ๋ฐ, (๊ธฐํƒ€ ์ธํ”„๋ผ, ๋„คํŠธ์›Œํฌ ๊ธฐ์ˆ , ์–ธ์–ด ๋ ˆ๋ฒจ์—์„œ์˜ ์ง€์‹ ๋“ฑ๋“ฑ)

๋‚˜๋Š” ๋น„๊ฐœ๋ฐœ์ ์ธ ์—ญ๋Ÿ‰๊ณผ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์—ญ๋Ÿ‰ ๋ถ€๋ถ„์—์„œ, ๋งŽ์ด ์„ฑ์žฅํ•˜๋ฉฐ ๋ฐฐ์šฐ๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋‹ค.

 

์ด์ œ 3๊ฐœ์›”๋งŒ ์ง€๋‚˜๋ฉด ๋ฒŒ์จ 1๋…„์ฐจ์ธ๋ฐ, 

์ฐธ ์„ธ์›” ๋น ๋ฅด๋‹ค..

3๊ฐœ์›”๊ฐ„์˜ ํญํ’ ์„ฑ์žฅ์„ ๋” ์ด๋ค„๋ณด์ž.

๋” ๋น ๋ฅด๊ณ , ํšจ์œจ์ ์ด๊ฒŒ ๋ง์ด์•ผ.

 

๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ํ™”์ดํŒ…~!!

 

 

๋ฐ˜์‘ํ˜•