๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€

๋‹จ์ผ ์ธ์Šคํ„ด์Šค์—์„œ EBS๊ฐ€ ์žˆ๋Š”๋ฐ, S3๋ฅผ ์™œ ์‚ฌ์šฉํ•ด์•ผ ํ• ๊นŒ? ์ด๋ฒˆ์— DND์— ์ฐธ์—ฌํ•˜๋ฉด์„œ, ์ƒˆ๋กœ์šด ๋„๋ฉ”์ธ์„ ๊ฒฝํ—˜ํ•  ๊ธฐํšŒ๋ฅผ ์–ป์—ˆ๋‹ค.์•„์ง ์ดˆ๋ฐ˜์ด๋ผ ์„œ๋ฒ„ ๊ตฌ์„ฑ์ด๋‚˜ ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์„ ๋จผ์ € ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ํ˜„์žฌ ์„œ๋ฒ„๋Š” ์šด์˜ ์„œ๋ฒ„์˜ ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์ง€ ์•Š์„ ๊ฒƒ์„ ๊ณ ๋ คํ•ด์„œ ๋‹จ์ผ ์ธ์Šคํ„ด์Šค๋กœ ์šด์˜ํ•  ๊ณ„ํš์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ S3 ๋ฒ„ํ‚ท์„ ๋งŒ๋“ค๊ณ  ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ ๊ตฌ์„ฑํ•˜๊ธฐ ์ „ ๋ฌธ๋“ ์ด๋Ÿฐ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. "๋‹จ์ผ ์ธ์Šคํ„ด์Šค๋กœ ์šด์˜ํ•œ๋‹ค๋ฉด, S3๋ง๊ณ  EBS(EC2์— ์—ฐ๊ฒฐ๋œ ์Šคํ† ๋ฆฌ์ง€)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€?" ๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด, ํ•„์š”ํ•˜๋‹ค. ๋‹ต์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋จผ์ € ๋‘ ์„œ๋น„์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์•Œ์•„๋ณด์ž. EBS์™€ S3, ๋ฌด์—‡์ด ๋‹ค๋ฅผ๊นŒ?EBS(Elastic Block Store)๋Š” EC2์— ์—ฐ๊ฒฐ๋˜์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์ƒ ํ•˜๋“œ๋””์Šคํฌ์ด๋‹ค. ์ธ์Šคํ„ด์Šค์—๋งŒ ์—ฐ๊ฒฐ๋˜๊ธฐ์— ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์˜ ๋กœ์ปฌ ํ•˜๋“œ ๋””์Šคํฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠน.. ๋”๋ณด๊ธฐ
OSRM Match API๋กœ ๋Ÿฌ๋‹ ์ฝ”์Šค ๋ฐ์ดํ„ฐ ์ขŒํ‘œ ๋ณด์ •ํ•˜๊ธฐ ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ์— ๋Ÿฌ๋‹ ์ฝ”์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ตฌ๊ธ€ ์–ด์Šค๋ฅผ ์ด์šฉํ–ˆ๋‹ค. ํ•ด๋‹น ๋ฐฉ๋ฒ•์€ ์ง์ ‘ ์ขŒํ‘œ๋ฅผ ์ฐ์–ด๊ฐ€๋ฉฐ, ํ•ด๋‹น ์ขŒํ‘œ๋“ค์„ ๋ชจ์•„ kml ํŒŒ์ผ๋กœ ์ถ”์ถœํ•˜์—ฌ ๋Ÿฌ๋‹ ์ฝ”์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค.ํ•˜์ง€๋งŒ ํ•ด๋‹น ๋ฐฉ์‹์€ ๊ฒฝ๋กœ๋ฅผ ๊ฐ ์ขŒํ‘œ๋งˆ๋‹ค ์ง์„ ์œผ๋กœ๋งŒ ์ด์–ด์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง์„ ์ด ๋งŽ์ง€ ์•Š์€ ์‹ค์ œ ๋„๋กœ์—์„œ๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค. ๋˜ํ•œ, ๊ณก์„ ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋“ค์—ฌ์•ผ ํ•˜๋Š” ์—๋„ˆ์ง€๊ฐ€ ๋งŽ์ด ์†Œ๋ชจ๋๋‹ค.๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•˜๊ณ , ์ด๋Š” ๋‹ค๋ฅธ ์™ธ๋ถ€ ์„œ๋น„์Šค (์ŠคํŠธ๋ผ๋ฐ”, ๊ฐ€๋ฏผ ๋“ฑ)์„ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ๋ธ”๋กœ๊ทธ, ์™ธ๋ถ€ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์ฐพ์œผ๋ฉฐ ์‹ค์ œ ๋Ÿฌ๋‹์„ ๋›ด ์‚ฌ๋žŒ๋“ค์˜ ๊ธฐ๋ก์„ gpx ํŒŒ์ผ๋กœ ์ถ”์ถœํ•˜์—ฌ ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค.์ด ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๊ธฐ์กด kml ํŒŒ์ผ๋ณด๋‹ค ํ’ˆ์งˆ์ด ์ข‹์€ ๋Ÿฌ๋‹ ์ฝ”์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ๋ฐฉ์‹์€ ์ธก์ •ํ•˜๋Š” ์‚ฌ๋žŒ์˜ ๊ธฐ๊ธฐ์— ๋”ฐ๋ผ .. ๋”๋ณด๊ธฐ
๊ธธ์ฐพ๊ธฐ, ๊ฒฝ๋กœ ๋ณด์ •์˜ ํ•ต์‹ฌ OSRM ํ†บ์•„๋ณด๊ธฐ OSRM์ด๋ž€osrm-backend์˜คํ”ˆ ์†Œ์Šค ๋ผ์šฐํŒ… ๋จธ์‹ ์˜ ์•ฝ์ž๋กœ OpenStreetMap(OSM) ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์ฃผ๋Š” ๋ผ์šฐํŒ… ์—”์ง„์ด๋‹ค. ๋ผ์šฐํŒ… ์—”์ง„์€ ๋‘ ์ง€์  ๊ฐ„์˜ ์ตœ์  ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ง€๋„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ž˜ํ”„ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ ์šฉํ•ด ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š”๋‹ค. ์šฐ์•„ํ•œํ˜•์ œ๋“ค, ๋„ค์ด๋ฒ„ ๋“ฑ ๋น…ํ…Œํฌ ๊ธฐ์—…์—์„œ๋„ ํ•ด๋‹น ์—”์ง„์„ ํ™œ์šฉํ• ๋งŒํผ ๋Œ€์ค‘์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ์˜คํ”ˆ ์†Œ์Šค์ธ๋งŒํผ ๋ฌด๋ฃŒ์ด๊ณ  ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ์ž์œ ๋กญ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ๋˜ํ•œ, C++์ด๊ธฐ์— ๊ต‰์žฅํžˆ ๋น ๋ฅธ ์†๋„๋กœ ๊ฒฝ๋กœ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. Valhalla๋‚˜ GraphHopper ๊ฐ™์€ ๋Œ€์ฒด์ œ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ OSRM์ด ํ•œ๊ตญ ๋‚ด์—์„œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋งŽ๊ณ , ๋ฌธ์„œํ™”๋„ ์ž˜ ๋˜์–ด์žˆ๋‹ค. Contraction HierarchiesOSRM์ด ๋น .. ๋”๋ณด๊ธฐ
API ๋ฌธ์„œ ๊ฐœ์„ ๊ณผ ๋ฌธ์„œํ™” ํˆด Stoplight๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์—์„œ API ๋ฌธ์„œ๋ฅผ Springdoc์„ ํ†ตํ•ด OpenAPI 3.0 ์ŠคํŽ™์— ๋งž๊ฒŒ ์ž๋™ ์ƒ์„ฑํ•˜์—ฌ Swagger UI ์กฐํ•ฉ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์•„๋ฌด๋ž˜๋„ ๊ฐ€์žฅ ์ต์ˆ™ํ•œ ํˆด์ด๊ธฐ๋„ ํ•˜๊ณ , ๋‹น์‹œ์—๋Š” Springdoc + Swagger UI ์กฐํ•ฉ์œผ๋กœ ๊ฐ€๋А๋ƒ, Spring Rest Docs๋ฅผ ์‚ฌ์šฉํ•˜๋А๋ƒ์—๋งŒ ์ง‘์ค‘ํ–ˆ๊ธฐ์— ์ง์ ‘ ์„œ๋ฒ„์— ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ Swagger UI๋ฅผ ์„ ํƒํ–ˆ์—ˆ๋‹ค.ํ•˜์ง€๋งŒ, ๋ฌธ์„œ๊ฐ€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š๊ณ  ๊ฐœ๋ฐœ์ž๋“ค๊ฐ„ ์‚ฌ์šฉ๋ฅ ์ด ์ ์  ์ €์กฐํ•ด์ง€๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด์†Œํ•˜๊ณ ์ž ๋จผ์ € ๋ฌธ์„œ๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ๊ฒ€ํ† ํ•ด๋ณด์•˜๋‹ค. ๊ฐœ์„ 1. ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค๋ช… ๋ถ€์žฌ์š”์ฒญ๊ณผ ์‘๋‹ต ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋จผ์ € ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ, ์„ค๋ช…์ด ๋ถ™์–ด์žˆ๋Š” ๊ฒƒ๋„ ์žˆ์ง€๋งŒ ๋ถ™์–ด์žˆ์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ example๋งŒ ํฌํ•จํ•˜์—ฌ ์šด์˜๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ๋„ ์žˆ์—ˆ๋‹ค.. ๋”๋ณด๊ธฐ
๊ณต๊ฐ„ ์ธ๋ฑ์Šค ๊ณต๊ฐ„ ์ธ๋ฑ์Šค(Spatial Index)๋Š” ๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰์„ ๋”์šฑ ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์ธ๋ฑ์Šค์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž ์œ„์น˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ 1km ๋‚ด์˜ ๊ฐ€๊ฒŒ๋ฅผ ์ฐพ๋Š”๋‹ค๊ณ  ํ•˜์ž. ์ผ๋ฐ˜ ์ธ๋ฑ์Šค๋ผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์œ„๋„, ๊ฒฝ๋„๋ฅผ ๋”ฐ๋กœ ์นผ๋Ÿผ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ (์œ„๋„, ๊ฒฝ๋„)์™€ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๋ณตํ•ฉ ์ธ๋ฑ์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์ด 1km๋ฅผ ์ฐพ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.์‚ฌ์šฉ์ž: (37.5, 127.0)1km ≈ ์œ„๋„ ±0.009, ๊ฒฝ๋„ ±0.011→ WHERE latitude BETWEEN 37.491 AND 37.509 AND longitude BETWEEN 126.989 AND 127.011 ์ด๋Ÿฐ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค๊ฐ€ ์œ„๋„ ๋ฒ”์œ„ ๋‚ด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ํƒ์ƒ‰ํ•˜๋ฉด์„œ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒฝ๋„๋ฅผ ์ฐพ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ.. ๋”๋ณด๊ธฐ
์‹ค์Šต์„ ํ†ตํ•œ ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(TDD) ๋“ค์–ด๊ฐ€๋ฉฐ์•ˆ๋…•ํ•˜์„ธ์š”. ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค์˜ ๋ฐฑ์—”๋“œ 7๊ธฐ ์œจ๋ฌด์ž…๋‹ˆ๋‹ค. ์ €๋Š” ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค์—์„œ ์ฒ˜์Œ ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์— ๋Œ€ํ•ด์„œ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ๋‹น์‹œ์—๋Š” ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์ด ์˜คํžˆ๋ ค ๊ฐ์ฒด์ง€ํ–ฅ์  ์„ค๊ณ„์˜ ๋ฐฉํ–ฅ์„ฑ์„ ์ œ์‹œํ•˜์ง€ ๋ชปํ•˜๋ฉฐ, ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์†๋„๋ฅผ ๋Šฆ์ถ˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์ƒ๊ฐ์„ ๋ฐ”๊พธ๊ฒŒ ๋œ ๊ณ„๊ธฐ๊ฐ€ ์žˆ๋Š”๋ฐ์š”. ๋ฐ”๋กœ ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค ๋ ˆ๋ฒจ 1 ๋ฏธ์…˜ ‘์žฅ๊ธฐ’์˜€์Šต๋‹ˆ๋‹ค.ํ•ด๋‹น ๋ฏธ์…˜์—์„œ ์žฅ๊ธฐ ๋ณด๋“œ์™€ ๊ธฐ๋ฌผ๊ณผ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์„ ์‹ค์ฒœํ•ด๋ณด์•˜๋Š”๋ฐ, ์˜คํžˆ๋ ค ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์ด ์„ค๊ณ„์˜ ๋ฐฉํ–ฅ์„ฑ์„ ์žก์•„์ฃผ๊ณ  ์ฑ…์ž„์˜ ๋ช…ํ™•ํ•œ ๋ถ„๋ฆฌ๋ฅผ ์œ ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ํ…Œ์ŠคํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์†๋„๋Š” ๋А๋ฆฌ๊ธด ํ–ˆ์Šต๋‹ˆ๋‹ค๋งŒ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ ๊ณผ์ •์—์„œ ๋ถ„์„๊ณผ ์„ค๊ณ„๋ฅผ ํ•จ๊ป˜ ํ•˜๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ์ž…๋‹ˆ๋‹ค.์ผ„ํŠธ ๋ฒก์€ ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ์—์„œ ํ…Œ์Šค.. ๋”๋ณด๊ธฐ
ํด๋กœ๋“œ AI๋ฅผ ํ†ตํ•œ ์Šคํ”„๋ง ํ•™์Šต ์ตœ๊ทผ Claude AI Pro๋ฅผ ๊ตฌ๋งคํ•˜๋ฉด์„œ AI์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ๋”์šฑ ๋งŽ์•„์กŒ๋‹ค. ๊ธฐ์กด์—๋Š” AI๋ฅผ ๊ทธ๋‹ฅ ์„ ํ˜ธํ•˜์ง„ ์•Š์•˜์ง€๋งŒ, ์„ธ์ƒ์ด ๋Œ์•„๊ฐ€๋Š” ๋ชจ์Šต์„ ๋ณด๋ฉด AI๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ๊ธฐํšŒ์— ๋ฉด์ ‘ ์ค€๋น„๊ฒธ ํ•™์Šต์œผ๋กœ Claude AI๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.๊ฐ€์žฅ ๋จผ์ € ํ•ด๋ณธ ๊ฒƒ์€ ์Šคํ”„๋ง์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹ ํ•™์Šต์ด ์ž˜๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ!๊ฐ„๋‹จํ•˜๊ฒŒ ํ”„๋กฌํ”„ํŠธ๋Š” "์Šคํ”„๋ง์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ ์ธ ์ง€์‹์„ ํ•™์Šตํ–ˆ๋Š”๋ฐ, ์ด๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ์–ด. ๋„ˆ๊ฐ€ ํ•œ ๋ฌธ์ œ์”ฉ ๋‚ด๋ฉด ๋‚ด๊ฐ€ ๊ทธ๊ฑธ ๋‹ตํ•˜๋Š” ์‹์œผ๋กœ ์ง„ํ–‰ํ•ด๋ณด์ž"๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค.์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ:์Šคํ”„๋ง์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ธ IoC(Inversion of Control)์™€ DI(Dependency Injection)์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ์Šคํ”„๋ง์—์„œ ์˜์กด์„ฑ ์ฃผ์ž…์„ ํ•˜๋Š” ๋ฐฉ.. ๋”๋ณด๊ธฐ
์•ˆ์ • ํ•ด์‹œ ์„ค๊ณ„ '๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ' ์ฑ…์„ ๋ณด๋ฉด์„œ '5์žฅ ์•ˆ์ • ํ•ด์‹œ ์„ค๊ณ„' ๋‹จ์›์„ ์ฝ์–ด๋ณด์•˜๋Š”๋ฐ, ์ž˜ ์ดํ•ด๊ฐ€ ๊ฐ€์ง€ ์•Š์•„์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.์ผ๋‹จ, ํ•ด๋‹น ๋‹จ์›์˜ ํ•ด์‹œ ๊ธฐ์ˆ ์€ API ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์บ์‹œ ์„œ๋ฒ„์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์‹œ์Šคํ…œ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด API ์„œ๋ฒ„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Stateless์ด๊ธฐ์— ์š”์ฒญ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๊ผญ ๊ฐ™์€ ์„œ๋ฒ„์—๊ฒŒ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ํ•˜๋Š” ๊ฒƒ๋„ ์•„๋‹ˆ๋ฉฐ, ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ ๋ฐ ์ œ๊ฑฐ ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ API ์„œ๋ฒ„์— ๋Œ€ํ•œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ์€ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๋”ฐ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๊ณ„์—†๋‹ค!์•ˆ์ • ํ•ด์‹œ์˜ ๋ชฉ์ ์€ ๊ธฐ์กด ํ•ด์‹œ๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ์ €์žฅ์†Œ ๋ถ„์‚ฐ ๋ฐฉ์‹์˜ ๋‹จ์ ์„ ํ•ด์†Œํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.๊ธฐ์กด ํ•ด์‹œ ๋ฐฉ๋ฒ•์€ ์„œ๋ฒ„์˜ ์ •๋ณด๋ฅผ ๋ฐฐ์—ด ๊ฐ™์€ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋‹ด์•„๋‘๊ณ .. ๋”๋ณด๊ธฐ