성장, 그리고 노력

부족하더라도 어제보다 더 잘해지자. 노력은 절대 배신하지 않는다.

GraphQL 5

[GraphQL] 5. GraphQL 실행 환경 구성하기(with Apollo)

GraphQL 실행 환경 직접 구현하지 않고 온라인에서 해도 되지만, 직접 구성해도 어렵지 않기 때문에 소개한다. 추가적으로 노드몬을 설치하여 변경 사항을 자동 감지하도록 하겠다. 마지막으로는 Resolver에 대해 간단하게만 짚고 넘어갈려고 한다. Step by Step 아래 순서를 따라하면 된다. 1. 프로젝트를 만들 경로로 이동한다. 본인이 원하는 아무 곳이나 좋다. 새로 폴더를 만드는 것을 추천한다. 2. npm init -y -y 옵션은 npm 설정이 귀찮을때 애용하면 좋다. 3. 필요한 패키지를 설치한다. cf) Apollo를 사용할 예정이다. > npm i apollo-server graphql nodemon 세개의 패키지를 먼저 설치했다. 4. package.json을 수정한다. main과..

GraphQL 2019.12.09

[GraphQL] 4. GraphQL 스키마 정의

Schema-First Development 스키마 우선주의는 디자인 방법론의 일종이다. 개발시 스키마를 우선 개발하는 것이다. 여기서 스키마(Schema)란 데이터 타입의 집합이다. 이를 미리 정의해 두면, 스키마 정의는 API 문서 같은 역할을 하며, 프론트엔드 개발자와 백엔드 개발자가 많은 의사소통에 대한 비용을 줄이고 빠른 개발을 할 수 있다는 장점이 있다. 백엔드 개발자는 어떤 데이터를 전달해야 하는지, 프론트엔드 개발자는 인터페이스 작업 작업을 할 때 필요한 데이터를 정의할 수 있는 것이다. 하지만, 당연히 장점만 존재하지 않다. 단점은 이 글의 취지와는 멀기 때문에 링크를 첨부한다. GraphQL Schema 설계하기 GraphQL의 API을 설계하기 전에 항상 사용할 스키마(Schema)를..

GraphQL 2019.12.09

[GraphQL] 3. GraphQL 쿼리어2

GraphQL은 많은 툴들이 지원한다. GraphiQL, Apollo CLI는 많이 들어봤는데, TypeGraphQL과 GraphQL Code Generator도 시간이 나면 찾아봐야겠다. 이번 글은 "2. GraphQL 쿼리어1"에 의존하고 있다. 생각보다 코드를 넣으니, 양이 많아져 분리했다. mutation (뮤테이션) 뮤테이션은 REST에서 PUT 요청을 통해 데이터를 수정하는 요청과 비슷한 요청이다. 물론 REST에서 GET 요청으로 데이터 수정 요청을 못하는건 아니다. 이와 동일하게 뮤테이션이 아니더라도 가능은 하지만, 데이터 변경을 발생시키는 작업은 명시적으로 뮤테이션을 통해 전송되어야 하는 것이다. 또한 뮤테이션 또한 기본적인 쿼리와 마찬가지로 중첩 필드를 요청할 수도 있다. 예를 먼저보자..

GraphQL 2019.12.09

[GraphQL] 2. GraphQL 쿼리어1

(친절한 GraphQL은 한국어도 지원한다!!) SEQUEL GraphQL에 대해 본격적으로 알아보기 전에 SEQUEL부터 살펴보자. IBM에서 관계형 데이터베이스를 만들면서 사용하는 언어가 SEQUEL (Structured English Query Language)이다. 낯설게 느껴질지 모르는 단어지만 이게 나중에는 우리가 아는 SQL로 불리게 된다. SQL은 도메인에 종속된 언어로 DB 안의 데이터에 접근, 관리, 조작하는 데에 사용된다. SQL은 매우 유용한 언어지만, SQL로 실행할 수 있는 명령어는 굉장히 한정적이다. (SELECT, INSERT, UPDATE, DELETE - 데이터 작업은 이게 끝이다^^;;). 그래도 쿼리문 한 줄로 DB 안의 여러 데이터 테이블에서 필요한 데이터를 한 번에..

GraphQL 2019.12.09

[GraphQL] 1. 기초 개념 및 배경지식

GraphQL이 뭐지? API를 만들 때 사용할 수 있는 쿼리 언어이며, 서버측 런타임이다. 뭐 이렇게 생긴? (GraphQL 메인에 있는 사진이다;;) 언뜻보면 그냥 JSON처럼 보인다. 그 말은 어려워 보이진 않고 친숙하다는 말이다! 벌써 배워보고 싶은 욕구가 넘친다 :) 그리고 불과 몇 년전에 페이스북에서 만든 만큼 트랜디하며, 이미 페이스북 내부의 데이터 페칭을 거의 GraphQL로 이루어 지고 있다! GraphQL 쿼리는 실제 필요한 데이터만 받도록 작성할 수 있다. URL에서 GraphQL 쿼리를 전송하여 유효성을 검사하고 실행할 수 있다. { hero { name } } 간단히 말해서 이렇게 보내면 { "data": { "hero": { "name": "R2-D2" } } } 이게 Graph..

GraphQL 2019.12.09
반응형