목록웹프로그래밍/DRF (16)

수학과의 좌충우돌 프로그래밍

[Django] Serializer Custom Field, SerializerMethodField

django rest framework 를 사용하여 rest API 서버를 만들다보면 serializer 를 사용하지 않을 수 가 없습니다. 기본적으로 model 에 등록된 필드 값들은 Meta 클래스에 추가줌으로서 다뤄줄 수 있지만 커스텀 필드를 정의하는데 있어서는 새로운 방법이 필요합니다. 이번 포스팅에서는 간단하게 Custom Field 만드는 법에 대해서 알아보도록 하겠습니다. SerializerMethodField SerializerMethodField 를 사용하여 쉽게 커스텀 할 수 있습니다. SerializerMethodField 는 read-only field 로 값을 저장하거나 수정할 때는 사용되지 않고 조회할 때만 사용합니다. 인자로는 method_name 로 해당 필드값에 대해 정의하..

웹프로그래밍/DRF 2020. 2. 26. 15:14
[Django] CORS, Cross-Origin Resource Sharing

CORS 란? 제목에서 알 수 있듯이 CORS 는 Cross-Origin Resource Sharing 의 줄임말입니다. Cross-Origin Resource Sharing 는 한국어로 교차 출처 리소스 공유라고 하며 웹 페이지 상의 제한된 리소스를 최초 자원이 서비스된 도메인 밖의 다른 도메인으로부터 요청할 수 있게 허용하는 구조입니다. django 같은 경우, 기본적으로 8000 포트를 사용하고 있기 때문에 다른 포트를 사용하는 프론트 서버와 통신을 막고 있습니다. 따라서 CORS 를 설정하지 않은 상태로, 프론트 서버에서 통신을 요청하면 다음과 같은 에러를 확인할 수 있습니다. Access to fetch at 'http://localhost:8000/auth/login' from origin '..

웹프로그래밍/DRF 2020. 2. 14. 17:30
[Django] Throttling

Throttle 이란 특정 조건 하에 최대 호출 회수를 결정하는 클래스 입니다. 여러 이유로 지정 기간 내에 호출 횟수를 제한하는 것이죠. Rate rate 는 지정 기간 내의 최대 호출 횟수를 말합니다. 표기하는 방법은 {숫자}/{간격} 다음과 같이 표기합니다. 여기서 숫자는 지정 간격 내의 최대 요청 제한 횟수를 말하고, 간격은 횟수를 초기화하는 시간을 말합니다. 이 때 간격은 문자의 맨 앞글자만을 참조합니다. 따라서 d 나 day 는 똑같이 동작합니다. 사용할 수 있는 간격 키워드로는 다음과 같습니다. s : 초 m : 분 h : 시 d : 일 # ex "10/s" # 초당 10회 "100000/day" # 하루당 10만회 Rates 제한 메커니즘 django 에서 제공하는 Throttle 들은 모..

웹프로그래밍/DRF 2020. 1. 8. 21:47