๋ฐฐํฌ๋Š” ์–ด๋–ป๊ฒŒ?

๋ฐฐํฌ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ ๊ฐ€์žฅ ๋จผ์ € ์ด๋ฃจ์–ด์ ธ์•ผํ•  ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
๋ฐฐํฌ๋ฅผ ์–ด๋–ค ์„œ๋ฒ„์—, ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋ฐฐํฌํ•  ๊ฒƒ์ธ์ง€ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์ž๋ฉด, AWS LightSail์— ์ธ์Šคํ„ด์Šค 2๊ฐœ๋ฅผ ๋งŒ๋“ค๊ณ  ํ•˜๋‚˜๋Š” DB ์„œ๋ฒ„๋กœ ์“ฐ๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Docker๋ฅผ ์„ค์น˜ํ•˜์—ฌ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ์— ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์ •ํ•˜์—ฌ ๋ฐฐํฌ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์งˆ์ง€ ๊ณ ๋ฏผํ•ด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

API Endpoint ๋ถ„๋ฆฌ

๋ชจ๋“  API ์š”์ฒญ์€ /๋ฒ„์ „/~~~~๋กœ ์š”์ฒญ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
EX) /example โ†’ /v1/example ์œผ๋กœ ๋ณ€๊ฒฝ

ํด๋ผ์ด์–ธํŠธ: "์œ™? ๊ฐ‘์ž๊ธฐ ๋‚ ๋ผ์˜ค๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ”๋€๋‹ค๊ณ ? ์„œ๋ฒ„๋‹˜?"
๋ฐฑ์—”๋“œ: "์•„ ๊ทธ๊ฑฐ ๋ญ ๋•Œ๋ฌธ์— ๋ฐ”๊ฟจ์–ด์š”!"
ํด๋ผ์ด์–ธํŠธ: "์•„... ๊ทธ๋ž˜์š”... ๋˜ ๋ฐ”๊ฟ”์•ผ ํ•˜๊ฒ ๊ตฐ์š”..."
๋ฐฑ์—”๋“œ: "ใ… ใ… ใ… "
์ด๋Ÿฐ ํ˜„์ƒ์ด ํ”„๋กœ๋•์…˜์—์„œ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด...?
์„œ๋ฒ„์˜ ์ˆ˜์ •์— ์˜ํ•ด ์ž˜ ๋™์ž‘๋˜๋˜ ํด๋ผ์ด์–ธํŠธ๋„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๊ณ , ๋ฐฐํฌ์ž‘์—…์„ ํด๋ผ์ด์–ธํŠธ ๋˜ํ•œ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ถ”ํ›„์— ๋ฒก์—”๋“œ ๋กœ์ง ๋ณ€๊ฒฝ์ด๋‚˜, ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์‹œ ๊ธฐ์กด ํด๋ผ์ด์–ธํŠธ์—์„œ API ์—ฐ๋™ ๊ด€๋ จ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ž‘์—…์„ ํ•˜๋Š” ๊ณผ์ •์ด API Endpoint ๋ถ„๋ฆฌ ์ž‘์—…์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

API ๋ฌธ์„œํ™”

ํด๋ผ์ด์–ธํŠธ A: "์ด๊ฑฐ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผํ•ด?"
๋ฐฑ์—”๋“œ: "์ด๊ฑฐ ์ด๋ ‡๊ฒŒ ์ด๋ ‡๊ฒŒ ์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐํ•˜๋ฉด ๋จ"
ํด๋ผ์ด์–ธํŠธ B: "์ด๊ฑฐ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผํ•จ?"
๋ฐฑ์—”๋“œ: "์ด๊ฑฐ ์ด๋ ‡๊ฒŒ ์ด๋ ‡๊ฒŒ ์ด๋ ‡๊ฒŒ ์—ฐ๊ฒฐํ•˜๋ฉด ๋จ"
๋„๋ฅด๋งˆ๋ฌด... ๋„๋ฅด๋งˆ๋ฌด... ๋„๋ฅด๋งˆ๋ฌด...

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ API๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ ‘๊ทผํ•˜๋Š”์ง€ ์ •๋ฆฌํ•ด์ฃผ๋ฉด ํด๋ผ์ด์–ธํŠธ ์ž‘์—…์ด ๋” ์ˆ˜์›”ํ•ด์ง‘๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ: "์ด๊ฑฐ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ•ด์•ผํ•ด?"
๋ฐฑ์—”๋“œ: "API ๋ฌธ์„œ์— ๋‚˜์™€์žˆ์œผ๋‹ˆ ๊ทธ๊ฑฐ ๋ณด๊ณ  ์—ฐ๊ฒฐํ•˜๋ฉด๋จ"

์ง์ ‘ Excel์ด๋‚˜ hwp, pdf ๋“ฑ์œผ๋กœ ์ž‘์—…์„ ํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, GitBook, Swagger๋“ฑ API ๋ฌธ์„œํ™”์— ์ตœ์ ํ™” ๋œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋” ์‰ฝ๊ณ  ํŽธํ•˜๊ฒŒ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

CORS

์„œ๋น„์Šค ํ™˜๊ฒฝ์— ๋”ฐ๋ผ CORS๋ฅผ ํ—ˆ๊ฐ€ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
CORS์— ๋Œ€ํ•œ ์ž์„ธํ•œ ํฌ์ŠคํŠธ๋Š” wlsdud2194๋‹˜์˜ ํฌ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋งŽ์€ ๋„์›€์ด ๋ ๊ฒ๋‹ˆ๋‹ค!

๋กœ๊น… / ๋ชจ๋‹ˆํ„ฐ๋ง ์„ค์ •

์„œ๋ฒ„์˜ ์˜ค๋ฅ˜๋ฅผ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋งŒ์•ฝ ํŒ€์—์„œ Slack ๊ฐ™์€ ๋ฉ”์‹ ์ €๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ์„œ๋ฒ„ ์˜ค๋ฅ˜ ๋ณด๊ณ  ์ฑ„๋„์„ ๋งŒ๋“ค์–ด ๋ชจ๋‹ˆํ„ฐ๋ง ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

๋”๋ถˆ์–ด API ์‘๋‹ต ์‹œ๊ฐ„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ (swagger-stats)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด,
API ์‘๋‹ต ์‹œ๊ฐ„์„ ํ™•์ธํ•ด๋ณด๊ณ  ์‘๋‹ต ์‹œ๊ฐ„์ด ๊ธด API๋ฅผ ์ตœ์ ํ™” ํ•˜๋Š” ๊ฒƒ๋„ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

CI/CD ์„ค์ •

์„œ๋ฒ„์— ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ˜๋ณต๋˜๋Š” ๋™์ž‘ ์ฒ˜๋ฆฌ๋ฅผ CI/CD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋™ํ™” ํ•˜์„ธ์š”.
์„œ๋ฒ„ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ฒˆ๊ฑฐ๋Ÿฌ์šด ์ž‘์—…์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!