STUDY/Python

CS간단정리 50문답(17-20)

nicesugi 2022. 7. 19. 19:03

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