전체 글268 [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. [GraphQL] GraphQL와 N+1 N+1문제는 orm을 사용하면 빈번하게 마주하는 입니다. N+1이 무엇이고, 어떻게 해결할 수 있는지는 다른 많은 블로그에서 참고할 수 있습니다. 이 글에서는 그것보다는 GraphQL을 사용하는 유저로서 GraphQL의 특징과 연결지어 N+1을 설명하고 왜 문제가 되는지, 어떻게 해결할 수 있는지 알아 보겠습니다. GraphQL resolver는 데이터를 어떻게 처리할까 기존의 rest api의 경우 /users 엔드 포인트에 요청을 보내면 원하든 원하지 않든 항상 유저와 유저의 게시글을 가져오게 됩니다. 이를 over fetching이라고 하죠. 비슷하게 하나의 엔드 포인트 요청으로 원하는 데이터를 못가져오게 되어 여러번 요청((under fetching))을 보내야 합니다. 이와는 다르게 Graphq.. 2021. 9. 26. [node.js] single thread and libuv node.js는 기존의 multi thread와 어떻게 다를까 ? 우리가 server side언어로 개발한 서버 프로그램은 수많은 클라이언트의 요청을 처리할 수 있어야 합니다. 기존의 java, .net, php..의 경우 multi thread 방법으로 클라이언트의 요청을 처리하였습니다. 즉 각각의 클라이언트의 요청에 스레드를 할당하여 thread에서 클라이언트의 요청을 처리하는 방식을 선택하였습니다. apacha tomcat의 경우 default thread pool size(200개)를 두어 thread pool의 thread를 사용하여 클라이언트 요청을 처리하였습니다. 하지만 위와 같은 방법은 문제점이 있는데요, 1. 클라이언트의 요청이 증가함에 따라(이를 처리하는 thread의 수가 증가) 메모.. 2021. 9. 24. [node.js] fs.write()로 알아보는 node.js javascript는 Netscape에서 만든 프로그래밍 언어이며 브라우저에서 버튼을 눌렀을 때 색상이 변경되거나, alert창이 뜨는 등 주로 browser에서 화면을 조작하기 위해 사용되었습니다. 하지만 2009년 node.js가 등장하면서 javascript는 단지 browser에서 화면을 조작 하는데만 그치지 않고 파일을 읽거나, network I/O, process 등 브라우저 밖에서 동작할 수 있게 되었습니다. node.js 공식문서에서는 node.js를 다음과 같이 소개하고 있습니다. Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. 여기서 runtime은 javascript가 실행되는 환경을 의미합니다. 사실 .. 2021. 9. 17. [네트워크] TCP/IP 4 Layer TCP/IP 프로토콜은 명칭 그대로 TCP와 IP 두 가지의 프로토콜을 주축으로 한 프로토콜 집합입니다. 주축이라고 하지만 TCP를 반드시 사용해야 하는 것은 아니며 IP는 통신 상대 지정 시에 IP 주소를 사용하기 때문에 반드시 필요합니다. OSI 참조 모델에서는 7계층으로 분할했지만 TCP/IP에서는 반드시 이 7계층이 분명하게 나뉘어지는 것은 아닙니다. TCP/IP 4계층 모델등으로 불리며 OSI 7계층의 1~2 계층을 모아서 링크 계층, 5~7계층을 모아서 애플리케이션으로 취급합니다. TCP/IP 모형은 현재의 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약(프로토콜)의 모음으로 각 계층은 담당하는 위치마다 처리 역할을 구분해 진행함으로 서로 간의 간섭을 최소화하여 사용의 편리성을 높.. 2020. 12. 12. [알고리즘문제] 프로그래머스 - 단어 퍼즐 같은 문자를 여러번 사용할 수 있다고 하였으니 재귀로 해결하는 방법을 생각해 보았다. tmp+=strs[n+1]를 계속하면서 tmp의 길이가 t보다 길면 재귀를 탈출하고 tmp+=strs[n+1]을 더하는 구조로 생각해 보았다. 하지만 틀렸다고 나왔고 다른 분의 풀이를 참고하였다. 2중 for문을 사용하여 dp로 최선의 값을 계속 갱신할 수 있다. #include #include #include #include #include using namespace std; int solution(vector strs, string t) { int answer = 0; set s; vector dp(t.length() + 1, INT_MAX); for (int i = 0; i < strs.size(); i++) {.. 2020. 11. 12. 이전 1 2 3 4 5 6 ··· 30 다음