시험 제출할 때 간단하게 썼기 때문에 다시 한 번 읽어보는 시간을 가졌다.
Model (모델): 데이터베이스 구조를 정의하며, 데이터베이스의 테이블을 표현합니다.
Template (템플릿): 사용자에게 보여지는 화면을 담당하며, HTML과 같은 문서 구조를 정의합니다.
View (뷰): 모델과 템플릿을 연결하여 로직을 처리하고 결과를 반환합니다.
Django에서 settings.py 파일의 주요 역할을 구체적인 예시를 들어 설명하세요.
- settings.py 파일은 Django 프로젝트의 설정을 관리하는 파일입니다. 데이터베이스 설정, 설치된 앱, 미들웨어, 정적 파일 경로, 템플릿 설정, 국제화 설정, 보안 키 등의 다양한 프로젝트 설정이 이 파일에 포함됩니다. 프로젝트 전반의 동작을 조정하고, 필요한 외부 리소스나 라이브러리를 연결하는 역할을 합니다.
settings.py는 Django 프로젝트의 전역 설정을 관리하는 파일로, 프로젝트의 동작을 제어하는 다양한 설정을 포함합니다.
DATABASES: 데이터베이스 설정 (예: SQLite, PostgreSQL 등)
INSTALLED_APPS: 프로젝트에서 사용하는 Django 앱 목록
MIDDLEWARE: 요청과 응답 사이에 실행되는 미들웨어 설정
TEMPLATES: 템플릿 엔진 설정
STATIC_URL: 정적 파일(이미지, CSS 등)의 URL 경로 설정
Django ORM이란 무엇이며, 왜 사용하는지 설명하세요.
- Django ORM(Object-Relational Mapping)은 Python 객체를 데이터베이스의 테이블과 매핑하여 데이터베이스 조작을 간단하고 직관적으로 수행할 수 있게 해주는 도구입니다. SQL 쿼리를 작성하지 않고도 Python 코드만으로 데이터베이스와 상호 작용할 수 있게 해줍니다. 이를 통해 데이터베이스 독립성을 유지할 수 있으며, 데이터베이스 작업을 더 안전하고 효율적으로 수행할 수 있습니다.
Django ORM은 복잡한 쿼리도 쉽게 작성할 수 있도록 다양한 쿼리셋 메서드를 제공합니다.
ORM은 데이터베이스의 테이블과 매핑하여 데이터베이스 조작을 간단하고 직관적으로 수행할 수 있게 해주는 도구입니다. Django ORM은 복잡한 쿼리도 python 코드만으로 쉽게 작성할 수 있도록 다양한 쿼리셋 메서드를 제공합니다.
Django의 Custom UserModel을 사용하는 이유와 장점을 설명하세요.
- Django의 기본 User 모델을 사용하는 대신 Custom UserModel을 사용하면, 사용자 모델을 확장하거나 수정할 수 있어 프로젝트의 요구사항에 맞게 사용자 정보를 관리할 수 있습니다. 예를 들어, 추가적인 사용자 필드가 필요하거나 로그인 방식(예: 이메일로 로그인)을 변경하고 싶을 때 유용합니다. Custom UserModel을 사용하면 향후 확장성도 더 좋아지고, 프로젝트 시작 시 이러한 커스터마이징을 도입하면 나중에 구조 변경이 필요할 때 발생할 수 있는 문제를 예방할 수 있습니다.
Custom UserModel은 장고의 기본 User모델에서 사용자가 원하는 기능을 추가하여 사용자 모델을 확장하거나 수정할 수 있습니다.
Django에서 Model 클래스는 데이터베이스 테이블과 매핑됩니다. Django ORM에서 모델을 정의할 때 필드를 정의할 수 있는 다양한 옵션 중 ManyToManyField에 대해 구체적인 사용 사례를 들어 설명하세요.
- Django의 ManyToMany는 두 모델간의 다대다 관계를 정의할 때 사용됩니다. 다대다 관계란 한 모델의 여러 인스턴스가 다른 모델의 여러 인스턴스와 연결될 수 있는 경우를 말합니다. 예를 들어, 하나의 학생이 여러 과목을 수강할 수 있고, 동시에 하나의 과목을 여러 학생이 수강할 수 있는 상황이 있을 수 있습니다.
- Django는 이러한 관계를 처리하기 위해 자동으로 중간 테이블을 생성하며 이 테이블에는 두 모델의 외래 키가 저장되어 있습니다.
Django의 ManyToMany는 두 모델간의 다대다 관계를 정의할 때 사용됩니다. 예를 들면 팔로우와 좋아요 표시를 하는 것을 예로들 수 있는데 이러한 관계를 처리하기 위해 자동으로 중간 테이블을 생성하며 이 테이블에는 두 모델의 외래 키가 저장되어 있습니다.