
일반적인 함수
// 함수의 선언
const func2 = (param) => {
console.log(param.count)
}
// 함수의 실행
func2({count : 123})
// 결과
// 123
{count: 123} 이라는 객체가 인자로 들어가서 실행 됨
함수형 컴포넌트도 마찬가지로 함수이기에 실상은 return 문에서 Presenter 라는 함수를 리턴하고 있는 것
따라서 함수 안에 인자로 들어가는 부분은 객체형태로 들어가고, 이는 곧 props 객체임을 알 수 있음
*즉 props로 받아와서 props.aaa, props.bbb로 쓰던 것은 props라는 객체 자체를 인자로 함수에 넘긴 후, 해당 객체에서 필요한 키만 뽑아서 쓰는 것
setCount((prev)=>{return prev+1})
+a) $는 사실 변수다
const CREATE_BOARD = gql`
mutation createBoard($writer: String){
createBoard(writer: $writer){
_id
}
}
`
$writer 는 사실 이름이 변경되어도 상관없는 매개변수+a) mutation, query 앞에 작성하는 이름은 그룹명이다
const REQUEST = gql`
mutation 한번에요청할그룹이름 ($변수 : String){
원하는API1(백엔드지정:$변수){
//받아올 것
}
원하는API2(백엔드지정:$변수){
//받아올 것
}
}
`
언더페칭 = 필요한 데이터 수에 비해 한 번에 하나의 API 요청으로 데이터를 여러 번 받아오는 것
*rest-api는 endpoint에 body를 넣어 보내서, 한 개의 endpoint에 한 개의 body만 들어감 (graphql 과 달리 한 번에 하나의 API만 요청가능)
오버페칭 = 굳이 필요하지 않은 데이터까지 모두 받아오는 과정
*rest-api는 필요한 데이터와 상관없이 모든 결과값을 데이터로 받아와야 하지만, graphql은 필요한 데이터만 받아올 수 있음

POST 방식의 body에 실행할 함수들의 이름을 적어서 endpoint 요청
이후 백엔드로 넘어간 데이터는 미리 만들어 둔 함수들 중 데이터와 매칭되는 함수들을 실행하고, 원하는 결과값을 받아오게 됨