Django 앱(App) 구조
01. Project와 App의 차이
Django에서 웹 서비스 각각의 기능은 앱 단위로 구현합니다. 서로 다른 기능을 하는 앱을 여러 개 모아서 하나의 프로젝트로 만드는 거죠. 실제로 하나의 프로젝트는 여러 개의 앱과 약간의 설정 파일들로 구성되어 있고 하나의 앱은 여러 개의 프로젝트에서 사용할 수 있습니다.
02. App 생성하기
Django에서 앱을 생성할 때는 manage.py를 이용합니다.
python manage.py startapp {생성할 App 이름}
#예시
python manage.py startapp foods
03. Django App 구조
{app_name}/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
3.1 admin.py
각각의 앱을 Django의 관리자 기능과 연결하거나 관리자 기능에 대해 설정을 하는 파일입니다.
3.2 apps.py
각각의 App마다 추가적인 기능 및 설정을 넣어 주기 위한 파일입니다. 이번 토픽에서는 다루지 않는 파일이고 Django에 대한 이해가 있어야 사용할 수 있기 때문에 지금은 자세하게 설명하지 않겠습니다.
만약 조금 더 알고 싶으신 분은 아래의 공식 문서를 참조하세요.
https://docs.djangoproject.com/en/2.2/ref/applications
3.3 migrations 디렉토리
Django 앱의 데이터 구조에 대한 변경 사항인 migration 파일이 저장되는 디렉토리 입니다. migration에 대해서는 뒤에서 Django의 모델(Model)을 설명할 때 자세하게 다룹니다.
3.4 models.py
앱에서 사용하는 데이터 구조를 정의하고 데이터베이스와의 소통을 담당하는 파일입니다. migration과 마찬가지로 Django의 모델(Model)을 설명할 때 자세하게 다룹니다.
3.5 tests.py
앱에 대한 테스트 코드를 작성하는 파일입니다. 테스트는 말 그대로 Django 프로젝트의 모든 기능이 의도한 대로 잘 동작하는지 체크하는 것을 말합니다. 그리고 이런 테스트는 작은 함수 하나를 체크하는 테스트부터 여러 함수의 상호작용이 있는 전반적인 큰 로직을 테스트하는 것까지 다양한 크기의 테스트가 있습니다. 그렇기 때문에 프로젝트를 모두 완성한 다음 테스트를 준비하는 것이 아니라 앱 별로 작은 단위의 자동화된 테스트를 미리 만들어서 프로젝트 전체에 대한 테스트가 효율적으로 이루어질 수 있도록 작성하는 것이 좋습니다. 이러한 테스트에 대한 내용은 별도로 다뤄 볼 예정입니다.
3.6 views.py
앱에서 어떤 기능을 할지에 대한 메인 로직을 담당하는 파일입니다. 뒤에서 Django의 뷰(View)에 대해 설명할 때 자세하게 다룹니다.
출처 코드잇
'BackEnd > Django로 웹 개발 시작하기' 카테고리의 다른 글
[Django 웹 개발 시작] 메인페이지가 에러페이지? (0) | 2023.03.14 |
---|---|
[Django 웹 개발 시작] URL 작성이 헷갈려요! (0) | 2023.03.14 |
[Django 웹 개발 시작] URL 연결하기 (0) | 2023.03.14 |
[Django 웹 개발 시작] 레스토랑 프로젝트 #01 프로젝트 생성 (0) | 2023.03.13 |
[Django 웹 개발 시작] Django 프로젝트 구조 정리 (0) | 2023.03.13 |