이번 프로젝트를 시작하기에 앞서 graphql에 접하게 되었다. 하는방법이나 연습은 Nomad Coders와 howtographql를 통해 쉽게 접할 수 있었다. 지금까지 REST API로 작업하면서 느꼈던 불편함들을 graphql을 통해 해소할 수 있었으며, 코드의 간결함, 보기쉽고 백과 프론트가 주고받기 쉬움 등 여러 장점이 있었다. 내가 느낀 장점과 해외사이트에서 소개한 장점들을 설명하면서 Graphql이 왜 주목을 받는지 정리를 해볼 예정이다. 일단 'Graphql'은 Fackbook에서 만든 오픈소스 쿼리언어입니다. 현재 전 세계에 있는 대기업 및 개인커뮤니티에서 관리를 하며 빠른 성장세를 유지하고 있습니다. 오랫동안 유지해오던 REST API의 대안으로 나온 Graphql이 이토록 무서운 성장..
클로저(closure) 자바스크립트에서 클로저의 정의는 정확히 내려지지 않았습니다. 그래서 사람들마다 책마다 블로그마다 클로저의 정의를 말하는게 조금씩 다릅니다. 제가 공부하면서 생각한 정의는 이런 느낌입니다. '이미 생명주기가 끝난 함수의 변수를 참조할 수 있도록 해주는 현상' function outer () { let a = 0; function inner () { return ++a } return inner; } const func = outer(); console.log(func()); console.log(func()); console.log(func()); 위 코드를 실행하면 결과는 1 2 3 이 나오게 됩니다. 이걸 이해하려면 일단 '실행 컨텍스트'를 이해하셔야 합니다. func에서 out..
스코프는 우리 말로 번역을 하면 '범위'라는 뜻이다. 자바스크립트에서 스코프는 '접근할 수 있는 범위'라고 생각하면 된다. 아래 예제들을 보면서 이해하는게 가장 쉬울 거라 생각한다. const a = "Hello"; function b() { console.log(a); } b() 위처럼 b함수를 실행하게 되면 b함수에 a라는 변수가 없지만 전역에 있는 a라는 변수를 가져와 "Hello"를 출력 할 수 있게된다. 아래 코드는 어떨까? const a = "Hello"; function b() { console.log(a); const a = "bye"; } b() 여기서의 콘솔에는 어떤게 찍힐까? 바로 'undefined'가 출력되게 된다. 위 코드를 이해하지 못했다면 호이스팅 에 대한 포스팅을 읽고오는 ..