본문 바로가기

Django

[Django] 장고 전체적인 개요- settings.py / models.py / urls.py / admin / runserver

1. settings.py 주요 사항

 

● 데이터베이스 설정: 디폴트로 SQLite3 데이터베이스 엔진을 사용하는 것으로 지정합니다.

● 애플리케이션 등록: 프로젝트에 포함되는 애플리케이션은 모두 설정 파일에 등록해야 합니다.

● 템플릭 항목 설정: TEMPLATES 항목으로 지정합니다.

● 정적 파일 항목 설정: STATIC_URL 등 관련 항목을 지정합니다.

● 타임존 지정: 최초에는 세계표준시(UTC)로 설정되어 있는데 한국 시간으로 변경해야 합니다.

 

settings.py 파일은 이 외에도 베이스(루트) 디렉터리를 포함한 각종 디렉터리의 위치, 로그 형식, 디버그 모드, 보안 관련 사항 등 프로젝트의 전반적인 사항들을 설정해주는 곳입니다.

 

2. models.py 주요 사항

장고는 데이터베이스 처리를 위해 ORM(Object Relational Mapping)기법을 사용합니다. 즉, 테이블을 클래스 객체에 대해 수정하면, 장고가 내부적으로 SQL 처리를 하여 데이터베이스에 반영해주는 방식입니다. 

 

장고에서는 테이블을 하나의 클래스로 정의하고, 테이블의 컬럼은 클래스의 변수로 매핑합니다. 

 

테이블의 신규 생성, 테이블의 정의 변경 등 models.py 파일에서 데이터베이스 변경 사항이 발생하면, 이를 데이터베이스에 실제로 반영해주는 작업을 해야 하는데 이것이 마이그레이션(migrations)입니다. 

 

마이그레이션 파일들이 존재하는데 장고는 이 마이그레이션 정보를 추출하고, 이를 이용해 변경 사항을 실제 데이터베이스에 반영하는 makemigrations 및 migrate 명령을 제공합니다.

 

3. urls.py 주요 사항 

프로젝트 URL을 정의하는 프로젝트 URL과 앱마다 정의하는 앱 URL 2계층으로 나눠서 코딩하는 방식이 있고 프로젝트 URL 파일에 모두 정의하는 방식도 있습니다. 이 중 첫번째 방식이 변경도 쉽고 확장도 용이하기 때문에 추천합니다. 

 

4. views.py 주요 사항

장고에서는 뷰 로직을 함수로 코딩할지 클래스로 코딩할지에 따라, 함수형 뷰와 클래스형 뷰로 구분합니다.

클래스형 뷰를 사용하는 것이 장고가 제공하는 제네릭 뷰를 사용할 수도 있고 재활용 및 확장성 측면에서 유리하다고 생각되어 추천합니다. 하지만 보통 하나의 프로젝트에서 둘 다 사용하는 경우가 많습니다.  

 

5. Admin 사이트

Admin 사이트에서는 SQL 없이 테이블의 데이터의 입력, 수정, 삭제 등을 할 수 있고 내용을 조회할 수 있습니다. 

 

6. 개발용 웹서버 - runserver

만든 프로젝트를 실제 고객에게 오픈하는 상용화를 고려한다면, runserver 대신 Apache 또는 Nginx 등의 상용 웹 서버를 사용해야 합니다. 개발용으로 제공되는 runserver는 상용 웹 서버에 비해 처리 능력과 보안성이 떨어지기 때문입니다.

'Django' 카테고리의 다른 글

[Django] SlugField  (1) 2022.01.22
[BookmarkApp] models.py 작성  (0) 2022.01.13
[Django] 명령어  (0) 2022.01.13
[Django] 프로젝트 설정 파일 변경  (0) 2022.01.13
[Django] 카카오 소셜 로그인 구현  (0) 2021.10.12