Graph QL
Graph QL μ Server API λ₯Ό ꡬμ±νκΈ° μν΄ Facebook μμ λ§λ Query Language μ΄λ€.
κΈ°μ‘΄μ μΌλ°μ μΌλ‘ μ¬μ©μ€μΈ RESTful API μ μ μ¬νμ§λ§ μ‘°κΈλ μ μ°νκ² μ΄μκ°λ₯νλ©° νλμ API λ‘ λ€μν μ 보λ€μ νν°λ§ ν΄μ λ°μ΄ν°λ₯Ό μ 곡 λ°μμ μλ μ§μμ΄λ₯Ό μ 곡νλ€.
RESTful API μ μ°¨μ΄μ
RESTful API μμ μ°¨μ΄μ μ λ체μ μΌλ‘ μλ λκ°μ§λ‘ μμΆλλ€.
- Graph QL API λ μ£Όλ‘ νλμ EndPoint λ§μ μ¬μ©νλ€.
- Graph QL API λ μμ²ν λ μ¬μ©ν Query λ¬Έ μ λ°λΌ μλ΅ κ΅¬μ‘°κ° λ¬λΌμ§λ€.
μ΄λ μ λκ°μ§ νΉμ§μ λ°λΌ μλμ κ°μ΄ μ₯μ μ κ°μ§μ μλ€.
- HTTP μμ² νμλ₯Ό μ€μΌ μ μλ€.
- RESTful API λ κ°κ°μ Resource μ’ λ₯λ³λ‘ μμ²μ ν΄μΌνκ³ , νμν Resource μ λ°λΌ μμ² νμκ° μ¦κ°νλ€.
- HTTP μλ΅μ Size λ₯Ό μ€μΌ μ μλ€.
- RESTful μ μλ΅μ ννκ° μ ν΄μ Έ μκ³ , λ°λΌμ νμν μ λ³΄λ§ λΆλΆμ μΌλ‘ μμ²νλ κ²μ΄ νλ€λ€.
- Graph QL μ μνλ λλ‘ μ 보λ₯Ό μμ²νλ κ²μ΄ κ°λ₯νλ€.
λ°λ©΄ μμ κ°μ΄ λ€μν μμ²μ μ μ°νκ² λ°μνκΈ° μ΄λ €μΈλλ μλμ κ°μ λ¨μ λ κ°μ§μ μλ€.
- File μ μ‘λ± Text λ§μΌλ‘ νκΈ° νλ λ΄μ©λ€μ μ²λ¦¬νκΈ° 볡μ‘νλ€.
- κ³ μ λ μμ²κ³Ό μλ΅λ§ νμν κ²½μ°μλ Query λ‘ μΈν΄ μμ²μ ν¬κΈ°κ° RESTful API λ³΄λ€ λ 컀μ§λ€.
- μ¬κ·μ μΈ Query κ° λΆκ°λ₯ νλ€.
File μ μ‘μ΄ λΆκ°λ₯νμ§ μμ§λ§ μΌλ°μ μΈ Graph QL API μ₯μ μ μ»μμ μμΌλ©° λ€λ₯Έ 3rd Party Service μ μμ‘΄ν΄μΌ νλ λ¬Έμ κ° λ°μλ μλ μλ€.
Graph QL vs RESTful
Graph QL κ³Ό RESTful μ μ νκΈ°μ€μ μ½κ² μλμ κ°μ κΈ°μ€μΌλ‘ μ ννλ©΄ λλ€.
- Graph QL
- μλ‘ λ€λ₯Έ μ νμ λ€μν μμ²λ€μ λν΄ μλ΅ν μ μμ΄μΌ ν λ
- λλΆλΆμ μμ²μ΄ CRUD μ ν΄λΉλ λ
- RESTful
- HTTP/HTTPS μ μν Caching μ΄ λ°λμ νμν λ
- File μ μ‘κ³Ό κ°μ λ¨μν Text κΈ°λ°μ μ 보λ€λ‘ μ²λ¦¬κ° νλ€λ
- μμ²μ κ΅¬μ‘°κ° λ¨μνμ¬ μ μ°ν¨μ΄ λΆ νμν λ
μ κΈ°μ€κ³Ό κ°μ΄ κ° μ¬μ©λͺ©μ μ λ§κ² λ Best Practice μ κΈ°μ€μΌλ‘ μ ννλκ²μ΄ μ΅μ μ΄λ€.