게시글 상세페이지에서 페이스북 처럼 좋아요, 싫어요를 누를 때마다 실시간으로 백엔드에서 몇 개나 눌렸는지 가져와서 보여주고 싶었다.
3시간을 삽질한 끝에 구현해냈다...😂
const LIKE_BOARD = gql`
    mutation likeBoard($boardId: ID!) {
        likeBoard(boardId: $boardId)
    }
`;
const DISLIKE_BOARD = gql`
    mutation dislikeBoard($boardId: ID!) {
        dislikeBoard(boardId: $boardId)
    }
`;
const BoardRoutedPage = () => {
  	// (**likeCount관련 코드를 dislikeCount도 동일하게 적용**)
  	// likCount에 빈값을 넣어 아래 return의 삼항연산자에 의해
  	// 처음 페이지 로드 시에 게시글을 불러올 떄 받은 likeCount 값이 나오게한다.
	const [likeCount, setLikeCount] = useState();
    const [dislikeCount, setDislikeCount] = useState();
  	const router = useRouter();
  
  // 클릭 이벤트로 mutation 코드를 실행하도록 설정.
  	const [likeBoard] = useMutation(LIKE_BOARD);
    const [dislikeBoard] = useMutation(DISLIKE_BOARD);
  
  // "좋아요" 클릭 시 동적 라우팅으로 반환 받은 [boardId]를 이용하여 백엔드에 좋아요 횟수를 올려달라 요청하는 함수 작성
 	const onClickLike = async () => {
        const resultLikeCount = await likeBoard({
            variables: {
                boardId: router.query.boardId,
            },
        });
      // 백엔드로 받은 응답을 useState를 이용해 "변수 likeCount"에 넣어준다
        setLikeCount(resultLikeCount.data.likeBoard);
    };
    const onClickDislike = async () => {
        const resultDislikeCount = await dislikeBoard({
            variables: {
                boardId: router.query.boardId,
            },
        });
        setDislikeCount(resultDislikeCount.data.dislikeBoard);
    };
  
  return (
    // 생략
    <FlexColumn className="yellowIcon cursorPointer">
      <ThumbUpAltOutlinedIcon onClick={onClickLike} />
      {likeCount
        ? likeCount
      : data
        ? data.fetchBoard.dislikeCount
      : "loading..."}
    </FlexColumn>
    <FlexColumn>
      <ThumbDownOutlinedIcon
        className="cursorPointer"
        onClick={onClickDislike}
        />
      {dislikeCount
        ? dislikeCount
      : data
        ? data.fetchBoard.dislikeCount
      : "loading..."}
    </FlexColumn>
  )
}
export default BoardRoutedPage;{likeCount
	? likeCount
	: data
    ? data.fetchBoard.dislikeCount
	: "loading..."}위의 삼항연산자는 아래 if문과 같은 의미이다.
if(likeCount) {
  likeCount
} else if(data) {
  data.fetchBoard.dislikeCount
} else {
  "loading..."
}게시글 페이지에서 좋아요 수가 data.fetchBoard.dislikeCount에 출력되었다고
그대로 복붙해서 좋아요 클릭 후 반환 받는 곳에서 사용해놓고 전혀 이상함을 못느꼈던 탓에 끊임없이 삽질을 했다.
useEffect, useRef, useMemo까지 생판 모르는 것들을 구글링하며 시도했지만 결국 가장 익숙한 useState로 구현해냈다.
그러니 꼼수 부리지말고 배운거나 잘 써먹자.