Kotlin/GraphQL
WebFlux spring graphql 에서 Header Handling 하기
WebFlux spring graphql 에서 Header Handling 하기
2022.10.01WebFlux 에서는 WebMvc 와는 다른 방법으로 header 를 handling 해야합니다. login 을 했을때 cookie 를 set 하는 예시로 시작해보겠습니다. @MutationMapping fun login( @Argument input: LoginInput, context: GraphQLContext ): Mono { return memberService.login(input) .flatMap { context.put("token", it.token) Mono.just(AuthToken(it.tokenType, it.token)) } } GraphqlContext 에 key value 형태로 token 을 저장합니다. 그리고 headerInterceptor 를 만들어 context 의 값..
GraphQL 에서 N + 1 을 해결 하기 위해 Dataloader 사용하기
GraphQL 에서 N + 1 을 해결 하기 위해 Dataloader 사용하기
2022.08.02# 들어가기전 Kotlin + Dgs framework 를 사용하고 있습니다. https://netflix.github.io/dgs/ Home - DGS Framework How did this project begin? The DGS framework project started at Netflix in 2019 as internal teams began developing multiple GraphQL services. As 2020 wrapped up, Netflix decided to open source the framework and build a community around it. Is it productio netflix.github.io Graphql 에서는 왜 N + 1 문제가 발생하..
GraphQL 에서 Resolver 의 역활
GraphQL 에서 Resolver 의 역활
2022.07.28GraphQL이란 GraphQL은 2012년 페이스북 개발자들이 모바일 어플리케이션을 제작하면서 만든 쿼리 언어이다. SQL과 마찬가지로 데이터베이스의 정보를 질의하는데 사용되지만 그 구조는 매우 다르다. 페이스북 개발자들은 왜 굳이 새로운 쿼리 언어를 만들면서까지 프론트엔드로 데이터를 보내는 방식을 개선하려고 했을까? 전통적인 REST API는 오버페칭이나 언더페칭 같은, 데이터를 너무 많이 전달하거나 너무 적게 전달하여 불필요한 데이터 전송을 일으키는 문제를 발생시켰다. 또 REST API의 경우 개발이 계속될수록 점점 더 많은 엔드포인트를 필요로 하게 되어 프로젝트 관리를 어렵게 한다. 반면 GraphQL은 프론트엔드에서 필요로 하는 데이터를 있는 그대로 JSON 형태로 표현하여 되돌려받는다는 장점..