본문 바로가기

Coding345

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.
'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.
Django Restframework JWT 토큰 인증 커스터마이징 Django의 DRF에서는 djangorestframework-jwt라는 라이브러리를 사용하면 쉽게 토큰을 사용할 수 있다.기존에는 그냥 import jwt를 통하여 작업을 했었는데 이렇게 라이브러리를 올려놓고 사용하다 보니 뭔가 헷갈렸다.편하게 사용하자고 설치한 라이브러리인데 오히려 더 불편한 느낌이랄까.내가 이해를 제대로 못하는건지 모르겠지만 개인적으로 장고 관련 자료들은 Document들이 전부다 부실한 느낌이다.오늘은 내가 겪었던 불편사항들과 그 해결 방법에 대해 적어본다.먼저 위 라이브러리를 사용하면 쉽게 토큰 발급, 토큰 재발행 등의 작업을 할 수 있다.하지만 문제점은 실제 view에서 작업할 때 해당 라이브러리들을 어떻게 엮어줘야할까 였다.라이브러리를 까보고 싶지 않았지만 어쩔수 없이 직접 .. 2018. 6. 28.
Django AbstractBaseUser로 Custom user모델 만드는 방법 이전에 Custom User모델 만드는 방법에 대해서 포스팅했었는데다시 읽어보니 상당히 부실한 문서였다고 생각이 들어서 다시 한번 자세히 포스팅한다.장고는 기본적으로 인증에 관련된 유저 모델을 가지고 있다.하지만 내가 만드는 서비스와 맞지 않은 정보들을 가지고 있을 때는 굳이 그 유저 모델을 사용할 필요도 없으며 사용할 수도 없다.따라서 기존에 존재하는 모델을 상속받아서 내 입맛에 맞게 수정해줘야 한다.프록시 모델 등 여러가지가 있지만 기본적으로 AbstractUser와 AbstractBaseUser 두가지를 설명한다.AbstractUser를 사용하면 아래와 같이 어느정도 기본적으로 사용할 때 필요한 많은 정보들을 같이 준다. id / password / last_login / is_superuser /.. 2018. 6. 25.
학식봇 Django Restframework API 정리 Django의 Restframework로 학식봇 API서버를 만들었었는데,코드를 작성한지 상당히 오래 지나서 다시 한번 기억을 되살릴겸 작성한다. 보통 장고로 작업할때는 Dependency 문제를 해결하기 위해 가상환경으로 진입하여 작업한다.이 포스팅에서는 가상환경을 위해 pipenv를 사용한다. ( 설치 방법은 http://hides.kr/913 참고 )다음으로 django와 djangorestframework를 설치한다. pipenv shellpipenv install djangopipenv install djangorestframework 다음으로 프로젝트와 앱을 생성해준다.우리는 메뉴에 관한 정보와 익명게시판을 위한 정보가 필요하기 때문에 menu, board두개의 앱을 생성할 것이다. djang.. 2018. 6. 24.