본문 바로가기
Programming JavaScript/GraphQL

LaunchPad 에서 마음 껏 GraphQL 테스트 해보기

by jjerryhan 2018. 1. 3.
반응형

LaunchPad 에서 마음 껏 GraphQL 테스트 해보기

요즘 GraqhQL 을 쓴다. REST 보다 좋아서. 
GraphQL 라이브러리로는 Apollo 를 쓴다. 다른 것들 보다 좋아서. 
GraphQL 을 한번이라도 돌려보려 하면, node 환경 잡고, generator 로 프로젝트 만들고, libaray 추가하고, 코딩하고 실행하고 뭐 이런 작업들이 반드시 수반된다. 

java 나 c 처럼 컴파일이 필요없는 언어인데도 이런 작업이 꼭 필요한 건가? 그냥 코딩하는 데로 알아서 실행되 주면 안되니? 
자 그래서 LaunchPad 에 대해 간단히 알아보도록 하자.

Node 는 스크립트 언어

node 는 본의 아니게(?) 너무 효율좋게 javascript engine 을 만들어 버린 구글로 인해 요즘 각광을 받는 엔진(?) 이다. 

뭐 그냥 빠르고 좋다. 오늘은 창의력이 낮아서 글이 짧게 써진다. 


javascript 는 컴파일이 필요한 java 나 c 같은 컴파일언어가 아니고 직독직해하는 스크립트언어다.

물론 필요에 의해서 2 Phase Parsing (두번 해석한다는 의미) 같은 것을 하긴 하지만, 원칙적으로 컴파일이 필요없는 언어이다. 


스크립트 언어를 위한 Playground 들

컴파일이 필요없기 때문에 사실 플랫폼에 독립적이다, 해당 플랫폼에 있는 interpreter 가 읽고 해석하는 대로 실행하면 되니까.

C 처럼 명령어셋이 어쩌고, 번지수가 어쩌고 레지스터가 어쩌고 같은 건 interpreter 가 할 일이다. 

따라서 컴파일언어와 달리 스크립트언어는 쉽게 Playground 를 제공할 수 있다. Playground 란 내가 코딩하는 대로, 코딩하는 즉시 결과가 나오기 때문에 코딩을 하면 노는 놀이터란 의미이다. 


이 코딩즉시 결과 확인이란 장점이 너무도 강력해서, apple 도 objective-c 를 버리고 swift 를 만들어서 표준을 바꿔버렸다는 것을 알아야 한다. 

그래서 android 도 kotlin 을 표준으로 지원하기 시작한다는 것도 알아야 한다. 


아무튼 스크립트는 OS 에 독립적이고 즉시 해석(interpret) 이 가능하기 때문에 다양한 Playground 가 존재한다. 


Python 에서 시작한 Jupyter

가장 대표적인 notebook playground 이다. 코딩 즉시 결과를 확인할 수 있고, 버전관리도 되며, 코드 외에도 다양한 추가 컨텐츠들을 노트에 병행해서 담아 둘 수 있다. 

python notebook 에서 시작했지만 사실 Jupyter 는 Python 외에도 R, Julia, Scala 등 40여종의 프로그래밍 언어들을 지원한다. 


Python Playground IPython

jupyter 의 아버지는 IPython 으로 playgound 의 효능을 확인해 준 것이 바로 python 의 이 notebook 이다.

동일한 경험을 다양한 언어에도 제공하려다 보니 IPython 이란 이름으로는 안되니 jupyter 나 나오게 되었다. 


수 많은 Playground 들

python notebook 에서 시작된 playgound 의 유익한 사용자 경험은 정말 많은 다양한 언어로 확산되었다. 
코딩을 즉시 해 보고 그 결과를 즉시 확인 할 수 있는 곳을 Playgound 라 한다.  사실 많은 IT용어가 영어로 읽으면 몇 다른 뜻이 없는데 한글로 이걸 해석해서 가져오다 보니 컨설턴트가 붙고, 마케팅 용어가 붙고 한다. 말 그대로 놀이터다 코드 놀이터.

그 중에 몇가지만 소개하고 넘어가자면, 

노드 놀이터 : https://www.katacoda.com/courses/nodejs/playground

자바스크립트 놀이터 : https://jsbin.com/?html,output

Babel 놀이터 : https://babeljs.io/repl/

코드 놀이터이자 요리하는 주방 : https://codepen.io/

등이 있다.  


그리고 xcode 에도  swift playgound 가 있어서 즉시 swift 코드를 입력하고 즉시 결과를 확인 할 수 있다. 


Apollo LaunchPad 는 GraphQL 놀이터

LaunchPad 하나 소개하려고 참 멀리도 갔다 왔다.  LaunchPad 는 GraphQL 의 구현체(사실 GraqhQL 자체는 하나의 규격이자 약속이지 구현체는 제공하지 않는다. 본인의 취향에 맞는 구현체를 정해서 사용해야 한다.) Library 를 개발하는 Apollo 에서 제공하는 GraqhQL 놀이터 이다. 

 

접속하면 즉시 GraqhQL 코드를 왼쪽화면에서 하고, 실형결과 역시 즉시 오른쪽에서 확인 할 수 있다. 

Secrets 메뉴를 통해 환경변수와 비밀정보를 코드에서 참조하게 할 수도 있고, 

Logs 메뉴를 통해 실행 로그 확인도 가능하다. 

npm deps 메뉴를 통해 외부 library 도 추가 할 수 있다. 

GraphiQL 을 통해 Query 와 Mutation 도 당연히 실행해 볼 수 있다. 그것도 RealTime 으로!. 



결정적으로 GraqhQL 에 대해 잘 모른다면? 

다른 포스트를 참조하자.  아마도 관련 포스트를 추가할 듯 하니. 


이번 포스트는 여기까지.