콛잉
-
데일리 과제 10장고 2023. 8. 1. 11:44
Serializer를 통해서 특정 모델에 존재하지 않지만, 관계 있는 테이블의 필드 레코드를 반환하는 방법에 대해서 설명하시오 Serializer에서 SerializerMethodField를 이용하여 메서드를 선언해주면 됩니다. 예를 들어 유저와 게시글 모델을 만들어보겠습니다. from django.db import models class User(models.Model): name = models.CharField(max_length=20) class Article(models.Model): title = models.CharField(max_length=200) user = models.ForeignKey(User, on_delete=models.CASCADE) content = models.Text..
-
데일리 과제 9장고 2023. 7. 31. 11:55
JSON 형식으로 데이터를 받고, Serializer를 통해서 JSON형식으로 데이터를 반환하는 이유는 무엇인가요? JavaScript Object Notation (JSON)은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷입니다. 웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용합니다(서버에서 클라이언트로 데이터를 전송하여 표현하려거나 반대의 경우). 많은 프로그래밍 언어에서 JSON 형식을 지원하고 있어 다양한 플랫폼 간 데이터 호환성을 보장할 수 있습니다. JSON 형식의 데이터를 Django에서 쉽게 활용하기 위해서 직렬화와 역직렬화를 수행하는 Serializer를 이용합니다. Django User 모델과 DRF Custom User 모델의 차이는 ..
-
데일리 과제 8장고 2023. 7. 28. 12:29
RESTful API는 무엇을 의미합니까? REST(Representational State Transfer) API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다. REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌습니다. REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있습니다. 쉽게 구현하고 수정할 수 있어 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있습니다. REST는 다음과 같은 3가지로 구성이 되어 있습니다. 자원(Resource) : HTTP URI 서버는 고유한 리소스 식별자로 각 리소스를 식별합니다. REST 서비스의 경우 서버는 일반적으로 URL(Uniform Resource Locator)..
-
데일리 과제 7장고 2023. 7. 27. 12:50
Response 결과와 함께 status code를 반환하는 이유는 무엇입니까? 클라이언트가 상세한 응답 상태를 알게하기 위함입니다. 상태 코드를 같이 보냄으로써, 요청이 정상 처리되었는 지, 오류가 있는 지 클라이언트가 알 수 있게됩니다. 또한 프론트엔드 엔지니어는 상태 코드에 따라 분기를 나눌 수 있습니다. 회원탈퇴, 게시글 삭제와 같은 기능을 구현할 때 실제 레코드를 삭제합니까? 그렇지 않다면 그 이유는 무엇입니까? 선택이지만, 실제로 레코드를 삭제하면 나중에 그 데이터에 접근할 수 없게 됩니다. 삭제하지 않고 is_active와 같은 상태를 설정하는 방법도 있습니다. 클라이언트가 계정이나 게시글을 삭제 요청했을 때, 그 데이터를 비활성화 시켜 노출되지 않게끔하지만, 데이터베이스에는 남겨두는 방법입..
-
데일리 과제 6장고 2023. 7. 26. 11:44
Django ORM에서 queryset과 object의 차이점에 대해서 설명하시오 QuerySet은 여러 Object의 묶음입니다. Model.objects 로 불러올 수 있고, 다양한 메서드를 이용해 정렬, 필터, 주석 등의 기능을 사용할 수 있습니다. Object는 데이터베이스에 저장된 개별 레코드입니다. Django에선 Model 클래스의 인스턴스로 간주됩니다. Django ORM에서 정참조와 역참조에 대해서 설명하시오 정참조는 fk로 참조한 모델에 접근하는 것이고, 역참조는 반대로 참조된 모델에서 참조한 모델에 접근하는 것입니다. from django.db import models class Article(models.Model): title = models.CharField(max_length..
-
데일리 과제 5장고 2023. 7. 25. 12:40
테스트코드에서 setup 함수와 setupclass 의 차이는 무엇입니까? 장고에서 테스트를 할 때 테스트 DB를 생성하고, 모든 테스트 메서드를 실행할 때매다 장고는 DB를 초기화합니다. unit-testing 원칙은 모든 테스트는 서로 독립적이어야한다는 뜻입니다. A 테스트에 의존에서 B 테스트를 하는 건 옳지 않습니다. 독립성을 유지하면 회원가입 테스트 후 로그인 테스트를 할 때, 회원가입 테스트에서 생성한 유저를 가져올 수 없습니다. 그렇기에 회원가입 후 로그인하는 테스트를 만들어줘야 하는데, 이렇게 매번 데이터를 생성하고 테스트 하는 건 번거롭습니다. 그럴 때 사용하는 것이 setup과 teardown 입니다. setup은 클래스 내에서 정의된 모든 테스트 메서드 이전에 실행되고, teardow..
-
데일리 과제 4장고 2023. 7. 24. 11:35
FBV와 CBV는 각각 무엇이며, 어떤 차이가 있습니까? 장고 MVT 패턴 중 View를 구현하기 위한 방법이 두 가지 있습니다. 함수 형식으로 작성하는 FBV, 클래스 형식으로 작성하는 CBV. FBV(Function Based View) from rest_framework.decorators import api_view from rest_framework.response import Response from rest_framework import status @api_view(['GET', 'POST']) def example(request): if request.method == 'GET': return Response({"message": "GET 요청"}, status=status.HTTP_2..
-
데일리 과제 3장고 2023. 7. 21. 12:10
데이터 테이블 간의 관계를 나타내는 FK, OneToOne, ManyToMany 필드에 대해서 설명하시오 FK(Foreign Key) 한국어로 외래키 관계, 혹은 일대다(1:N) 관계라고 부릅니다. 외래키는 한 테이블과 다른 테이블간의 관계를 나타내는 개념으로, 외래키로 연결된 다른 테이블의 기본키(Primary Key)를 참조합니다. 예를 들어 한 유저가 여러 개의 게시글을 작성할 수 있을 때, 게시글을 유저와 외래키로 참조합니다. 한 유저는 여러 개의 게시글을 작성할 수 있지만, 한 게시글은 여러 명의 유저를 가질 수 없습니다. 이러한 관계를 FK 관계라고 설명합니다. OneToOne 한국어로 일대일(1:1) 관계라고 부릅니다. 한 테이블의 레코드가 다른 테이블의 레코드와 1:1로 매핑되는 경우 사..