Django 50문답 (15~20)

김하진·2022년 9월 2일
0

15 Django의 기본 기능을 사용하는 것과 JWT를 사용하여 로그인 기능을 구현하는 것에는 어떤 차이점이 있습니까?

Built-in Token 은 한 개의 토큰으로 모든 세션을 관리하며, 시간을 기록하지 않기 때문에 한 번 발급되면 만료 되지 않는다. 만약 중간에 토큰이 해킹 당 할 경우 보안에 심각한 문제를 야기할 수 있다.

JWT는 한 세션당 한 개의 토큰이 발급되며 영구적이지 않고 만료되기 때문에 access token 이 만료될 경우 refresh token 을 통해 새로운 access token 을 발급 받는다.

16데이터 테이블 간의 관계를 나타내는 FK, OneToOne, ManyToMany 필드에 대해서 설명하시오

FK : Foreing Key 란 테이블의 필드 중에서 다른 테이블의 행 과 식별할 수 있는 키이다.

일반적으로 외래키가 포함된 테이블을 자식테이블이라 하며 외래키 값을 갖고 있는 테이블은 부모 테이블 입니다. 즉 테이블과 테이블을 연결 시키기 위해 사용되는 키 입니다.

OnoToOne: one-to-one 관계, 즉 테이블 간 의 1대 1 관계 입니다 OneToOneField 를 통해서 정의 할 수 있습니다.

ManyToMany: 테이블 간의 다 대 다 관계입니다. 예를 들어 다수의 사용자들이 다수의 사용자들을 팔로하 하는 경우, 여러 관계의 매칭이 필요할 때 사용하는 필드입니다. ManyToManyField 를 통해서 정의 할 수 있습니다.

17 Django에서 ManyToMany필드를 만드는 방법에 대해서 설명하시오

  1. ManyToMany 필드 에 필요한 두 개의 모델을 생성합니다.
  2. 테이블의 관계를 ManyToManyField를 통해 관계를 정의해줍니다.

18 FBV와 CBV는 각각 무엇이며, 어떤 차이가 있습니까?

FBV: 함수 기반 뷰(Function-Base Views)를 뜻하며,

함수를 사용하는 뷰는 심플하고, 가속성이 좋습니다.

CBV: 클래스 기반 뷰(Class-Based Views)를 뜻하며, 클래스형 뷰는 상속과 믹스인 기능을 이용하여 코드 재사용하고 뷰를 체계적으로 구성할 수 있다.

그러나 코드를 확장하거나 재사용하기 어려움, 조건문으로 HTTP 메소드 구분해야하는 단점이 있다.

GET, POST 등 HTTP 메소드에 따른 처리 코드를 작성할 때 if 함수 대신에 메소드 명으로 코드의 구조가 깔끔하다.

다중상속 같은 객체지향 기법을 활용해 제너릭 뷰, 믹스인 클래스 등을 사용해 코드의 재사용과 개발 생산성을 높여준다.

19테스트코드를 작성하는 이유는 무엇이며 어떤 장점이 있습니까?

  1. 잘 작동하고, 깔끔하고 가독성이 좋은 코드를 얻을 수 있습니다.
  2. 디버깅 시간을 단축 할 수 있어 결과적으로 시간을 단축 할 수 있습니다.
  3. 기능 추가에 유연하게 대처 할 수 있습니다.
  4. 잘 짜여진 테스트는 작성의 코드의 문서 역할을 할 수 있습니다.
  5. 재 사용성 가능.
profile
진킴

0개의 댓글