django 50문답 (26~35)

김하진·2022년 9월 7일
0

26. 회원탈퇴, 게시글 삭제와 같은 기능을 구현할 때 실제 레코드를 삭제합니까? 그렇지 않다면 그 이유는 무엇입니까?

실제 데이터를 삭제 할 수 는 있지만 삭제시키기 보다는 유저의 권한을 정지 시키는게 좋다. 특히 RDBS 에서는 테이블 간의 데이터가 연결되어 있는 경우가 많아 오류를 유발 할 수도 있다. 또한 데이터를 삭제 하는 것 보다는 유지하는 것 이 마케팅 등에 활용 할 수 있어 좋다.

27. RESTful API는 무엇을 의미합니까?

REST API 에서 REST는 Representational State Transfer 의 약자로 소프트 웨어 프로그램 아키텍처의 한 형식입니다. HTTP URI 를 통해 자원을 명시하고, HTTP method (GET,POST,PUT,DELETE)를 통해 해당 자원에 대한 CRUD OPERATION을 적용하는 것을 의미합니다.

RESTful 이라는 말은 REST 라는 아키텍처 개념을 그대로적용해서 웹서버 구성하고 웹서비를 하는 것을 말합니다.

28. DRF를 사용해 API를 개발할 경우 어떤 장점이 있습니까?

Serailizer 직렬화 를 통해 복잡한 데이터를 JSOn,XML등의 컨텐트 타입으로 쉽게 변환 가능한 python 데이터 타입으로 변환시켜준다.

ORM 과 non-ORM을 모두 지원한다.

많은 기업에서 사용해서 정보를 얻기 쉽다.

인증 관리를 위해 OAuth1a와 OAuth2 가 내장되어 있다.

29 4. Django 와 DRF를 통한 개발의 차이점은 어떤 것이 있습니까?

Django 만 사용하는 경우 Queryset을 템플릿 언어로 렌더링한다.

DRF를 사용하면 json을 템플릿 언어로 렌더링한다.

이렇게 DRF를 사용하면 python으로 만든 백엔드를 다른 프론트엔드 에서도 사용이 가능합니다.

30. Django User 모델과 DRF Custom User 모델의 차이는 무엇입니까?

Djnago User모델에는 유저네임,이름,이메일,패스워드 의 기본적인 필드가 존재합니다.

하지만 실제 서비스에서는 더 많은 User의 정보를 필요로 합니다. 생일이라던지, 여러가지 질문을 포함할 수 도있습니다. 그렇기 위해 Custom User을 통해 커스텀 합니다. 또한 Django User모델은 username 으로 로그인을 해야 합니다.

31. DRF Serializer는 무엇이며, 어떤 기능을 수행합니까?

Serializer는 queryset과 모델 인스턴스와 같이 복잡한 데이터를 JSON, XML 또는 다른 콘텐츠 유형으로 변환할 수 있고,

Serializer는 받은 데이터의 유효성 검사를 진행한 뒤 복잡한 타입으로의 형 변환을 할 수 있도록 Serialization을 제공합니다.

32. JSON 형식으로 데이터를 받고, Serializer를 통해서 JSON형식으로 데이터를 반환하는 이유는 무엇인가요?

json 은 특정 언어의 종속 되지 않습니다.

xml 보다 가볍기 때문에 최소한의 용량으로 데이터 전송이 가능합니다.

xml 보다 구조정의의 용이성 과 가독성이 좋습니다.

33. Serializer를 통해서 특정 모델에 존재하지 않지만, 관계 있는 테이블의 필드 레코드를 반환하는 방법에 대해서 설명하시오

Serializer MethodField를 사용하면 됩니다.

  1. serializer 에 test = serializer.SerializerMethodField()를 추가합니다.
  2. get_test 라는 함수를 선언합니다 (객체를 인자로 받습니다)
  3. fields 에 test 를 추가 해줍니다.

34. Serializer를 통해서 역참조 하는 방법에 대해서 설명하시오

만약 post 라는 모델을 역참조 하려면 post_set을 통해서 역참조 를 할 수 있습니다. 혹 relate_name 을 모델에 선언해줬다면 realte_name을 통해 참조 할 수 있습니다.

35. DRF Q기능을 통해서 쿼리하는 것은 어떤 장점이 있습니까?

데이터를 조회 할때 and , or , not 연산을 사용 할 수 있습니다.

복잡한 데이터를 조회할 때 유용하게 쓰일 수 있습니다.

profile
진킴

0개의 댓글