Coding/Etc120 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. 'User' object has no attribute 'has_module_perms' 오류 해결 방법 Django에서 유저 모델을 커스텀하는 도중 에러가 발생했다.나는 조금 더 유연하게 내 입맛대로 만들고 싶어서 AbstractBaseUser를 상속받아서 작업하고 있었는데,createsuperuser로 관리자 계정을 생성하고 어드민 패널로 로그인을 진행했더니 'User' object has no attribute 'has_module_perms' 와 같은 에러가 발생했다.말 그대로 has_module_perms가 없다는 뜻이므로 해당 함수와 관련된 정보들을 유저모델에 추가해주면 된다. def get_full_name(self): pass def get_short_name(self): pass @property def is_superuser(self): return self.is_admin @propert.. 2018. 6. 29. Node.js JWT API서버 만드는 방법 이전에는 주로 장고를 통해 API서버를 만들었다.그러다가 요즘 프론트엔드로 React.js에 재미를 붙였는데, 이왕 할거같은 스택으로 하자 싶어서 백엔드도 자바스크립트인 Node.js를 시작했다.기존에는 Django의 Rest framework를 사용했다면 노드에서는 express서버에 올리는 방법으로 진행한다.먼저 아래의 명령어로 필요한 모듈들을 설치한다. npm install —save body-parser express jsonwebtoken mysql2 sequelize 모듈들마다 사용 목적은 다음과 같다- body-parser : HTTP Body에서 값들을 빼올때 사용- jsonwebtoken : JWT 토큰을 위해 사용- sequelize : MySQL과 통신할 때 사용- mysql2 : s.. 2018. 6. 18. Node.js 자동으로 재시작하는 방법(Supervisor) 나는 PHP다음으로 백엔드를 보통 Django를 썼었다.이전 포스팅에서 작성했듯이 Django의 Rest framework를 통해 API서버를 만들었었는데요즘에는 Node.js를 공부하고 있다.(React.js도 자바스크립트이기 때문에 하나의 스택으로 통일시키기 위함이다.)무튼 코드를 실행시키고 수정하는 일이 상당히 많은데 yarn과는 다르게 node로 실행하면코드가 수정되어도 재시작이 되지 않았다.그래서 Ctrl+C를 눌러서 껐다가 다시 node ~ 를 통해 실행했는데 시간이 지날수록 상당히 불편했다.자동으로 실행시켜주는 방법이 없을까 찾아보다가 supervisor라는 패키지를 발견했다.자세한 설명은 아래 주소를 참고한다. https://www.npmjs.com/package/supervisor 먼저 .. 2018. 6. 17. React.js SASS 설치하는 방법 오늘은 CSS를 좀 더 편하게 사용할 수 있는 방법에 대해 소개하겠다.기존에 CSS를 작성할 때 코드가 길어지면 가독성이 크게 떨어지는 경험을다들 한두번쯤을 해봤을 것이다.예를 들어 아래와 같은 코드가 있다고 가정한다. (출처 : velopert님 블로그) .App { ... } .App .header { ... } .App .logo { ... } .App .intro { ... }이런 경우 SASS를 사용하면 아래와 같이 사용할 수 있다. .App {.header { ... }.logo { ... }.intro { ... }} 한눈에 봐도 코드 작성도 보다 쉽게 할 수 있고 가독성도 좋아진다.인터넷을 찾아보니 대부분의 예제들은 create-react-app이후 eject를 하여 무언가 작업을 했는데나.. 2018. 6. 2. React Router Nginx 문제해결 방법 React.js를 이용하여 포트폴리오 사이트를 제작했다.기존에 서버를 구동시키기 위해서 yarn start 명령어를 사용했었는데 해당 명령어는개발 서버에서 사용하는 것이고 실제 서버로 배포하기 위해서는 Deploy작업을 따로 해줘야 한다.나는 기존에 사용하던 서버에 Nginx가 설치되어 있었고 해당 서버에 배포하기로 했다.yarn build를 통해 나온 결과물을 웹 서버 폴더로 옮겼더니 정상적으로 작동한다.하지만 문제점이 하나 있었는데 나는 라우팅을 위해 react-router-dom을 사용하고 있었다.써드파티 모듈이지만 정말 많은 사용자들이 사용하고 있을 정도로 유명한 라우팅 모듈이다.문제점은 /home /about 등으로 접근을 할 경우 nginx에서 해당 파일을 찾으려고 하는 것이다.이 부분은 가상.. 2018. 5. 15. 이전 1 2 3 4 5 6 7 ··· 20 다음