๋ ์ง:2025-10-22
ํ์ต ๋ชฉํ
- API(Application Programming Interface)์ ๊ฐ๋
์ดํด
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ API๋ก ์ํตํ๋ ์๋ฆฌ ์ดํด
- RESTful API์ ํน์ง๊ณผ ์ค๊ณ ์์น ์ดํด
โ
API ๊ฐ๋
๐ API(Application Programming Interface)
ํ๋ก๊ทธ๋จ๋ผ๋ฆฌ ๋ํํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
๋ง์น ๋ ์คํ ๋ ๋ฉ๋ดํ์ฒ๋ผ, ์ด๋ค ์์ฒญ์ ํ ์ ์๊ณ ์ด๋ค ์๋ต์ ๋ฐ์ ์ ์๋์ง ์ ์ํฉ๋๋ค.
๐น ์ธํฐํ์ด์ค๋ก์์ API
- API์ ํ๋ค์์ Application Programming Interface
- ์ฆ, ์ธํฐํ์ด์ค(Interface) ์ญํ
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ API ๋ช
์ธ์ ๋ฐ๋ผ ํต์
- ๋ด๋ถ ๊ตฌํ์ ๋ชฐ๋ผ๋ API ๋ช
์ธ๋ง ์๋ฉด ์ฌ์ฉ ๊ฐ๋ฅ
๐ก ์์: Mouse ์ธํฐํ์ด์ค
Mouse m = new SamsungMouse();
m.leftClick();
m.rightClick();
m.scrollWheel();
- ํด๋ผ์ด์ธํธ๋ SamsungMouse์ธ์ง LogintechMouse์ธ์ง ๋ชฐ๋ผ๋ ๋๋ค
- ์ค์ํ ๊ฑด leftClick(), rightClick(), scrollWheel() ์ธํฐํ์ด์ค ๋ช
์ธ
๐น ์ค์ํ ์์
- ํ์จ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๋ API: https://open.er-api.com/v6/latest/usd
- ํด๋ผ์ด์ธํธ๋ API ํธ์ถ๋ง์ผ๋ก ํ์จ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ ์์
- ๋ฐฑ์๋ ์๋ฒ๊ฐ ์ด๋ค ๊ธฐ์ ๋ก ๊ตฌํ๋์๋์ง๋ ๋ชฐ๋ผ๋ ์๊ด ์์
๐ฌ ํต์ฌ: API๋ ์ธํฐํ์ด์ค์ด๋ฏ๋ก, ๊ตฌํ์ฒด๋ฅผ ๋ชฐ๋ผ๋ ์ฌ์ฉํ ์ ์์
โ
RESTful API
๐ REST
ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ ๊ตฌํ์ ๋ชฐ๋ผ๋ API๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ ์ํคํ
์ฒ ์คํ์ผ
- RESTful = REST ์์น์ ์ ์ง์ผ ์ค๊ณํ API
- ๋ฐ๋์ ์ง์ผ์ผ ํ๋ ๊ท์น์ ์๋๊ณ , โ์ด๋ ๊ฒ ํ๋ฉด ์ข๋คโ ์ ๋์ ๊ถ์ฅ ๋ฐฉ์
๐นRESTful API ํน์ง
- URL๋ง ๋ณด๊ณ API ๊ธฐ๋ฅ์ ์์ ๊ฐ๋ฅ
- ์ดํดํ๊ธฐ ์ฝ๊ณ , ์ ์ง๋ณด์์ ํ์ฅ์ด ์ฉ์ด
โ
RESTful API ๋์์ธ ์์น

1.๋์ฌ๋ณด๋จ ๋ช
์ฌ, ๋จ์๋ณด๋จ ๋ณต์๋ฅผ ์ฌ์ฉ
โ /member/get/item/hello
โ
/members/items
2.URL ๋ง์ง๋ง์ ์ฌ๋์(/)๋ฅผ ์ฌ์ฉํ์ง ์์
โ /members/
โ
/members
3.์ธ๋๋ฐ(_) ๋์ ํ์ดํ(-) ์ฌ์ฉ, ๋๋ฌธ์ ์ฌ์ฉ ๊ธ์ง
โ /restful_services
โ
/restful-services
4.ํ์ฅ์ ํฌํจํ์ง ์๊ธฐ (svg, png, exe ๋ฑ)
โ /image.svg
โ
/images
5.๊ณ์ธตํ(Layered) ๊ตฌ์กฐ
โ /items/{memberId}/members/{itemId}
โ
/members/{memberId}/items/{itemId}
- ๐ฌ ํต์ฌ: RESTful API ์ค๊ณ๋ ์ง๊ด์ ์ด๊ณ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ๊ฒ์ด ๋ชฉํ
์ ๋ฆฌ
- API: ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ํตํ๋ ๋ช
์ธ(์ธํฐํ์ด์ค)
- RESTful API: REST ์ํคํ
์ฒ ์์น์ ์ ์ฉํด ์ง๊ด์ ์ด๊ณ ํจ์จ์ ์ผ๋ก ์ค๊ณํ API
- ์ค๊ณ ์์น: ๋ช
์ฌ ์ฌ์ฉ, URL ๊น๋ํ๊ฒ, ๊ณ์ธตํ ๊ตฌ์กฐ, ํ์ฅ์ ์ ์ธ, ์ผ๊ด์ฑ ์ ์ง