[WEB] REST APIλ
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 λ°©μμ΄λ€.

