본문 바로가기

분류 전체보기

(75)
PostgreSQL 설정 PostgreSQL을 터미널로 접속한다. 일단 psql 을 입력해서 들어간다. 그러면 아래와 같은 창이 나타날것이다. 이후 명령어를 순서대로 입력해준다. 데이터베이스를 만드는 명령어 psql=# create database django_test; 새로운 유저를 만드는 명령어 psql=# create user root with password 'password'; root는 user 이름이고 따옴표로 감싸져 있는 password는 비밀번호이다. 그리고 몇가지 설정을 추가해준다. psql=# alter role root set client_encoding to 'utf-8'; psql=# alter role root set timezone to 'Asia/Seoul&#39..
django test code 실행시 Error test code를 작성하고 실행 시킬때 발생한 에러 $ ./manage.py test 라고 입력시 Got an error creating the test database: permission denied to create database 라는 Error가 발생하는데 이유는 postgres에서 설정한 유저가 수퍼유저로 설정 되지 않았기 때문이다. 그래서 수퍼유저로 다음 명령을 실행해서 createdb 권한을 추가해줘야한다. 아래는 사용하고자 하는 DB를 터미널로 접속한 상태이다. psql=# ALTER USER CREATEDB; 그리고 test 코드를 실행시켜본다.
쿠키와 세션에 대해서 공통적인 내용 : 웹 통신간 유지하려는 정보 (로그인 정보 등)를 저장하기 위해 사용 저장 위치 쿠키 : 개인PC에 저장 세션 : 웹 서버에 저장 HTTP 프로토콜의 특징이자 약점을 보완하기 위해서 사용한다. Connectionless 프로토콜 클라이언트가 서버에 요청(Request)을 했을때 그 요청에 맞는 응답(Response)을 보낸 후 연결을 끊는 처리방식 Stateless 프로토콜 클라이언트의 상태 정보를 가지지 않는 서버 처리 방식 클라이언트와 첫번째 통신에서 데이터를 주고 받았다 해도 두번째 통신에서 이전 데이터를 유지하지 않는다. 쿠키 HTTP의 일종으로 사용자가 어떠한 웹 사이트를 방문할 경우 그 사이트가 사용하고 있는 서버에서 사용자의 컴퓨터에 저장하는 작은 기록 정보 파일이다. HTT..
django 단위 테스트 작성하기 (TDD) 단위 테스트 프로그래머 관점에서 애플리케이션 내부를 테스트하는 것 하위 레벨의 개발 주도한다는 뜻 TDD 작업 순서 기능 테스트를 작성 후 사용자 관점의 새로운 기능성을 정의하는 것부터 시작한다. 기능 테스트가 실패하고 나면 어떻게 코드를 작성해야 테스트를 통과할지를 생각해보도록 한다. 이 시점에서 하나 또는 그 이상의 단위 테스트를 이용해서 어떻게 코드가 동작해야하는지 정의한다. 단위 테스트가 실패하고 나면 단위 테스트를 통과할 수 있을 정도의 최소한의 코드만 작성한다. 기능 테스트가 완전해질 때까지 과정 2, 3을 반복해야할 수 도 있다. 기능 테스트를 재실행해서 통과하는지 또는 동작하는지 확인한다. 이 과정에서 새로운 단위 테스트를 작성해야 할 수도 있다. Django 단위 테스트 django에서 ..
django JWT 사용 방법 JWT란? JsonWebToken으로 말 그대로 JSON 객체로 정보를 전달하는 방식이다. 설치 $ pip install pyjwt JWT 인증 구현하기 header의 META 데이터를 통해 정보 얻을 수 있게 로직 구성 # 본인이 원하는 폴더에서 작업하기 import jwt from django.conf import settings from rest_framework import authentication, exceptions from users.models import User class JWTAuthentication(authentication.BaseAuthentication): def authenticate(self, request): try: token = request.META.get(&#3..
Docker 사용법 (django) docker 사용하는 이유 개발을 하면서 필요한 라이브러리들을 local에 계속 설치하면 복잡해진다. 그래서 프로젝트마다 필요한 라이브러리만 설치하기 위해 가상의 환경을 사용하게 된다. 내가 만든 앱을 local로 돌릴땐 잘 돌아가지만 다른 사람의 컴퓨터에서 돌려보려면 복잡해진다. 가상환경 셋팅 부터 종속성 패키지 설치 등 시간이 오래걸린다. 그러나 docker로 image를 만들면 한 번에 개발환경 세팅을 해결해 주기 때문에 간편하다. 어떤 OS를 사용하던 어떤 컴퓨터를 사용해도 동일한 환경에서 서버를 돌릴 수 있다. docker install docker 설치 확인하기 itrem에서 docker를 입력해보면 명령어가 나온다. 그렇다면 설치가 된것이다. docker hub 및 가입하기 https://h..
django serializer (serializers.Serializer) serializer란? serializer는 데이터를 직렬화 할 수 있게 도와준다. 예를 들어 사용자 DB에 이메일, 이름, 전화번호 등등의 데이터가 있다고 하면 해당 내용들을 JSON or Dict로 직렬화 할 수 있다. 그리고 serializer는 두가지로 나뉘어 지는데 Serializer / Deserializer로 나뉘어 사용 가능하다. 각각의 의미에 대해서 먼저 알아보자 Serializer python 객체나 django에서 queryset등 복잡한 객체들을 REST API에서 사용 가능하게 json 형태로 변환해준다. Deserializer 데이터를 request body로 부터 받아서 다시 복잡한 데이터로 변환 해주는 작업(serializer 처리를 하기 이전 상태로) (참고 - Deseri..
django drf-yasg API 문서 커스텀하기 (@swagger_auto_schema) (FBV) 앞서 해당 내용을 진행하기 위해선 drf-yasg가 install되어있어야한다. 함수형 뷰(FBV)를 기준으로 설명한 내용이다. API 문서를 작성할때 부가적인 내용을 추가적으로 적지 않으면 어떠한 내용인지 잘 모르는 경우로 나타내어진다. 그렇기 때문에 각각 정리가 필요한데 작성법은 아래의 코드로 알아볼 수 있다. @api_view(['POST']) def index(request): """ 해당 내용의 주제 --- ## 경로 ## 파라미터 설명 - id : user id (예시) """ if request.method == 'POST': return Response() 단순하게 이렇게만 적어도 깔끔하게 나오는걸 확인할 수 있다. 그렇다면 HTTP METHOD가 두개 이상이라..