본문 바로가기

전체 글

(142)
[Django] Django allauth 유저 모델 커스텀하기 네이버로그인 소셜계정으로 회원가입한 유저 구분하기 제목을 커스텀 유저모델이라고 썼지만 사실 유저 인스턴스를 커스텀하는 것에 더 가깝다. 현재 만들고 있는 프로젝트에서 소셜계정으로 로그인하는 유저에게 특정 필드값을 부여하고 싶었다. 예를 들면 네이버로 로그인 하는 유저에게는 N이라는 값을, 페이스북으로 로그인하는 유저에게는 F 값을 주고 싶었다. 나중에 어떤 곳에서 유입이 더 많이 될지 살펴볼 수 있지 않을까? 처음에 혼란스러웠던 점은 어디서부터 시작해야 할지 모르겠다는 점이었다. 라이브러리 활용이 처음이었기 때문에 아예 백지 상태였다. 결론부터 말하자면 django-allauth에 어딘가를 오버라이딩해야 한다. django allauth custom usermodel이라고 검색하니 다시 공식문서로 회귀하..
[Django] Django-allauth를 통한 페이스북 회원가입 및 로그인 페이스북 회원가입 Django-allauth을 활용한 페이스북 회원가입(로그인) http://django-allauth.readthedocs.io/en/latest/installation.html 라이브러리 활용이 전무해서 처음에 좀 애먹었다. 우선 첫 환경세팅은 공식홈페이지를 보고 따라하는 것이 가정 정확하고 빠르다. 설치하기 pip install django-allauth settings.py 세 부분을 건들여줘야 한다. (INSTALLED_APPS, TEMPLATES, AUTHENTICATION_BACKENDS) INSTALLED_APPS에는 추가해야 할 앱들이 많기 때문에, +=를 활용해 아래칸에 따로 만들어줬다. INSTALLED_APPS += [ # The following apps are r..
[DJango] AbstractBaseUser vs AbstractUser 비교하기 AbstractUser vs AbstractBaseUser AbstractUser vs AbstractBaseUser AbstractBaseUser를 상속하게 되면 Class MyUser(AbstractBaseUser): pass 꼴랑 2개밖에 안던져준다(id는 자동생성 되는 필드니까). 이를 상속해서 유저 모델을 구축한다면 세밀한 컨트롤이 가능하지만 세그만큼 손도 많이 간다. 만약 페이스북 이메일 인증(permission)을 통한 가입을 하고 싶다면 AbstractBaseUser를 사용해야 한다. 상속받는 클래스틀 타고 들어가면 아래처럼 구현되어있다. class AbstractBaseUser(models.Model) password = last_login = def get_username(self): ..
[Django] Django + Celery + Redis 이용하기 Redis_Celery 들어가기 전에 동기 vs 비동기 (이미치 출처 : http://ojava.tistory.com/17) 어떤 서비스에 회원가입을 하면 메일이 날라오는 경우가 있다. 동기 : 메일이 날라올 때까지 아무것도 하지 못한다. 비동기 : 메일이 날라오지 않더라도 다른 작업을 할 수 있다. 비동기 방식이 짱짱맨 아니냐 하겠지만 어떤 방식이건 간에 장단점이 존재한다. 아무튼, 회원가입 축하 이메일 발송은 사실 고객(client)에게 중요한 부분이 아니다. 일단 가입을 하고 서비스를 이용하기를 원할 것이다. 이러한 이메일 발송은 비동기 처리로 보낼 수 있다. 이를 백그라운드에 보낸다고 표현한다. Djnago + Celery + Redis Celery는 일꾼이다. 해야 할 일들을 처리한다. Reid..
[Django] Django Rest Framework(DRF) 알아보기 1부 REST_API Django REST Framework (DRF) REST REST에 관해서 많은 블로그 글들이 자세하게 설명하고 있기에 여기서는 간단하게 설명하고자 한다. REST는 WEB 관련 기술이다. 데이터를 주고받는 일종의 규약이다. 단순하다. 사용하기 편하다. Open API와 궁합이 좋다. HTTP 기본 메서드 4가지(POST, GET, PUT, DELETE)를 통해 일관적인 컨벤션(관례)을 유지한다면 RESTful 하다고 한다. 좀 더 자세히 알아보고 싶다면 이 블로그를 추천한다. http://blog.remotty.com/blog/2014/01/28/lets-study-rest/ 직렬화 하기 처음에 이름부터 너무 어렵게 느껴져서, 직렬화라는 용어 자체가 두려움의 대상이었다. 그래서, 초심..
[Django] settings 환경 분리하기 settings 분리하기 Django settings 환경 분리하기 장고를 처음 배우면서 가장 당황했던 일은 settings.py이란 파일은 온데간데 없고, deploy.py, debug.py로 환경세팅을 나누는 것이었다. 원래는... ./manage.py runserver runserver를 할 때는 명령어가 간단했는데, 이제는 파일을 나누게 되니까 여러모로 당황스러웠다. ./manage.py runserver --settings=config.settings.debug # 개발(디버그)용 ./manage.py runserver --settings=config.settings.deploy # 배포(서비스)용 환경 세팅이 deploy용과 debug용으로 나뉘면 런서버를 실행하는 법도 바꿔줘야 한다. 그냥 ..
[배포] 도커에서 uwsgi, nginx연동 확인하기 들어가기 앞서 OS : Ubuntu 16.04 LTS Django (1.11.3) Python : 3.6.1 Nginx : 1.10.3(ubuntu) 굉장히 부족하고, 굉장히 저급 수준의 실력을 가진 유저가 쓴 글입니다. 진행하시다가 오류를 발견하시거나, 진행사항에 문제가 있는 경우 적극적으로 알려주세요. 감사합니다. Nginx - uWSGI - Django 연동하기 본 포스팅은 도커(Docker) 상에서 Nginx와 uWSGI를 연동을 확인하는 포스팅입니다. 도커 스크립트를 통해 컨테이너에는 이미 Nginx와 uWSGI가 설치된 가정하에 글의 순서는 다음과 같습니다. Web Client - 장고 App Web Client - uWSGI - 장고 App Web Client - Nginx - uWSGI -..
Nginx 이해하기 및 기본 환경설정 세팅하기 NGINX Nginx의 개요 엔진엑스(Nginx)는 Igor Sysoev라는 러시아 개발자가 동시접속 처리에 특화된 웹 서버 프로그램이다. Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있다. 동시접속자(약 700명) 이상이라면 서버를 증설하거나 Nginx 환경을 권장한다고 한다. 지금은 아파치가 시장 점유율이 압도적(?)이지만, 아마존웹서비스(AWS) 상에서는 시장 점유율 44%에 달할정도로 가볍고, 성능이 좋은 엔진이라고 한다. 본 포스팅에서는 AWS 인스턴스 상에서 Nginx를 설치하고, 기본적인 설정파일들을 알아보는 시간을 가질 것이다. 이 글을 작성하는 목적은 전문적인 정보를 전달하는 것이 아니라, 개인적인 학습 내요을 포스팅한 것이므로 중대한 오류가 있을..