본문 바로가기

전체 글847

Javascript ES6 async/await에 대해서 간단하게 적는다.ES7(EcmaScript 7)에는 async/await라는 기능이 존재한다.이전에는 Promise를 통해 코드를 작성했다면, 그 기능을 async/await로 대체할 수 있다.관련 비교하는 내용은 타 블로그에 자세하게 나와있으므로 설명은 생략한다.튼, 코드를 작성하다가 아래와 같은 루틴의 코드를 만들었었다. const test = async () => { await setTimeout(() => { console.log("timeout"); }, 2000); await console.log(1); await console.log(2);} test(); 내가 예상한 결과값은 아래와 같다. timeout12 하지만 위처럼 돌려보면, 12timeout 형식으로 출력됐다.처음에는 연속적인 동기.. 2018. 7. 11.
Node.js express CORS 허용하는 방법 보통 SPA(Single Page Application)에서는 백엔드로 API서버를 두고해당 서버에서 정보를 받아온 후 프론트에서 랜더링 해주는 방식으로 구현한다.나도 이번에 CMS비슷한 사이트를 구축하고 있다.백엔드는 Node.js에 Express엔진을 올려서 사용하고 있으며 프론트는 React.js를 사용중이다.프론트단에서 API서버로 fetch()를 하고 있었는데 아래와 같은 에러가 발생했다. Failed to load http://localhost:4000/api/login: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not.. 2018. 7. 10.
Node.js Middleware 구현 및 등록하는 방법 Node.js에는 미들웨어(Middleware)라는 것이 존재한다.단어의 뜻 그대로 요청 중간마다 거쳐가는 지점이라고 생각하면 이해가 쉬울 것 같다.예를 들어 /test 로 요청을 했을 때 Main -> test로 들어가는 일반적인 구조가 있다고 가정해보자.여기에 middle이라는 미들웨어를 추가하면 Main -> middle -> test 의 순서로 요청이 들어간다.미들웨어는 상당히 유용하게 사용할 곳이 많다.예를 들어 사용자의 요청이 들어올 때마다 로깅하는 시스템이 필요하다고 가정해보자.먼저 middle.js라는 파일을 하나 생성한다. const test = (req, res, next) => { console.log("Middle"); next();} export default test; 그리고 위.. 2018. 7. 9.
GraphQL MySQL로 API서버 구축 방법 어제부터 쭉 GraphQL을 보고 있다.나름 매력적이라고 느껴지긴 하는데, 음..아직 잘 모르겠다.실 서비스에 적용해봐야 뭔가 확실히 감이 올 것 같은데 아직은 테스트 케이스로 작성하다보니확실하게 와닿지가 않는다.튼, 오늘 공부한 내용을 기록한다.오늘은 GraphQL을 통해 API구축을 해봤다. 전체 목록 조회/단일 조회/수정/삭제/삽입 총 5가지의 기능을 구현했다.또한 데이터베이스는 MySQL을 사용했다. 또한 Node.js에서 MySQL과 통신하기 위한 라이브러리는 Sequelize를 사용했다.이 부분에서 예제가 그리 많지 않아서 살짝 고생했다.먼저 폴더를 생성하고 yarn init후, 아래의 라이브러리를 설치해준다. "dependencies": { "graphql-yoga": "^1.14.10", .. 2018. 7. 2.
Github Updates were rejected because the remote contains work that you do 오류 해결방법 깃허브로 들어가서 repository를 생성하고 리모트 등록 후 푸시를 요청했다.그런데 아래와 같은 에러가 발생하면서 제대로 동작하지 않았다. ➜ graphql git:(master) git push -u origin masterTo https://github.com/teamhide/graphql_mysql.git ! [rejected] master -> master (fetch first)error: failed to push some refs to 'https://github.com/teamhide/graphql_mysql.git'hint: Updates were rejected because the remote contains work that you dohint: not have locally. .. 2018. 7. 2.
GraphQL로 API서버 만들어보기 최근에 많은 API서버들을 만들어보면서 어느정도 감을 익히고 있었다.대표적으로 Django의 Restframework로 주로 작업을 했었고, Nodejs를 통해서도 Restful한 API서버를 제작했었다.그러다가 페이스북에서 만든 GraphQL이라는 것을 알게 되었고 공부할 겸 사용해보기로 했다. 먼저 GraphQL의 장점부터 살펴보자.보통 API서버를 구축한다고 하면 Restful API서버를 구축한다. 상당히 편리하게 접근할 수 있지만정보를 요청할 때 Over-fetching, Under-fetching이 발생한다. Over-fetching이란, 예를 들어 1번 사용자의 username이 필요하다고 가정해보자./users/1로 요청하게 될텐데, 여기에 따른 Response는 username뿐만이 아니.. 2018. 7. 1.