백앤드 작업시 만난 에러
- Apollo Client 부터 쿼리 할 때: loading이 false가 되는 조건에 data를 읽을 수 있습니다. 그렇지 않으면 undefined
useQuery
, useMutation
리턴값의 최상단 프로퍼티는 gql
객체의 이름과 같다.
- DB구조가 배열안의 배열인 경우: mongoose 내장 함수로는 배열안의 배열의 요소값을 추적하기 힘들다.
filter
함수로 추적하고, 수정이 필요할 때는 push
나 delete
를 활용한다.
Graphql schema output
: schema output
이 배열일 때, 인풋이 하나만 들어와도 index '0'으로 접근해야함
useMuation input
: {variables: { input }
에서, input 은 Apollo Client gql
객체에서 정의한 $input
과 동일하다.
useEffect
사용위치: 하위 컴포넌트 먼저 렌더링이 시작되므로, 하위 컴포넌트에 있는 useEffect
가 먼저 실행됨 --> 네이버 지도 스크립트 추가한 방법
typeof
: 자바스크립트에서는 array, object 등 모두 타입은 object
이다.
- 삼항연산자:
xxx&&xxx?xxx:xxx
인 경우 xxx&&xxx
가 기본조건으로 묶이게 된다.
- object method:
object
의 메서드를 실행할 때는 object
가 undefined
되지 않았는지 확인해야한다. 옵셔널 체이닝 활용
- mongoDB _id:
_id === string
은 false
이다. _id를 string
으로 형변환 필요
- 객체: 객체의 프로퍼티값을 다른 변수에 저장해도
reference
를 저장하는 것이기 때문에 원본 객체가 변화될 수 있다.
playground
에서는 잘 되다가, Apollo Client
에서 안되는 이유: 데이터 형식
을 의심해야 함 (number인데 string 넣는 것 같은 경우)
400
번대 에러: 다양한 이유가 있겠지만, Client gql
객체와 schema
의 output 데이터 타입, 구조가 다른 경우 다수 발생