๐Ÿ“

3. API, API Server

Application Programming Inerface(์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค)์˜ ์•ฝ์ž๋กœ, ์‚ฌ์šฉ์ž ์š”์ฒญ์— ๋”ฐ๋ผ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Serving ํ•ด์ฃผ๋Š” ์„œ๋ฒ„๋ฅผ ์–˜๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์ด ๋‚˜์˜ค๋‹ˆ ์–ด๋ ต์ฃ ? ์šฐ์„  API๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ•ด๋“œ๋ฆด๊ฒŒ์š”. ๊ทธ๋Ÿผ 'Serving'์ด๋ผ๋Š” ๋ง์ด ๋‚˜์™”์œผ๋‹ˆ API๋ฅผ '์บฃ์˜ ์ƒ์„ ๊ฐ€๊ฒŒ'๋กœ ์˜ˆ๋กœ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
notion imagenotion image
ย 
์œ„ ๊ทธ๋ฆผ์—์„œ ์ ์›์€ ์†๋‹˜์—๊ฒŒ ์ฃผ๋ฌธ์„ ๋ฐ›๊ณ , ๊ทธ ์ฃผ๋ฌธ์„ ์†์งˆํ•˜๊ณ  ํฌ์žฅํ•˜๋Š” ์ง์›์—๊ฒŒ ์š”์ฒญํ•œ ๋’ค, ํฌ์žฅ๋œ ์ƒ์„ ์„ ์ „๋‹ฌํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜์ฃ ? API๋Š” ์ ์›๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ย 
ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ์ ์›(API)์ด ์†๋‹˜(ํ”„๋กœ๊ทธ๋žจ)์—๊ฒŒ ์ฃผ๋ฌธ(๋ช…๋ น)์„ ๋ฐ›๊ณ , ๊ทธ ์ฃผ๋ฌธ(๋ช…๋ น)์„ ์†์งˆ&ํฌ์žฅ์ง์›(ํ”„๋กœ๊ทธ๋žจ)๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ํฌ์žฅ๋œ ์ƒ์„ (๋ช…๋ น ์ˆ˜ํ–‰ ํ›„ ๋‚˜์˜ค๋Š” ๋ฐ์ดํ„ฐ)์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
์ฆ‰, API๋Š” ํ”„๋กœ๊ทธ๋žจ๋ผ๋ฆฌ ์†Œํ†ต ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค.
ย 
๊ทธ๋ ‡๋‹ค๋ฉด API Server๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ• ๊นŒ์š”?
์•ž์„œ API๊ฐ€ ํ”„๋กœ๊ทธ๋žจ๋ผ๋ฆฌ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ผ๊ณ  ํ–ˆ์ฃ ? API server๋Š” ์•ฑ์ด๋‚˜ ์›น ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœ ํ•  ๋•Œ ๋‹ค๋ฅธ ์„œ๋น„์Šค์— ์†Œ์Šค์ฝ”๋“œ๋Š” ๊ณต๊ฐœํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ๊ถŒํ•œ์— ๋”ฐ๋ผ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ ค๊ณ  ํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.
ย 
๋‹ค์‹œ ์บฃ์˜ ์ƒ์„ ๊ฐ€๊ฒŒ์—์„œ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด, ์†๋‹˜์—๊ฒŒ ์ฃผ๋ฌธ์„ ๋ฐ›๊ณ  ์ฃผ๋ฌธ์„ ์ „๋‹ฌํ•˜๋Š” '์ ์›'์„ ๋ณต์‚ฌํ•˜์—ฌ ์บฃ์˜ ์ƒ์„ ๊ฐ€๊ฒŒ 2ํ˜ธ์ , 3ํ˜ธ์ , .... nํ˜ธ์ ์— ๋˜‘๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋น„์œ ํ•  ์ˆ˜ ์žˆ๊ฒ ๋„ค์š”.
์ถœ์ฒ˜ : https://apis.map.kakao.com/์ถœ์ฒ˜ : https://apis.map.kakao.com/
์ถœ์ฒ˜ : https://apis.map.kakao.com/
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>์ง€๋„ ์ƒ์„ฑํ•˜๊ธฐ</title> </head> <body> <!-- ์ง€๋„๋ฅผ ํ‘œ์‹œํ•  div ์ž…๋‹ˆ๋‹ค --> <div id="map" style="width:100%;height:350px;"></div> <script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=๋ฐœ๊ธ‰๋ฐ›์€ APP KEY๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”"></script> <script> var mapContainer = document.getElementById('map'), // ์ง€๋„๋ฅผ ํ‘œ์‹œํ•  div mapOption = { center: new kakao.maps.LatLng(33.450701, 126.570667), // ์ง€๋„์˜ ์ค‘์‹ฌ์ขŒํ‘œ level: 3 // ์ง€๋„์˜ ํ™•๋Œ€ ๋ ˆ๋ฒจ }; // ์ง€๋„๋ฅผ ํ‘œ์‹œํ•  div์™€ ์ง€๋„ ์˜ต์…˜์œผ๋กœ ์ง€๋„๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค var map = new kakao.maps.Map(mapContainer, mapOption); </script> </body> </html>
ย 
๊ทธ๋Ÿผ ๊ตฌ์ฒด์ ์ธ ์˜ˆ์‹œ๋Š” ์นด์นด์˜ค๋งต api๋กœ ์„ค๋ช…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์œ„ ์ฝ”๋“œ๋Š” ์นด์นด์˜ค ์ง€๋„๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” api ์ž…๋‹ˆ๋‹ค.
์ด ์ฝ”๋“œ(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ)๋ฅผ ์›ํ•˜๋Š” ๊ณณ์— ๋„ฃ๊ฒŒ๋˜๋ฉด ์ง€๋„๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ณณ์—์„œ ์„ค๋ช…ํ•˜๊ธฐ์—” ๋‚ด์šฉ์ด ๊ธธ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜ ํŽ˜์ด์ง€์—์„œ ์ง์ ‘ ์‹ค์Šต ํ•ด๋ณด์‹œ๋Š” ๊ฑธ ์ถ”์ฒœ๋“œ๋ฆด๊ฒŒ์š”!(https://apis.map.kakao.com/web/guide/) ์นด์นด์˜ค ๊ณ„์ •๋งŒ ์žˆ์œผ์‹œ๋ฉด ์‰ฝ๊ฒŒ ํ•ด๋ณด์‹ค ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.
๐Ÿ“ข ๋‹ค๋งŒ, API ํ‚ค๊ฐ€ ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๋ฉด ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ฒญ๊ตฌ๋‚˜ ํ• ๋‹น๋Ÿ‰ ๋ณ€๊ฒฝ ๋“ฑ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜์‹ค ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•ด์ฃผ์„ธ์š”!
ย 
์ฆ‰, ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋‘๊ณ  ํ•„์š”ํ•  ๋•Œ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์„ API ์„œ๋ฒ„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” ์ด api๋ฅผ ํ†ตํ•ด ์†Œ์…œ๋กœ๊ทธ์ธ(์นด์นด์˜ค, ๋„ค์ด๋ฒ„, ํŽ˜์ด์Šค๋ถ ๋“ฑ)๊ณผ ์นด์นด์˜ค ๋งต, ๋„ค์ด๋ฒ„ ์ง€๋„ ๋“ฑ์˜ ๊ธฐ๋Šฅ๋“ค์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
ย 
API ์„œ๋ฒ„์—์„œ๋Š” JSON ํŒŒ์ผ์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ๊ณ , ์‚ฌ์ง„์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์–ด์š”.
๋ฌผ๋ก  ์ง์ ‘ ๊ตฌ์ถ•ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋‚จ์ด ์ œ๊ณตํ•ด์ฃผ๋Š” API๋ฅผ ํ™œ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ๋ง์”€๋“œ๋ ธ๋˜ ์นด์นด์˜ค, ๋„ค์ด๋ฒ„์—์„œ๋„ api๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ์— ๊ฐ€์‹œ๋ฉด Open API๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ข… DATA์— ์ ‘๊ทผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
notion imagenotion image
ย 
ย