REST ๐
- Representational State Transfer์ ์ฝ์
- ์น์์ ์์(๋ฌธ์, ์ด๋ฏธ์ง, ์์ ๋ฑ)์ ์์๋ช ์ผ๋ก ํ์ํ์ฌ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ท์น
- HTTP URI๋ฅผ ํตํด์ ์์์ ๋ช ์ํ๊ณ , HTTP Method๋ฅผ ํตํด์ ์์์ ๋ํ CRUD ์ฒ๋ฆฌํ๋ ๋ฐฉ์
- URI(URL) ํ๊ธฐํ๋ ๋ฐฉ์ ์ค ํ๋์ด๋ค.
- URI์ HTTP Method ๋ฅผ ๊ฒฐํฉํ ๊ฒ์ด REST API์ด๋ค.
URI ํ๊ธฐ ๋ฐฉ์ ๋น๊ต๐
์๋ฅผ๋ค์ด ๊ฒ์ํ์ ๊ตฌํํ ๋, ์ด์ ๋ฐฉ์์์๋ 'http://localhost/board/list.do' ์ผ๋ก ๋์ฌ๋ฅผ ์ด์ฉํด์ ํ์ํ๋ ๊ฒ์ ํํํ๋ค.
- ์ด์ ๋ฐฉ์
ํ์ด์ง | ์์ฒญ ๋ฉ์๋ | ์์ฒญ ์ฃผ์ |
๋ชฉ๋ก๋ณด๊ธฐ | GET | http://localhost/board/list.do |
์ถ๊ฐํ๊ธฐ | POST | http://localhost/board/add.do |
์์ ํ๊ธฐ | POST | http://localhost/board/edit.do |
์ญ์ ํ๊ธฐ | POST | http://localhost/board/del.do |
์ด URI ๋ฐฉ์์ ๊ฐ๋ ์ฑ ๋ฐ ๋ค๋ฅธ ์ฌ๋ฌ ๋ฌธ์ ์ ์ด ๋ง์ ๋ถ๋ถํ ์๊ฒฌ์ด ๋ง์๋ค.
์ฒด๊ณ์ ์ผ๋ก ํ์ํ์๋ ์๊ฒฌ์ด ๋ง์ ํ์ํ ๊ฒ์ด REST ๋ฐฉ์์ด๋ค.
- REST ๋ฐฉ์
๋์ด์ ์ฃผ์์ ๋์ฌ๋ฅผ ๋ฃ์ง์๋๋ค. ๋จ, ์์ฒญ ๋ฉ์๋๋ฅผ GET, POST ๋ฟ๋ง ์๋๋ผ PUT, DELETE ๋ฑ ์ฌ๋ฌ๊ฐ์ง๋ฅผ ์ฌ์ฉํ๋ค.
ํ์ด์ง | ์์ฒญ ๋ฉ์๋ | ์์ฒญ ์ฃผ์ |
๋ชฉ๋ก๋ณด๊ธฐ | GET | http://localhost/board |
์ถ๊ฐํ๊ธฐ | POST | http://localhost/board |
์์ ํ๊ธฐ | PUT | http://localhost/board/1 |
์ญ์ ํ๊ธฐ | DELETE | http://localhost/board/1 |
REST API ์ค๊ณ ๊ท์น๐
1. URI ๋ง์ง๋ง ๋จ์ด์ ์์๋ช ์ ํ์ํ๋ค.
- http://localhost/board
- CRUD๋ ์์ฒญ ๋ฉ์๋๋ฅผ ํตํด ์ธ์ํ๊ณ ๋ง์ง๋ง ๋จ์ด๋ก ์์๋ช ์ ์ธ์ํ๋ค.
- ๋จ์ํ, ๋ณต์ํ์ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๋ค.
2. URI์ ๋์ฌ๋ฅผ ํ์ํ์ง ์๋๋ค.
3. HTTP Method๋ฅผ ์ฌ์ฉํ์ฌ 2๋ฒ ๋์ ํ๋(๋์ฌ)์ ํํํ๋ค. โ
- GET : ์์ ์์ฒญ
- POST : ์์ ์ ๋ฌ ๋ฐ ์๋ฒ์ธก ์์ฑ ์์ฒญ
- PUT : ์์ ์ ๋ฌ ๋ฐ ์์ (๊ธฐ์กด ์์์ ์ญ์ ํ ์๋ก ์์ฑํ๋ค.) > ์ ์ฒด(๋ชจ๋ ์ปฌ๋ผ)์ด ์์ ๋๋ค.
- PATCH : ์์ ์ ๋ฌ ๋ฐ ์์ (์ผ๋ถ ์์ ๊ฐ๋ฅ)
- DELETE : ์์ ์ญ์
4. ๊ตฌ๋ถ์๋ '/'๋ฅผ ์ฌ์ฉํ๋ค.
5. URL์ ๋ง์ง๋ง์ '/'๋ฅผ ์ ์ง ์๋๋ค.
- ํฐ์บฃ์์๋ ๋ง์ง๋ง์ '/'๋ฅผ ์๋์ผ๋ก ๋ถ์ฌ์ค์ ์ฐ๋ฆฌ๊ฐ '/'๋ฅผ ๋ถ์ฌ๋ ์๋ฌ๊ฐ ๋์ง์์ง๋ง, REST API๋ฅผ ์ด์ฉํ ๋๋ ๋ถ์ด๋ฉด ์๋๋ค.
6. URI์๋ '-' ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ๊ถ์ฅํ์ง ์๋๋ค.
7. URI์๋ '_' ์ฌ์ฉํ์ง ์๋๋ค.
- ๊ณต๋ฐฑ์ธ์ง ์ธ๋๋ผ์ธ์ธ์ง ๊ตฌ๋ถ์ด ์ ๊ฐ์ง ์์ ์ฌ์ฉ์ ์ง์ํ๋ค.
8. URI์ ์๋ฌธ์๋ก๋ง ์์ฑํ๋ค.
9. ํ์ฅ์๋ฅผ ์์ฑํ์ง ์๋๋ค.
- URI๊ฐ ์์๋ช ์ผ๋ก ๋๋๊ธฐ ๋๋ฌธ์ ์์ฑํ์ง ์๋๋ค.
SSR์ CSR : ํ์ด์ง ๋ ๋๋ง ๋ฐฉ์๐
SSR(์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง)๊ณผ CSR(ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง)์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ ๋ ๊ฐ์ง ์ฃผ์ ์ ๊ทผ ๋ฐฉ์์ด๋ค.
- SSR
- Server Side Rendering์ ์ฝ์.
- ๋ธ๋ผ์ฐ์ (ํด๋ผ์ด์ธํธ)์์ ํ์ด์ง๋ฅผ ์์ฒญํ๋ฉด ์๋ฒ์์๋ ์์ ๋์ html ํ์ด์ง๋ฅผ ์์ฑํ๋ค.
- Html ํ์ด์ง๋ฅผ ๋ง๋๋ ์์ ์ ๋ ๋๋งํ๋ค๊ณ ํ๋๋ฐ ์๋ฒ๊ฐ ๋ ๋๋ง์ ๋ด๋นํ๋ค.
- ๊ฐ์ฅ ์ค๋๋์์ผ๋ฉด ์์ง๊น์ง ๋ฉ์ธ ๋ฐฉ์์ด๋ค.
- CSR
- Client Side Rendering์ ์ฝ์.
- ๋ธ๋ผ์ฐ์ ์์ฒด์ ์ผ๋ก ํ์ด์ง๋ฅผ ์์ฐํ๋ฉฐ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๊ฐ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก ์์ฒญํ๊ณ ๋์ ์ผ๋ก ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ค.
- ๋ธ๋ผ์ฐ์ ์์ฒด์์ ํ์ด์ง๋ฅผ ์์ฐํ ์ ์๋ ๋ฅ๋ ฅ์ด ์์ผ๋ฏ๋ก CRUD ๋ง์ ์ ๋ฌธ์ ์ผ๋ก ํ๋ ์๋ฒ๋ฅผ ํ์๋ก ํ๋ค. ์ด๋ฐ ์๋ฒ๋ฅผ REST ์๋ฒ๋ผ๊ณ ํ๋ค.
- ์ต๊ทผ์ ์๋์ ์ผ๋ก ๋ง์ด ๋์ด๋๊ณ ์๋ค. ๋ฆฌ์กํธ, Vue.js ๊ฐ CSR ๋ฐฉ์์ด๋ค.
'WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[WEB] ์๋ฐ ์น ํ๋ก์ ํธ์ ํ๋น์ฝ ์ค์ ํ๊ธฐ (1) | 2023.10.30 |
---|---|
[WEB] ์น ํฌ๋กค๋ง, ์คํฌ๋ํ (+ Jsoup ๋ผ์ด๋ธ๋ฌ๋ฆฌ) (0) | 2023.10.24 |
[Web] Emmet, Zen-coding / lorem(๋ก๋ ) (0) | 2023.09.25 |
[HTML&CSS] table ๊ตฌ์กฐ (0) | 2023.09.25 |
๋ด ์ปดํจํฐ IP์ฃผ์ ํ์ธ (0) | 2023.09.20 |