- 데일리 과제[Django 50문 50답] Serializer를 통해서 특정 모델에 존재하지 않지만, 관계 있는 테이블의 필드 레코드를 반환하는 방법에 대해서 설명하시오 SerializerMethodField()를 사용하면 모델에 필드가 있지 않아도 관련된 테이블에서 해당 정보를 계산해서 가져올 수 있습니다. 시리얼라이저에서 가져오고 싶은 정보를 담을 필드를 serializers.SerializerMethodField()로 선언 후, 해당 정보를 가져오도록 get_(self, obj) 메서드를 정의합니다. 예를 들어, 작가 모델과 책 모델이 있고, 책 모델에 작가 필드가 작가 모델을 참조하는 외래키로 정의되어 있을 때, 작가의 정보 조회 시 해당 작가가 작성한 책 목록을 가져오고 싶은 경우, 작가 정보..
- 데일리 과제[Django 50문 50답] RESTful API는 무엇을 의미합니까? REST (Representational State Transfer) API는 웹 서비스에서 클라이언트와 서버 간의 통신을 단순화하는 데 사용되는 아키텍처 스타일입니다. REST는 자원(resource)에 기반을 둔 아키텍처로, 자원을 URI(Uniform Resource Identifier)의 형태로 식별하고, 해당 자원을 생성, 읽기, 업데이트 및 삭제하는 기능을 제공합니다. RESTful API란 REST 아키텍처 원칙을 따르는 API라고 할 수 있습니다. (예상) 추가 질문: URI와 URL의 차이점 URI는 인터넷에서 자원에 접근하기 위한 고유한 식별자입니다. 자원은 웹페이지, 이미지, 영상 등 인터넷 상의 ..
- 데일리 과제[Django 50문 50답] Response 결과와 함께 status code를 반환하는 이유는 무엇입니까? 상태 코드는 요청의 성공 여부, 실패 이유, 예상되는 클라이언트의 다음 동작 등을 명확하게 전달하기 위해 사용됩니다. 즉, 웹 서비스에서 응답 결과를 효과적으로 전달하고, 어떤 오류인지 클라이언트에게 알려주어 명확하게 처리할 수 있도록 해줍니다. 또한 통신이 표준화되고 코드의 단순화가 가능합니다. 회원탈퇴, 게시글 삭제와 같은 기능을 구현할 때 실제 레코드를 삭제합니까? 그렇지 않다면 그 이유는 무엇입니까? 회원탈퇴의 경우 .delete() 메서드를 이용해서 실제 레코드는 삭제하기보다 is_active 칼럼을 True에서 False로 상태값 변경을 합니다. 유저를 레코드에서 삭제할..
- 데일리 과제[Django 50문 50답] Django ORM에서 queryset과 object의 차이점에 대해서 설명하시오 QuerySet 먼저 QuerySet은 모델을 대상으로 쿼리를 작성하는 데 사용하는 Django ORM의 객체로, 데이터베이스로부터 특정 조건에 맞는 결과를 가져오기 위한 필터링, 정렬, 슬라이싱 등 다양한 쿼리 작성 기능을 제공합니다. 데이터베이스로부터 여러 레코드를 조회할 때 QuerySet이 반환되며, QuerySet은 이런 데이터 집합의 타입입니다. QuerySet은 "lazy evaluation"이라는 특징이 있어, 값을 실제로 사용할 때 데이터베이스에 쿼리를 실행합니다. 즉, QuerySet의 평가를 연기하여 최적화를 도모하는 메커니즘이 적용되어 있습니다. Object..