본문 바로가기

분류 전체보기262

[GraphQL] null propagation GraphQL type field는 기본적으로 nullable이다. null값에 대해 허용하는 type languaged의 경우 대부분 기본적으로 non-null합니다. 변수를 선언하면 기본적으로 null을 허용하지 않으며 null값을 허용하는 경우 명시적으로 표시해줘야 합니다. - typescript type User = { name: string // non-null hobby?: string // nullable } - c# Nullable num; int? num; - kotlin var a : String? = null 이와는 반대로 GraphQL field는 기본적으로 nullable합니다. 때문에 반드시 값이 존재하는 경우 명시적으로 non-null을 의미하는 (!)를 표시해줘야 합니다. t.. 2022. 10. 1.
[Nexus] Source Types으로 parent 타입 수정하기 Source란 ? Nexus를 사용해서 schema를 만들 때, sourceTypes 옵션을 추가할 수 있습니다. sourceTypes는 source의 type을 내가 원하는 타입으로 매핑해주는 역할을 합니다. 여기서 source는 resolver의 첫번째 인자를 의미합니다. 클라이언트가 아래와 같이 질의한다고 해봅시다. query{ user{ - resolver (1) email - resolver (2) address - resolver (3) posts{ - resolver (4) content - resolver (5) } } } 우리가 질의하는 모든 field에는 resolver가 존재합니다. 질의는 resolver에서 처리되며 결과값을 클라이언트에서 받아보는 것이죠. resolver는 4개의 .. 2022. 4. 9.
[typescript] any ,unknown, never, void ? 길지 않은 시간동안 타입 스크립트를 사용하면서 any, void, unknown, never가 정확히 무엇이고, 언제 사용하는지 잘 몰랐습니다. 그래서 위의 키워드가 나올 때 마다 조금 찝찝했고(?) 언젠간 한번은 맘잡고 공부해야 하는 주제라고 생각했습니다. any [대명사] 아무(것) [한정사] 어느, 어떤 any type으로 선언한 변수에는 어떠한 값도 할당할 수 있습니다. 어떤 값이 할당 되는지 전혀 문제되지 않습니다 any로 선언했으니깐요. 기존의 javascript code에는 type system이 없기 때문에 이는 typescript code에 any를 덕지덕지 붙이는 것과 다름이 없습니다. function stringToLowerCase(str: any) { return str.toLowe.. 2021. 10. 14.
같은 이해 수준을 공유 하면서 대화 하고 있을까 얼마전에 리처드 파인만의 "왜 자석은 서로 밀어내는가?" 라는 동영상을 보았다. 영상에서 기자는 다음과 같이 질문을 하였다. 두 개의 자석을 들고 서로 밀었을 때 서로 밀치려는 느낌을 느낄 수 있잖아요, 이를 반대 방향으로 돌려서 가져다 대면 서로 붙으려 하고요. 이때 두 자석 사이에 느껴지는 그 느낌은 무엇인가요 ? 라는 질문에 리처드 파인만은 다음과 같이 대답했다. 그게 무슨말이죠, 두 개의 자석 사이에서 느껴지는 느낌..이라니 ? 이 영상의 내용은 여기서 부터 시작한다. 기자는 자석이 서로 밀어낼 때 어떤 일이 발생하는지 궁금했고, 이 질문은 지극히 정상적이다. 하지만 리처드 파인만은 답변은 단지 왜? 라는 질문에 답변을 하기 보다는 왜? 라는 질문이 얼마나 어려운지를 말하고 있다. 왜 라는질문을 .. 2021. 9. 26.