- AbstractBaseUser: Django에서 제공하는 사용자 모델의 추상 기반이며, 이를 상속받아 필요한 필드와 메서드를 추가하여 사용자 정의 사용자 모델을 만듭니다. 여기서는 User 클래스가 AbstractBaseUser를 상속받고 있습니다.
- BaseUserManager: 사용자 모델의 객체를 생성하고 관리하는 데 필요한 도우미 클래스입니다. 여기서 MyUserManager는 BaseUserManager를 상속받아 create_user와 create_superuser라는 두 메소드를 제공합니다. 이 메소드들은 사용자와 슈퍼유저를 생성하는 데 사용됩니다.
- 사용자 및 슈퍼유저 생성 로직: MyUserManager 내에 정의된 create_user와 create_superuser 메소드는 사용자 생성 과정에서 유효성 검사와 비밀번호 설정 등을 자동으로 처리합니다.
- create_superuser 메소드에서는 추가적으로 is_admin 속성을 True로 설정하여 슈퍼유저로 만듭니다.