serializer은 queryset과 모델 인스턴스와 같은 복잡한 데이터를 JSON 콘텐츠 유형으로 쉽게 변환할 수 있습니다. 또한 serializer는 받은 데이터의 유효성을 검사한 다음, 복잡한 타입으로 형변환을 할 수 있도록 serialization을 제공합니다.
query 란 데이터베이스에 정보를 요청해주는 것을 의미하며 파이썬으로 작성한 코드가 sql 로 매핑되어 queryset 이라는 자료 형태로 값이 넘어오게 됩니다. 이는 순회가능한 데이터로서 이를 이용하여 1개 이상의 데이터를 불러와 사용할 수 있습니다. queryset 의 특이한 점은 Lazy 한 특성입니다. 미리 db 에 접근해서 값을 불러오는 것이 아니라 출력 등과 같이 필요한 순간에 sql로 매핑되고 이를 통해 db에 접근해 값을 가져오게 됩니다.
queryset 에 대해서 알아보기 위해 model 하나를 정의하고 가도록 하겠습니다.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=30)
content = models.TextField()
is_published = models.BooleanField(default=False)
queryset 을 생성하기 위해서는 ModelName.objects 를 통해 가능합니다. 위의 Post 같은 경우에는 다음과 같습니다.
Post.objects
- 클라우드에 공개된 API를 실행하기 위해 접속하는 연결 접점을 엔드포인트라고 합니다.
- 엔드포인트는 FQDN으로 표현되는데 API의 접점으로 일종의 게이트웨이 역할을 합니다.
- 클라우드 환경에서는 인프라 컴포넌트를 제어하기 위해 엔드포인트에 접속합니다.
- 엔드포인트는 주로 IP주소가 아닌 도메인으로 접속을 합니다.
- 도메인을 씀으로써 IP주소를 은폐할 수 있습니다.
- IP주소가 바뀔때 자동으로 바뀐 IP주소로 접속하도록 할 수 있습니다.
단일 Endpoint 를 만들어 내는 것이 중요
메소드는 같은 URI들에 대해서도 다른 요청을 하게끔 구별해주는 항목이 있습니다. 이것을 Endpoint라고 하는데요. 위의 표에서 ‘http://api.domain.com/books/1’ URI에 대해 ‘GET’, ‘PUT’, ‘DELETE’ 메소드에 따라 다른 요청 성격을 띄고 있는 것을 알 수 있습니다.