python은 똑같은 코드를 반복적으로 입력하려 결과를 얻는 것보다는 캡슐화를 통해 재사용성을 높이는 것을 선호한다.따라서, 인증, data생성 같은 반복 작업에 대해 먼저 캡슐화를 진행한다. ListCreate Veiw에 대해서 Create와 Read의 다양한 경우
email을 username 대신 인증 수단으로 사용한다. 이를 위해 BaseUser에서 필요한 기능들을 가져온다.django.contrib.auth.models에서 AbstractUser을 복사한다.email을 blank=False, unique=True로 설정한다u