This message was deleted.
# 질문
s
This message was deleted.
u
플레이그라운드에서는 query1과 같이 해도 result2로 오는데 프론트 코드에서만 이상하게 result1로 오네요 😰
t
id가 어떻게 resolve 되는지 살펴봐야될거같아요. 아얘 다른곳에서 id 157이 겹칠 가능성이 있을까요?
u
네 getWeekRoutines의 리턴타입이 [[Routine!]!]! 여서 result1이
Copy code
[
  [
    {
      due: "2021-01-28T00:00:00.000Z",
      id: 157,
      title: "Routine Title",
      routineRepeat: [],
      __typename: "Routine"
    }
  ],
  [
    {
      due: "2021-01-28T00:00:00.000Z",
      id: 157,
      title: "Routine Title",
      routineRepeat: [],
      __typename: "Routine"
    }
  ]
]
이렇게 올 수도 있어요! 이게 혹시 문제가 될 수도 있나요? (본문 result1, result2 을 [Routine!]!으로 썼었는데, [[Routine!]!]!으로 변경했습니다)
t
id가 겹치면 가장 최근의 Routine으로 교체할거에요. 만약 첫번째로 아폴로가 받은 157번 Routine이 정상적이더라도, 다음에 받은 157번 Routine이 비정상적이라면 이전의 받은 157번 Routine이 수정된것으로 파악하고, 모두 내용을 교체해요.
u
아하..!!! 그러면 내용을 교체하지 못하게 하는 방법이 없고 이 쿼리 자체를 수정하는게 맞는건가요?
t
예를 들어 1004번 유저의 프로필 사진이 원래 A 였는데... 앱이 구동되던 도중 1004번 유저가 프로필 사진을 B로 바꾸었고, 어딘가에서 1004번 유저 요청의 응답으로 프로필 사진을 B로 내려주면 앱 내에 1004번 유저의 프로필 사진이 모두 B로 바뀌는 구조에요.
정확히는 모르겠네요 ㅠ 157번 Routine의 routineRepeat이 빌수도있고 채워질수도 있는게 맞나요??
u
네네 맞아요 result1처럼 올 수도 있고, result2처럼 올 수도 있는건데 이런 구조라서 제가 원하는 결과값을 받을 수 없던거군요
t
그래서 id는 오브젝트마다 유니크해야해요 ㅎㅎ 어플리케이션 로직상 동작인거같은데... id 체계를 바꿔보시는것도 추천드려요
“157:filled” “157:empty” 이런식으로?! ㅋㅋ
제가 어떤 앱인지 정확하게 몰라서 ㅠㅠ 구체적인 가이드라인을 드리지못하겠네요 ㅋㅋ 참고만 하셔요~~
u
그런 방법도 있겠네요 ㅋㅋㅋ 일단은 쿼리를 수정하는게 제일 맞는 방법일 것 같아요 하루종일 삽질할 뻔 했는데 정말 감사합니다 😄
루빗 이라는 앱입니다 ㅎㅎ
t
개인적인 의견은 쿼리를 수정해서 해결하기보다는 스키마(서버)쪽을 손대시는게 더 맞지않나 싶어요 ㅎㅎ 같은 id에 다른 오브젝트가 내려오는거니까요. 원리를 이해하셨으니 팀원분들과 함께 의논해보셔요!
👍 1