회사 프로젝트 기술 스펙을 정리하자면,
- next.js
- styled-components
- apollo-client ⇒ 그래프큐엘 서버연동 라이브러리
- apollo-cache(apollo-client) ⇒ 로컬 상태 관리
- jest, enzyme
- eslint
- prop-types ⇒ 컴포넌트 props 타입 체킹
- antd-design
이 글에서는 ✔ Next.js / apollo에 대해 이야기해보려한다.
file-system routing
라우터를 내장하고 있다. yarn run dev (dev 환경)
yarn run build && yarn start (production 환경)
yarn install apollo-boost react-apollo graphql
apollo-boost
: Apollo Client를 설정하는데 필요한 것이 들어있는 패키지react-apollo
: React를 위한 apollographql
: GraphQL 쿼리를 사용할 수 있다.
import { ApolloConsumer } from 'react-apollo';
를 통해 로컬에서 상태관리를 할 수 있다. apollo-client의 cache state를 사용한다. client의 cache를 읽어오고 업데이트 할 수 있다. apollo cache는 앱이 query, mutation으로 네트워킹한 결과를 자동으로 캐쉬에 기록한다. 이와 별도로 원하는 만큼의 추가 데이터를 관리할 수 있다.
apollo cache의 데이터를 업데이트 하는 방법은 여러가지가 있다. writeDate, writeQuery 등의 메소드가 존재하지만, apollo client에서 로컬 resolver를 작성하여 mutation을 통해 데이터를 변경하기를 권장한다.
resolver
: 각 쿼리 필드에 대한 요청을 처리하는 로직을 담고 있는 함수그러면 컴포넌트에서 호출하여 데이터를 변경할 수 있다.
하,,
회사 프로젝트를 진행하며 아직도 좋은
개발자가 되는 길은 멀고 험한거같아서 자괴감들다가도 2개월차인 내 모습을 보면 안도했다가 스터디에서 모를때마다 또 자괴감들고 반복되는 일상이다. 일단 나의 상태 진단 결과는 지식이 파편처럼 조각나있다. 연결고리도 없고, 알고있으면서 사용할줄모르거나 사용하고있으면서 알지못하거나,, 지식 파편들을 연결짓기위해 책도 구매했다. (하지만 겉의 겉의 겉의 겉의 겉핥기 정도만 함) 사실 실무는 협업
과마감
시간때문에 혼자 낑낑거려서 지식을 습득하고 흡입할 시간이 없다. 일을 하면서도 지식의 파편화 되는 것을 막기위해 늘 기록해야한다고 절실히 느꼈다. 내 목표는 왜 사용하고 어떤면에서 무엇이 장점이고 무엇이 단점인지 내 생각을 말할 수 있는
개발자가 되는 것이다. 아직은 너무 몰라서 질문조차 못하는 경우가 많고, 자료를 봐도 비판
하는 것이 어렵다.
아무튼 Apollo docs를 보고 문법과 친숙해지고 실제 프로젝트에 적용해보려한다. 나새끼 파이팅