This message was deleted.
# 질문
s
This message was deleted.
b
클라이언트에서 사용하는 용도를 기준으로 판단하면 되지 않을까요? 어떤 프레임워크를 사용하냐에 따라 다를 것 같네요! https://hasura.io/blog/graphql-nulls-cheatsheet/#different-approaches-by-graphql-clients
u
클라이언트에서 사용하는 용도를 기준으로 판단하면 되지 않을까요? 좀 더 설명 부탁드려도 될까요 ? 프론트는 apollo-client 사용하고 있습니다.
t
요거는 정책에 따라서 다를거같은데요. 연호님 말씀하신대로 Facebook이나 Netflix는 부분장애를 허용해서 모든 필드를 Nullable하게 만드는걸로 알고있어요
다만 모든게 Nullable하면 클라단에 DX가 너무 별로이기 때문에, Relay에는 클라이언트 단에서 타입을 생성할때 non nullable 하다고 선언할 수 있어요. (만약 null 인경우 throw할지, log만 남길지도 클라이언트가 결정할수있답니다 ㅎㅎ)
https://relay.dev/docs/next/guides/required-directive/ Apollo Client에 있을지 모르겠네욤 ㅠ
b
@Tony Won 님 말씀대로 장애가 발생할 수 있으니, profile을 nullable로 변경해도 될 것 같구용! (그럼 다른 유저 데이터는 클라에서 제대로 받을 수 있으니까요). apollo client에서는 요청시 error policy를 설정해서 non-null 필드에 null이 왔을 경우 부분 데이터는 그대로 받고, graphql error로 확인할 수 있습니다 (`errorPolicy`:
all
)
u
답변 감사합니다. realy, apollo client에서 null 데이터를 어떻게 처리할 지 따로 방법을 제공하고 있군요. 읽어 보겠습니다ㅎㅎ 위의 profile! 에 대해서도 저희팀에서 따로 얘기를 해보았는데… 1. 유저의 프로필이 없으면 프로필을 포함한 유저의 데이터는 의미가 없어 ! => profile! (error propagation) 2. 유저의 프로필이 없으면 유저의 데이터는 보여주고 이미지는 기본 이미지로 설정할거야 => profile 로 정리가 되었습니다. @Tony Won 님이 말씀하신 것처럼, 타입에 대한 정책을 어떻게 할 것인지가 먼저 정의되야 할 것 같습니다~!
😀 2