1. REST (Representational State Transfer)
: ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ, ํด๋น ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ชจ๋ ๊ฒ
'HTML URI'๋ฅผ ํตํด ์์(Resource)์ ๋ช ์ํ๊ณ ,
'HTML Method(POST, GET, PUT, DELETE, PATCH๋ฑ)'๋ฅผ ํตํด ํด๋น ์์(URI)์ ๋ํ 'CRUD Operation'์ ์ ์ฉ
* CRUD Operation ์ด๋?
- Create : ๋ฐ์ดํฐ ์์ฑ(POST)
- Read : ๋ฐ์ดํฐ ์กฐํ(GET)
- Update : ๋ฐ์ดํฐ ์์ (PUT, PATCH)
- Delete : ๋ฐ์ดํฐ ์ญ์ (DELETE)
* ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถ? = ์์์ ํํ
- ์์(๋ฌธ์, ์ฌ์ง, ๊ทธ๋ฆผ, ๋ฐ์ดํฐ ๋ฑ ์ํํธ์จ์ด๊ฐ ๊ด๋ฆฌํ๋ ๋ชจ๋ ๊ฒ)์ HTTP URI๋ฅผ ํตํด ๋ช ์
ex) DB์ ์ํ ์ ๋ณด๊ฐ ์์์ผ ๋, /movies๋ฅผ ์์์ ํํ์ผ๋ก ์ ํจ
* ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ์(์์ฒญ > ์๋ต)
ํด๋ผ์ด์ธํธ๊ฐ ์์์ ์ํ(์ ๋ณด)์ ๋ํ ์กฐ์์ ์์ฒญํ๋ฉด ์๋ฒ๋ ์ด์ ์ ์ ํ ์๋ต์ ๋ณด๋ธ๋ค.
=> ์ ๋ฌ ๋ฐฉ์์ผ๋ก๋ JSON ๋๋ XML๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๊ฒ์ด ์ผ๋ฐ์
์ฆ, REST๋ HTTP URI๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ํต์ ํ๋ ๋ฐฉ์ ์ค ํ๋๋ก,
HTTP Method๋ฅผ ํตํด ์์์ ์ฒ๋ฆฌ(CRUD)ํ๋๋ก ์ค๊ณ๋ ์ํคํ ์ณ!
2. API(Application Programming Interface)
: ์น API๋ ํด๋ผ์ด์ธํธ์ ์น ๋ฆฌ์์ค ์ฌ์ด์ ๋คํธ์ํฌ ํต์ ์ ์ํ ๊ฒ์ดํธ์จ์ด. ๋ค๋ฅธ ์ํํธ์จ์ด ์์คํ ๊ณผ ํต์ ํ๊ธฐ ์ํด ๋ฐ๋ผ์ผํ๋ ๊ท์น.
3. REST API : REST๊ธฐ๋ฐ์ผ๋ก ์๋น์ค API๋ฅผ ๊ตฌํํ ๊ฒ
์ต๊ทผ OpenAPI(๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐ๋ API: ChatGPT API ์ฐ๋, ๊ธ์ต๊ฒฐ์ ์, ๋ค์ ์ฐํธ๋ฒํธ API ์ฐ๋ ๋ฑ)๋ฑ์ ์ ๊ณตํ๋ ์ ์ฒด ๋๋ถ๋ถ REST API๋ฅผ ์ ๊ณตํ๋ค. API๋ ํญ์ URI ๋ฉ๋ด์ผ์ ์ ๊ณตํด์ผํ๋ค. URI๋ฅผ ๋ชจ๋ฅด๋ฉด ํด๋ผ์ด์ธํธ๋ ์ฌ์ฉํ ์ ์๋ค.
* REST API ์ค๊ณ ๊ท์น
1) ๋ช ์ฌ, ์๋ฌธ์ => ๋์ฌx
2) ๋ช ์ฌ๋ ๋ณต์ํ
3) URI ๋ง์ง๋ง์ / ํฌํจx
4) URI๋ ์ธ๋๋ฐx ํ์ดํ ์ฌ์ฉ -
5) ํ์ผ์ ํ์ฅ์๋ฅผ ํ์x
4. RESTful : REST ์๋ฆฌ๋ฅผ ๋ฐ๋ฅด๋ ์์คํ
'REST API'๋ฅผ ์ ๊ณตํ๋ ์น ์๋น์ค๋ฅผ 'RESTful ํ๋ค'๋ผ๊ณ ํ ์ ์๋ค.
* RESTful์ ๋ชฉ์ : ์ดํดํ๊ธฐ ์ฝ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด REST API๋ฅผ ๋ง๋๋ ๊ฒ
* RESTfulํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ : URI ๊ท์น์ ์งํค์ง ์์ API๋ REST API์ ์ค๊ณ ๊ท์น์ ์ฌ๋ฐ๋ฅด๊ฒ ์งํค์ง ์์ ์์คํ ์ REST API๋ฅผ ์ฌ์ฉํ์ง๋ง, RESTfulํ์ง ๋ชปํ ์์คํ ์ด๋ค๋ผ๊ณ ํจ.
โ REST API์ API์ ์ฐจ์ด์
- API (Application Programming Interface)
- ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ์ ๊ณตํ๋ ์ธํฐํ์ด์ค.
- REST, SOAP, GraphQL ๋ฑ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๊ตฌํ๋ ์ ์์.
- REST API (Representational State Transfer API)
- API์ ํ ์ ํ์ผ๋ก, REST ์์น์ ๋ฐ๋ฅด๋ ์น API๋ฅผ ์๋ฏธํจ.
- HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ์์(Resource) ์ CRUD ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํจ.
- RESTful API๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ๋ณดํต JSON ๋๋ XML ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์.
โ ์ฃผ์ ์ฐจ์ด์
๊ตฌ๋ถ | API | REST API |
๊ฐ๋ | ์ํํธ์จ์ด ๊ฐ์ ํต์ ์ธํฐํ์ด์ค | REST ์์น์ ๋ฐ๋ฅด๋ ์น API |
๋ฐฉ์ | ๋ค์ํ ํ๋กํ ์ฝ๊ณผ ํ์ ์ฌ์ฉ ๊ฐ๋ฅ | HTTP ๊ธฐ๋ฐ, URL์ ํตํ ์์ ์๋ณ |
๋ฐ์ดํฐ ํ์ | XML, JSON, ํ ์คํธ ๋ฑ ๋ค์ํจ | ์ฃผ๋ก JSON ์ฌ์ฉ |
๊ตฌ์กฐ | ํน์ ํ ๊ท์น ์์ด ์์ ๋กญ๊ฒ ์ค๊ณ ๊ฐ๋ฅ | RESTful ์์น(์์ ์ค์ฌ, HTTP ๋ฉ์๋ ํ์ฉ) ์ค์ |
์ฆ, ๋ชจ๋ REST API๋ API์ด์ง๋ง, ๋ชจ๋ API๊ฐ REST API๋ ์๋๋ค.
'๋ฐฑ์๋(Back-End) ๊ฐ๋ฐ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๊ทํํ์(Regex) (1) | 2025.03.01 |
---|---|
์ข์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋? (๋คํ์ฑ.. SOLID ์์น..) (3) | 2025.02.19 |
์ ์ด์ฟผ๋ฆฌ(jQuery)๋? (0) | 2025.01.20 |
์๋ฐ์คํฌ๋ฆฝํธ / ์คํฌ๋ฆฝํธ ์ธ์ด (0) | 2025.01.19 |
HTTP ํ๋กํ ์ฝ (0) | 2025.01.19 |