PlayNode
17/11/09 르메디앙 호텔
GraphQL + Relay + Serverless
- 발표자 박형식 @ 텀블벅
- 필요한 리소스만을 요청하고 사용하는 API 만들기
- 요즘은 컴포넌트 단위로 쪼개서 개발한다.
- 너무 많은 컴포넌트를 통신상태가 좋지 않은 상태일떄 어떻게 할까?
쿼리스트링 -> 데이터가 많을때 문제가 생긴다.
- 데이터의 형태가 매번 바뀔수 있다
- soundcloud 는 BFF 형태로 문제해결
- BFF -> 프론트 엔드 위주로 백엔드가 백업해준다.
- 하지만 다양한 상황에 따른 각각의 BFF를 만들어야하는 문제가 발생
- 그렇기 때문에 GraphQL사용
- 형식은 요청은 value가 없는 JSON 응답은 value가 있는 JSON
- 요청{me{name,sex}},응답{me{name:’kong’,sex:’man’}}
- 이런식으로 인자가 있는 요청 가능{user(id=’1’){name,sex}}
- POST/graphQL 보통 여기로 보내는게 규정
- Type System ????????
- type은 기본키 같은존재 쿼리가 어디서 부터 시작하는지 알려줌 (솔직히 잘모르겠음)
- mutation은 read write delete update 를 할수있게 함
- 너무 많은 데이터를 낭비하는 RESTAPI보다 graphQL이 더 좋을 수도 있다.
- 비지니스 로직이 너무 커질경우, 네트워크 요청이 비쌀때, 요청이 많을때 필요
- 네트워크 콜 최소화
Relay
- 이미 내가 데이터가 있는지 확인 (캐싱이나 다른 걸로 받았는지 확인)하고 없으면 받는다
- 이걸로 네트워크 콜을 최소화의 최소화한다.
- 서버와 클라이언트 사이
- 응답과 답장이 가능해야한다.
- mutation할때 테그를 붙히는데 답장에도 태그가 붙어 체이싱이 되어야한다.
Serverless
- 서버리스에서 가장 중요한것은 함수
- 함수 == event
- 서버리스는 패턴과 아키텍쳐
- 서버 관리의 모든걸 클라우드에게 맡기자!
- 이벤트가 있을때만 사용하기 때문에 비용적인 측면에서 GOOD
- 이 서버들을 함수로 연결하자
정적 타이핑
- 개발 파이프라인
- 코드수정 -> 컴파일 -> 커밋->빌드 -> 배포
- 탐지 가능한 버그
- 정적 타이핑으로 테스트 한 경우 15%정도 버그를 줄였다.
- 버그를 없애는 것이 아니라 버그를 미리 발견할 수 있게 한다.
- 코드와 더 밀접히 연결된 문서화가 가능해집니다.
- 리팩토링이 용이해집니다.
- typescript(ms) vs flow(facebook)
- EX) const abc(a:number){}
- 제네릭도 지원
- TS가 더 나은 결정이라고 생각한다.
- 안전함과 편리함 사이 설득력 있는 트레이드오프
- ts랑 flow랑 근본적인 철학의 차이가 있다.
- flow가 훨씬더 꼼꼼하다. 그래서 너무 사소한 것도 에러를 뛰어 버린다.
- 안전한 선택이 보일러플레이트가 됨
- IDE == VSCODE
- flow 보다 ts가 훨씬 커뮤니티가 크다
- 도입
- 점진적 타이핑을 해도 된다.
디버깅
- 발표자 최준영
- 효율적인 디버깅을 위해서 전후에 확인하자
- 타입 어노테이션
- 당신의 의도를 ide 에게 잘 전달할 수 있다.
- payload
- 여기도 ts
- css in js
- 완벽한건 아니다 JS!
- 런타임에서 막아보자
- 인스펙터 를 이용한 디버깅
- !!!!!!
- 중요 인스펙터 + 브레이크 포인트
- !!!!!
- 스텝인 -> 함수안으로 들어오는거 오버엔 아웃
- 비동기 상황에서도 가능하다 -> 완벽하진 않음
- pause in exception 이것도 키고 할것
- VScode Inspector
- 음…..
- TTD 챠크라 -> 디버깅중 과거로 돌아갈수 있다.
클라우드 시대의 node가 좋은이유
- 발표자 OKKY-허광남
- 2016년 1월 7일에 AWS KOREA 이후로 기업들이 클라우드로 넘어옴
- PaaS 종류 : PaaS-TA,Beanstalk,AppEngine,AppService,Heroku,WebApps
- uptime 1분마다 응답속도의 그래프를 보여줌
- kinana 시각화
댓글 없음:
댓글 쓰기