이 글은
KDT 실무형 AI 웹 개발자 양성과정
중DRF를 활용한 Restful한 백엔드 만들기
강의를 정리한 내용입니다. 수정 및 변경사항이 있을 수 있습니다.
DRF(Django REST Framework)의 serializer는 Django model 또는 Python library과 같은 복잡한 데이터 유형을 웹을 통해 쉽게 전송할 수 있는 JSON 또는 기타 형식으로 변환할 수 있는 클래스입니다. 또한 Serializer는 데이터 유효성 검사를 제공하므로 API 클라이언트에서 들어오는 데이터가 유효한지? 데이터 모델과 일치하는지? 확인할 수 있습니다. 일반적으로 입력 데이터를 데이터베이스에 저장할 수 있는 형식으로 변환하고 데이터베이스 개체를 클라이언트에 반환할 수 있는 출력 데이터로 변환하여 CRUD 작업을 수행하는 데 사용할 수 있습니다.
CRUD 작업은 웹 애플리케이션에서 데이터 관리의 기본 빌딩 블록입니다. DRF를 사용하면 일반적인 CRUD 시나리오를 처리하는 일련의 일반 뷰를 제공하여 이러한 작업을 쉽게 구현할 수 있습니다. 이런 경우에 Serializer는 입력 데이터를 데이터베이스에 저장할 수 있는 형식으로 변환하고 데이터베이스 개체를 클라이언트에 반환할 수 있는
, 출력 데이터로 변환
하는 데 사용됩니다. 또한 시리얼라이저를 사용하여 CRUD 작업을 수행하면 데이터의 유효성이 검사되고 일관성이 있으며 데이터가 다른 애플리케이션에서 쉽게 사용할 수 있는 형식으로 전송되는지 확인할 수 있습니다.
테스트는 소프트웨어 개발의 중요한 부분이며 API도 예외는 아닙니다. Postman은 HTTP 요청을 보내고 응답을 검사하여 API를 테스트하고 디버깅할 수 있는 도구입니다. Postman으로 DRF 개발을 테스트하면 API가 예상대로 작동하고 클라이언트가 API와 올바르게 상호 작용할 수 있는지 확인할 수 있습니다. Postman을 사용하면 테스트 사례를 쉽게 설정하고 테스트를 자동화할 수 있으므로 API 품질을 보장하는 강력한 도구가 됩니다.
Swagger는 API를 문서화하고 테스트하기 위한 도구입니다. 엔드포인트, 입력 매개변수 및 출력 형식을 포함하여 API의 기능을 설명하는 표준화된 방법을 제공합니다. DRF 프로젝트에 Swagger를 사용하면 API가 잘 문서화되고 API와 통합해야 하는 다른 개발자가 쉽게 사용할 수 있습니다. Swagger는 또한 API 엔드포인트를 테스트하고 예상대로 작동하는지 확인할 수 있는 강력한 테스트 프레임워크를 제공합니다.
API
가 두 시스템(어플리케이션, 서버)이 상호작용할 수 있게 하는 프로토콜의 총집합이라면,
Endpoint
는 API가 서버에서 리소스에 접근할 수 있도록 가능하게 하는 URL코드라 할 수 있습니다.
출처 : API 와 Endpoint ? (둘 다 정확히 알고 있다면 안 봐도 되는 글) | 작성자 토찌
클래스 기반 뷰는 함수 기반 뷰보다 Django에서 뷰를 정의하는 더 강력하고 유연한 방법입니다. 코드를 재사용하고 기능을 캡슐화할 수 있어 시간이 지남에 따라 코드베이스를 보다 쉽게 유지/관리하고 확장할 수 있습니다. 뷰 코드와 애플리케이션의 다른 부분(예: 모델 및 템플릿) 간의 관계를 보다 명확하게 분리하여 가시성이 좋습니다. 또한 GET, POST, PUT 및 DELETE와 같은 일반적인 HTTP 메서드에 대한 기본 지원을 제공하므로 CRUD 작업을 보다 쉽게 구현할 수 있습니다.
Fetch API는 웹 API에서 데이터를 검색하고 비동기식 요청을 처리하는 현대적인 방법입니다. 이를 통해 애플리케이션의 프런트 엔드에서 HTTP 요청을 보내고 JavaScript를 사용하여 응답을 처리할 수 있습니다. 이는 DRF API에서 데이터를 검색하고 애플리케이션의 클라이언트 측에 표시하는 데 유용할 수 있습니다. Fetch API는 기존 AJAX 방법보다 API 요청을 수행하는 더 간단하고 간소화된 방법을 제공하며 Promises
및 async/await
같은 최신 웹 표준을 더 잘 지원합니다.