Framework/Django

장고 50문 50답 채우기(4)

JM Lee 2023. 7. 25. 12:40
728x90

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

  • JWT를 사용하면 유저 관련 정보를 모두 base64 인코딩을 하고 유지 시간도 짧아 보안에 유리하며,
    다른 프레임워크에 호환성도 높다.
    Django 기본 인증은 Django 내장인 만큼 훨씬더 간편하게 사용할 수 있는 이점이 있다.

 

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

  • FK: 다대일 관계. 다른 테이블과 관계가 있을 때 다른 테이블의 내용을 불러오고 이용할 수 있다.
  • OnetoOne: 1:1의 대응 관계 테이블입니다. 예를들어 유저와 유저프로필 모델
  • ManytoMany: A 모델에 연관된 B 모델 필드가 여러개 일 수 있고, 
    B모델에 연관된 A 모델 필드가 여러개일 수 있는 관계가 MtoM.

 

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

  • 모델과 다대다 관계에 두고 싶은 모델을 manytomany 필드로 연결하면 
    자동적으로 두 모델을 연결해주는 새로운 모델이 생성됨.
class Company(models.Model):
    company_name = models.CharField(max_length=128)
    business_area = models.ManyToManyField('BusinessArea', through='CompanyBusinessArea')

    class Meta:
        db_table = 'companies'

 

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

  • views.py를 함수중심으로 구성하는 것과 클래스 중심으로 구성하는 것의 차이가 있습니다.

FBV

  • 편하게 구현할 수 있고 읽기 편한 로직을 가진다.
  • 데코레이터의 사용이 명료하다.
  • 확장성 / 재사용성이 떨어진다

CBV

  • 클래스는 객체지향적으로 구성이 가능하고, 상속할 수 있어서 코드 수를 줄이고 재사용성을 높일 수 있다.
  • 다중상속이나 Mixin이 가능하고 HTTP method가 클래스 안에서 나누어서 처리된다.
  • 강력한 generic view 지원

 

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

  • 테스트코드는 소프트웨어의 기능과 동작을 테스트하는 코드
  • 소프트웨어의 결함을 찾아내고 수정하는 과정에서 매우 중요
  • 단위 테스트, 시스템 테스트, 통합 테스트, 사용자 인수 테스트 존재
  • 개발자 간 협업 원활하게 하고, 소프트웨어 유지 보수하는데 필요한 문서화 작업 줄임
  • 내가 무엇을 만들고 있는지 정확하게 인지
  • 결합도와 의존성이 낮은 코드를 지향하고 리팩토링의 부담을 덜어줌.

'Framework > Django' 카테고리의 다른 글

RESTful API  (0) 2023.09.23
Django 테스트코드에서 setup 함수와 setupclass의 차이는 무엇입니까?  (0) 2023.09.23
장고 50문 50답 채우기(3)  (0) 2023.07.24
장고 50문 50답 채우기(2)  (0) 2023.07.24
ㅁㄴㅇㄹ  (0) 2023.07.20