profile
항상 성장하는 개발자 최동혁입니다.

[drf] 테스트 코드

DRF 테스트 코드의 목적은 API의 품질을 향상시키는 것입니다.테스트 코드를 작성하면 API의 동작을 검증하고 예상하지 못한 버그를 발견할 수 있습니다.또한, 테스트 코드를 작성함으로써 개발자는 코드를 더욱 견고하게 작성하고, 유지보수를 쉽게 할 수 있습니다.DRF에

2023년 5월 14일
·
0개의 댓글
·

[drf] drf를 쓰는 이유, serializer

DRF(Django REST Framework)는 Django 기반의 웹 애플리케이션에서 RESTful API를 쉽게 개발하고 관리하기 위해 사용되는 오픈 소스 프레임워크이다.DRF를 사용하는 이유는 다음과 같다.빠른 API 개발: DRF는 Django의 강력한 기능과

2023년 5월 14일
·
0개의 댓글
·

[drf] user custom

Django에서는 기본적으로 User 모델을 제공해서 간단한 인증 시스템에 적합한 기능을 제공한다.그러나 Django REST Framework (DRF)을 사용하여 API를 개발할 때, 기본 User 모델로는 API 요청에 맞는 커스터마이징이 어려울 수 있다. 이에

2023년 5월 14일
·
0개의 댓글
·

[drf] 정규 표현식

a: 문자 "a"와 정확히 일치.abc: 문자 "a", "b", "c" 중 하나와 일치.^abc: 문자 "a", "b", "c" 이외의 문자와 일치..: 어떤 문자와 일치. (줄바꿈 문자 제외)^: 문자열의 시작을 나타냄.$: 문자열의 끝을 나타냄.\\b: 단어 경계를

2023년 5월 13일
·
0개의 댓글
·

[drf] .env를 활용한 키 값 관리

장고 프로젝트를 진행하다 보면, github와 같은 형상 관리 툴에 노출되어서는 안되는 값들이 존재한다.예를 들어 aws 계정 관련 값, 장고 secret key, DB 정보 등등 이러한 것들을 .env 파일을 이용해 관리하기 쉽게 해주는 모듈이 django-envir

2023년 5월 12일
·
0개의 댓글
·

[drf] python에서의 경로 설정 (os.path VS Path)

장고에서 기본적으로 세팅되어 있는 BASE_DIRos.path 모듈을 사용하여 \_\_file\_\_ 변수의 절대 경로를 가져온 다음, dirname() 함수를 두 번 호출하여 해당 경로의 부모 디렉토리를 가져온다. 여기서 \_\_file\_\_ 현재 파일의 상대 경로

2023년 5월 12일
·
0개의 댓글
·
post-thumbnail

[drf] 장고 ORM N+1 문제 해결

장고는 기본적으로 Lazy-loading 이기 때문에, 당장 해당 쿼리셋을 사용하지 않으면 쿼리문을 호출하지 않는다.사용자는 해당 쿼리셋을 불러온줄 알고 객체에 쿼리셋을 저장한 후, 재사용을 하지만, foreign key로 이어져 있는 모델을 부를 때 해당 데이터의 수

2023년 5월 9일
·
0개의 댓글
·
post-thumbnail

[drf] Cursor pagination

drf에서 제공해주는 cursor pagination을 사용하기에 앞서 커서라는 개념부터 알고가야 한다.커서 (Cursor)는 컴퓨터로 문서를 작성해 본 사람이라면 누구나 알고 있는 용어이다. 화면에서 현재 사용자의 위치를 나타내며 깜빡거리는 막대기가 바로 커서이다.데

2023년 5월 9일
·
0개의 댓글
·

[django] db 연동

DB 서버 설정 방화벽 해제 systemctl stop firewalld systemctl disable firewalld setenforce 0 mysql 설치 및 초기 설정 yum -y install mysql-server systemctl restart my

2023년 2월 22일
·
1개의 댓글
·
post-thumbnail

Authentication과 Permission

유입되는 요청을 허용/거부하는 것을 결정하는 것이 아니라, 단순히 인증정보로 유저를 식별하는 것입니다.Authentication : 유저 식별Permissions : 각 요청에 대한 허용/거부Throttling : 일정 기간 동안에 허용할 최대 요청 횟수1\. 매 요청

2022년 12월 10일
·
0개의 댓글
·

Serializer를 통한 유효성 검사 및 저장

.initial_data 필드에 접근할 수 있고.validated_data를 통해 유효성 검증에 통과한 값들이 .save() 시에 사용됩니다..errors à 유효성 검증 수행 후에 오류 내역.data à 유효성 검증 후에, 갱신된 인스턴스에 대한 필드값 사전.upda

2022년 12월 10일
·
0개의 댓글
·
post-thumbnail

Form과 Serializer 관점에서 DRF 비교

QuerySet/Model객체 -> Native Python 데이터타입, JSON/XML 등Serializer는 뷰 응답을 생성하는 데에 범용적이고 강력한 방법을 제공ModelSerializer는 Serializer 생성을 위한 ShortcutHTML 입력폼을 통한 입

2022년 12월 10일
·
0개의 댓글
·

Renderer를 통한 다양한 응답 포맷 지원

같은 Endpoint에서 요청받은 타입에 맞춰, 다양한 응답포맷을 지원Content-Type, URL의 방법을 통해 Renderer 지정 가능media_type -> application/json, format à jsonmedia_type -> text/html, f

2022년 12월 10일
·
0개의 댓글
·

ViewSet과 Router

list/create/detail/update/partial_update/delete 등의 멤버 함수로 구현보통 list/create을 위한 하나의 URLdetail/update/partial_update_delete를 위한 하나의 URL총 2개의 URL이 필요하다.최

2022년 12월 10일
·
0개의 댓글
·

mixins 상속을 통한 generics의 APIView

실제로 직접적으로 사용되는것이 아닌, 다른 클래스에 의해 상속이 이루어질때 사용이 되는 모듈들을 의미있는 단어로 구현해 놓은 것이다.List -> get/postDetail -> get/(put이나 patch)/ delete총 5개의 메소드가 위의 mixin들에 매칭이

2022년 12월 10일
·
0개의 댓글
·
post-thumbnail

(배나온) 배포 24시간 서버 구동(screen)

screen은 리눅스 가상 터미널로 터미널을 물리적으로 다중화하여, 백그라운드에서 터미널을 실행할 수 있는 프로그램이라고 한다.screen을 사용해서 터미널을 꺼도 runserver가 구동되게 하자!우선 screen을 설치한다.만약 위의 명령어가 안되면 sudo를 빼고

2022년 12월 6일
·
0개의 댓글
·
post-thumbnail

(배나온) 배포 CORS 해결

우리는 백엔드와 프론트엔드를 항상 localhost에서 열었었다.하지만 이제 우리는 허용한 포트를 이용해 부여받은 탄력적 ip 주소로 서버를 구동할 것이다.필자는 프론트 엔드 측에 backend의 탄력적 ip 주소를 따로 config.js 파일로 관리를 하였다.axio

2022년 12월 6일
·
0개의 댓글
·
post-thumbnail

(배나온) 배포 도메인 구매

검색창에 route 53을 검색해서 위의 그림처럼 나오는 Route 53을 클릭하자.호스팅 영역을 생성해준다.누르게 되면 위의 그림처럼 뜨게 되는데, 쓰고 싶은 도메인 이름을 써주고 나머지는 건들지말고 호스팅 영역 생성 버튼을 눌러주자.그렇다면 이렇게 뜨게 되는데,

2022년 12월 6일
·
0개의 댓글
·
post-thumbnail

(배나온) 배포 도메인 설정

EC2 인스턴스 생성 왼쪽 사이드바에 위의 그림처럼 나올것이다.탄력적 IP라고 쓰여져 있는 것을 클릭하자.그 후, 오른쪽 위에 있는 탄력적 IP 주소 할당 버튼을 눌러준다.디폴트 값으로 할당을 해주고 다시 왼쪽 사이드바에 탄력적 IP를 클릭해준다.그렇다면 위 그림처럼

2022년 12월 6일
·
0개의 댓글
·
post-thumbnail

(배나온) 배포 인스턴스 생성

일단 회원가입을 하고 로그인을 한 후, 맨 위 오른쪽에 지역을 서울로 바꿔주도록 하자.인스턴스 시작 클릭이런 화면이 뜨는데, 이름은 아무렇게나 지어주면 된다.예를 들면 backend 서버를 돌리고 싶은 인스턴스라면 backend라고 지어주자.그리고 더 많은 AMI 찾아

2022년 12월 6일
·
0개의 댓글
·