๋ชฉ์ฐจ
๋ค์ด๊ฐ๊ธฐ ์ ์
๊ฐ๋ฐ์ ํ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ก์ง์ ํ์์ ์ด๋ค! ์ด ๋ ์๋ฒ์ ํต์ ํ์ฌ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์๋๋ฐ ์ด์ ๊ด๋ จ๋ ๊ฐ๋ ์ ์์๋ณด์
REST api๋ ?
REpresentational StateTransfer : REST๋ผ๋ ์น ์ํคํ ์ณ๋ฅผ ์ฌ์ฉํด์ ์น ์๋น์ค๋ฅผ ์คํํ๋ค.
REST api๋ REST ์ํคํ ์ณ ์คํ์ผ์ ๋์์ธ ์์น์ ์ค์ํ๋ API๋ฅผ ๋งํ๋ค.
API๋ ?
์ฌ๊ธฐ์ api๋ application programming interface๋ฅผ ๋งํ๋ค.
api๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋ ์ ์ฌ์ด์ ๊ณ์ฝ์ ๋งํ๋ค.
์ ๋ณด๋ฅผ ํ์๋ก ํ๋ ์ (์๋น์)์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ์์ฐ์๋ ๊ฐ๊ฐ content๋ฅผ ๋ง๋๋๋ฐ ์ด๋ฅผ ๊ฐ๊ฐ call๊ณผ response๋ผ๊ณ ํ๋ค.
๋ง์ฝ ์ปดํจํฐ์ ์ ๋ณด๋ฅผ ๋ฐํํด์ฃผ๊ฑฐ๋ ๋์์ ์ํํ๋ ์์คํ ๊ณผ ์ํธ์์ฉํ๊ณ ์ถ๋ค๋ฉด api๋ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ทธ ์์คํ ์๊ฒ ์ํ๋ ์์ฌ์ํต์ ํ๋๋ก ๋์์ค๋ค. ๊ทธ๋ ๊ฒ ํด์ ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ์ ์๊ตฌ๊ฐ request๋ฅผ ๋ง์กฑ์์ผ์ค ์ ์๋ ๊ฒ์ด๋ค!
์ฐ๋ฆฌ๋ api๋ฅผ user ๋๋ client์ ์ฐ๋ฆฌ๊ฐ ๋ฐ๊ณ ์ถ์ resources ๋๋ web services ์ฌ์ด์ ์ค๊ณ์๋ก๋ ํํํ ์ ์๋ค.
REST api์ ์๋ ๋ฐฉ์
REST api๋ HTTP ์์ฒญ์ ํตํด ํต์ ํจ์ผ๋ก์จ ๋ฆฌ์์ค ๋ด์์ CRUD๋ฅผ ์ํํ๋ค.
REST api๋ GET ์์ฒญ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ณ , POST๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ณ , PUT ์์ฒญ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธํ๊ณ DELETE ์์ฒญ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ์ ์๋ค.
URI์ URL
URI : Uniform Resource Identifier๋ฅผ ํตํด ํ์คํ๋ ๋ฐฉ์์ผ๋ก RESTful ์น ์๋น์ค์ ์์ฒญ์ ์ ์กํ๋ค.
URI :๋ฆฌ์์ค์ ์์น ๋๋ ๋ฆฌ์์ค์ ์ก์ธ์คํ๋ ๋ฐฉ๋ฒ์ ์์ํ์ง ์๊ณ ์ด๋ฆ์ผ๋ก ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ค.
์์์ ๊ตฌ์กฐ์ ํจ๊ป ๋ํ๋ด๋ ๋ฐฉ์์ URI๋ผ๊ณ ํ๋ค.
์๋ฅผ ๋ค์ด
์๋ฒ์ฃผ์/login -> ๋ก๊ทธ์ธ์ ํตํด ํ ํฐ์ ๋ฐ๊ธํ๋ค.
์ด๋ฌํ URL์ HTTP๋ฅผ ํตํด ๋คํธ์ํฌ์์ ๊ฐ์ ธ์ฌ ์ ์๋ ์๋ณ๋ ๋ฆฌ์์ค(์๋ฅผ ๋ค์ด /login ๋๋ /realestate)๋ฅผ ์ฐธ์กฐํ๋ค.
์๋ํฌ์ธํธ๋ ์๋ฒ์์ ์คํ๋๋ ์น ์๋น์ค์ ์ก์ธ์คํ ์ ์๋ URL์ด๋ค.
URL์ URI์ ์ฐจ์ด
๋ง์ฝ ๋ด๊ฐ ๊ฐ๊ณ ์ถ์ ๋ฒ ์ด๊ธ ๋ง์ง์ด๋ผ๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์ถ๋ค๋ฉด?
URL์ ์ด ๋ฒ ์ด๊ธ ๊ฐ๊ฒ๊ฐ ์ด๋์ ์์นํ๋์ง๋ฅผ ์ ํํ ๊ฐ๋ฆฌํค๋ ์ฃผ์์ด๋ค.
URI๋ ์ฝ๋ผ๋ฆฌ ๋ฒ ์ด๊ธ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก, ์ด ๋ฒ ์ด๊ธ ๊ฐ๊ฒ๋ฅผ ์๋ณํ ์ ์๋ ์ด๋ฆ์ ๋งํ๋ค. URI๋ ์์น๋ฅผ ์ง์ ๊ฐ๋ฆฌํค์ง๋ ์์ง๋ง ๋ฒ ์ด๊ธ ๊ฐ๊ฒ๋ฅผ ์๋ณํ๋๋ฐ ์ฌ์ฉํ ์ ์๋ค.
์น ์๋น์ค ์์ฒญ
์๋ฒ์ REST api ๋ก ์์ฒญ์ ๋ณด๋ผ ๋์๋ HTTP ํ๋กํ ์ฝ ๊ท์น์ ๋ง์ถฐ์ ์ ์กํ๋ค.
๊ฐ ์น ์๋น์ค ์์ฒญ์ URI๋ฅผ ํฌํจํ๊ณ HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์๋ฒ์ ์ ์ก๋๋ค.
์ผ๋ฐ์ ์ธ HTTP ์์
- GET
- POST
- PUT
- DELETE
์น ์๋น์ค ์๋ต
XML ๋๋ JSON ํํ ์ค ํ๋๋ก ์๋ตํ๋ค.
JSON์ด๋ ํค-๊ฐ ์์ผ๋ก ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ธ๋ค
Retrofit ๋ผ์ด๋ธ๋ฌ๋ฆฌ
RESTful ์น ์๋น์ค(๋ฐฑ์๋)์ ํต์ ํ๊ธฐ ์ํด Retrofit ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
'๐ค2024 ์๋๋ก์ด๋ > Filmo ์ํ ํ๋ก์ ํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐Android ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ di ์ ์ฉํด๋ณด๋ ๊ธฐ๋ก (0) | 2024.03.15 |
---|---|
๐ซAndroid ๋ก๊ทธ์ธ ํ ํฐ ์ ์ฅ : Proto Datastore ์ ์ฉํ๊ธฐ (0) | 2024.03.15 |
[android ๋ก๊ทธ์ธ] jwt token์ผ๋ก ๊ตฌ๊ธ ๋ก๊ทธ์ธ ์์ฑํ๊ธฐ (0) | 2024.02.15 |
[hilt 2ํ] hilt ๋ฅผ ์ฌ์ฉํ ์ข ์ ํญ๋ชฉ ์ฝ์ (0) | 2024.02.10 |
Android ์ข ์ํญ๋ชฉ ์ฝ์ ์์๋ณด๊ธฐ 1ํ (1) | 2024.02.07 |