๐Ÿ”™๋’ค๋กœ๊ฐ€๊ธฐ

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

API ๋ฒ„์ „ ๊ด€๋ฆฌ์˜ ์ค‘์š”์„ฑ

  1. ํ˜ธํ™˜์„ฑ ์œ ์ง€ API ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๊ธฐ์กด ์‚ฌ์šฉ์ž๋“ค์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋„๋ก ํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋„์ž…ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
  2. ์ด์ „ ๋ฒ„์ „ ์ง€์› ์ผ๋ถ€ ์‚ฌ์šฉ์ž๋“ค์ด ์ด์ „ ๋ฒ„์ „์˜ API๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค.
  3. ๋ณ€ํ™” ์ถ”์  API์˜ ๋ณ€ํ™”๋ฅผ ๊ธฐ๋กํ•˜์—ฌ, ์‚ฌ์šฉ์ž๋“ค์ด ์‰ฝ๊ฒŒ ๋ณ€ํ™”์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

API ๋ฒ„์ „ ๊ด€๋ฆฌ ์ „๋žต

  1. URI ๋ฒ„์ „ ๊ด€๋ฆฌ URI์— ๋ฒ„์ „ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ API ๋ฒ„์ „์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, **/api/v1/users**์™€ **/api/v2/users**๋Š” ๊ฐ๊ฐ ๋ฒ„์ „ 1๊ณผ ๋ฒ„์ „ 2์˜ ์‚ฌ์šฉ์ž ๊ด€๋ จ API๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  2. HTTP ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ HTTP ํ—ค๋”์— ๋ฒ„์ „ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜์—ฌ ์ „๋‹ฌํ•œ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ URI๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
  3. ๋‚ด์šฉ ํ˜‘์ƒ์„ ์‚ฌ์šฉํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ HTTP ํ—ค๋”๋ฅผ ํ†ตํ•ด ์ ์ ˆํ•œ ๋ฒ„์ „์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ์ž๋™์œผ๋กœ ์ ์ ˆํ•œ ๋ฒ„์ „์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ณต์žก์„ฑ์ด ๋†’๋‹ค.

API๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•  ๋•Œ๋Š” ์ ์ ˆํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋“ค์ด API์˜ ๋ณ€ํ™”์— ์‰ฝ๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋“ค์€ ์•ˆ์ •์ ์ด๊ณ  ํ˜ธํ™˜์„ฑ ์žˆ๋Š” API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.