인프런 커뮤니티 질문&답변

박진혁님의 프로필 이미지
박진혁

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

포트폴리오 리뷰 (boards 수정 2편)

31 댓글 등록 삭제 포트폴리오 문제

해결된 질문

작성

·

320

·

수정됨

2

안녕하세요 ! 포트폴리오 댓글,등록 삭제 과제 풀고있 었는데요 삭제 만드는중에

 

포폴용.png

  1. 왜 포폴용 서버 문서에는 저렇게 리턴값을 명시해줘야한다고 돼있는데 코드는

export const DELETE_BOARD_COMMENT = gql`
  mutation deleteBoardComment($password: String, $boardCommentId: ID!) {
    deleteBoardComment(password: $password, boardCommentId: $boardCommentId)
  }
`;

왜 이렇게 작성해야하는건가요? 풀다보니 저렇게 해야 댓글삭제할때 오류가 나지않더라구요

처음에는

export const DELETE_BOARD_COMMENT = gql`
  mutation deleteBoardComment($password: String, $boardCommentId: ID!) {
    deleteBoardComment(password: $password, boardCommentId: $boardCommentId) {
      ID
    }
  }
`;

이렇게 작성했는데 오류가 떠서 혹시나 삭제해보니 오류가 나지 않아서 궁금합니다.

 

점점 복잡해지네요 ㅠㅠ

  1. 일단 이해는 다 못하지만 댓글삭제, 등록 기능을 구현하긴했는데 다음챕터로 넘어가도될까요 ? 아니면 처음부터 다시 31챕터까지 복습해야할까요?

답변 1

1

노원두님의 프로필 이미지
노원두
지식공유자

안녕하세요! 진혁님!

점점 발전하시는 모습이 보기 좋네요! 벌써 API 연동까지 오셨어요! ㅎㅎ

  1. 먼저 올려주신 두 코드의 차이는 요청 후 응답으로 받아오는 데이터 부분에 차이가 있네요!

    graphql에서 요청 후에 결과를 받아올 때, 무엇을 받고 싶은지 골라서 받을 수 있는 장점이 있다고 했죠?!

    따라서, 삭제 이후에 무슨 데이터를 받을지 골라주셔야 하는데, 아쉽게도 지금은 고를 수 있는 데이터가 ID 하나밖에 없는 것 같네요!

    이런 경우에는 여러개가 들어있는 객체에서 고르는게 아니라 무조건 하나밖에 안되기때문에 중괄호를 써서 골라받으실 수 없습니다!^^

     

  2. 기능을 구현해서 동작하게 만드셨다면, 100% 완벽한 이해가 안되셨어도 절반 이상은 이해하셨다고 보셔도 됩니다! 나머지는 진도를 계속 나가면서 자연스럽게 반복할 것이기 때문에 굳이 처음부터 다시하는 것을 추천드리진 않아요!

박진혁님의 프로필 이미지
박진혁
질문자

첫번째 답변에 대한 궁금중인데요 그러면

export const DELETE_BOARD_COMMENT = gql`
  mutation deleteBoardComment($password: String, $boardCommentId: ID!) {
    deleteBoardComment(password: $password, boardCommentId: $boardCommentId)
        ID
  }
`;

중괄호를 하지 않고 이렇게 하면 출력이 되어야 하지 않나요 ? 아니면 받아올수 있는 데이터가 하나면 명시하지않는건가요?

노원두님의 프로필 이미지
노원두
지식공유자

네! 진혁님!

받아오는 데이터가 객체로 묶여있지 않다면, 다시말해 하나라면 따로 명시하지 않아요!

박진혁님의 프로필 이미지
박진혁

작성한 질문수

질문하기