17. 데이터 테이블 간의 관계를 나타내는 FK, OneToOne, ManyToMany 필드에 대해서 설명하시오
ForeignKey : 일대다관계, 한 지역에는 여러 사람이 거주함.
OneToOneField : 일대일관계, 예시로 한 국가에는 하나의 수도만 존재함.
ManyToManyField : 다대다관계, 피자와 토핑을 생각하면 된다.
18. Django에서 ManyToMany필드를 만드는 방법에 대해서 설명하시오
1. 중간 테이블을 만드는 방법으로 A와 B 테이블을 만들고 그 둘의 중간테이블인 C를 만든다.
C -> A , C -> B 의 관계를 일대 다로 설정해주어 테이블 관계를 세팅할 수 있다.
2. ManyToManyField의 through 옵션을 만들어주어 장고에서 자동으로 만들 수 있다.
19. FBV와 CBV는 각각 무엇이며, 어떤 차이가 있습니까?
FBV : Function-Base Views 의 약자로 함수를 기반으로 하는 views.py를 처리하는 방법
코드를 확장하거나 재사용하기 어렵고 조건문을 사용해 http method를 구분해야함
CBV : Class-Based Views 의 약자로 클래스를 기반으로 하는 views.py를 처리하는 방법
http method에 따른 코드를 작성할때 조건문 대신 메소드 명을 사용함으로 구조가 깔끔해짐
객체지향기법을 이용하여 코드를 재사용하고 views를 체계적으로 구성할 수 있음
20. 테스트코드를 작성하는 이유는 무엇이며 어떤 장점이 있습니까?
개발 과정 중 예상치 못한 문제를 미리 발견할 수 있다. (에러를 클라이언트 보다 빨리 발견 할 수 있다.)
작성한 코드가 의도한 대로 작동하는지 검증할 수 있다.
코드 변경에 대한 사이드 이펙트를 줄이는 예방책이다.
코드 수정이 필요한 상황에서 유연하고 안정적인 대응을 할 수 있게해준다.
코드의 모듈화를 한번더 고민하게 해준다.
코드 변경 시, 변경 부분으로 인한 영향도를 쉽게 파악할 수 있다.
코드 리팩토링 시 기능 구현이 동일하게 되었다는 판단을 내릴 수 있다.
(예를 들어 버전업을 하면서 현재 구현된 기능이 제대로 버전업에서도 동일하게 구현되게 한다.)
테스트 코드를 통해 동작하는 방식 및 결과 확인이 가능하다.
'STUDY > Python' 카테고리의 다른 글
Array vs Linked List (0) | 2022.07.20 |
---|---|
CS간단정리 50문답(21-30) (0) | 2022.07.19 |
CS간단정리 50문답(13-16) : JWT (0) | 2022.07.18 |
CS간단정리 50문답(1-12) : Django (0) | 2022.07.15 |
테스트 코드 작성 (0) | 2022.07.14 |