Netflix Falcor Overview.
JSON Graph.
GraphQL + relay와 많이 비교됨.
샘플 소스 추가(https://github.com/gidong-lee/falcor-exam)
샘플설명
해당 샘플은 아래 여러종류로 구성이 되어 있다. 따라서 호출에 따라서 여러가지로 처리되는 것을 확인해 볼수 있다.
# json-server : json파일을 읽어서 rest api 서버처럼 특정포트로 서비스 해주는 라이브러리다
FE -> Falcor Server(express) -> REST API 서버.
데이타 캐싱이 일어나는 곳 : FE, 브라우저
데이타 Composite 위치 : Falcor Server
End Point 제공 : Falcor Server (model.json)
FE -> express -> Falcor Server(express) -> REST API 서버.
데이타 캐싱이 일어나는 곳 : express 서버내 falcor.Model
데이타 Composite 위치 : Falcor Server 또는 express에서도 가능.
End Point 제공 : express(productList.json 등)
11. JSON
우선JSON의경우데이타가 단순한Tree 구조를가지고 표현이되며중복데
이타가 있으면동일하게 표현된다.
그러나실제우리가 서비스를할때는이단순한JSON 객체로서비스를하게
된다.
Falcor를사용하기 위해서는JSON Graph와JSON을Type을잘이해하여
사용하여야한다.
12. JSON 구조및접근 구조.
var model = {
productList : [{
id : 100,
name : "생수",
seller : {
id : 10000,
name : "물장수",
like : false
}
},{
id : 200,
name : "맥스 커피",
seller : {
id : 10000,
name : "물장수",
like : false
}}]
}
/* 참조 방법 */
model["productList][0]["seller"]["name"] // 물장수
model["productList][0]["seller"]["like"] = true
//JSON은 단순 트리 구조로 위의 seller가 같더라도 하나의 값만 바뀐다..
22. Falcor 어디다가 써야할까?
모던웹플리케이션인SPA(Single Page Application)에사용하면캐시데이
타를품은Model객체를지속적으로가져갈수있으므로효율이좋습니다.
SPA가 아닌웹서비스에서는캐싱의효과가 떨어지지만브라우저캐싱의효과
가 있다.
그 이유는falcor Model을통하여HttpDataSource를호출하는경우GET
데이타로호출하게 되고 중복호출의경우에는304 Not Modified로브라우
저캐싱를사용하게 된다.
GraphQL + relay와비교를많이하는만큼비슷한경우에쓰면되겠죠?