태코놀로지

실전 장고 프로젝트 개발 과정 본문

Python3/Django

실전 장고 프로젝트 개발 과정

태코놀로지 2016. 12. 22. 02:08

실전 프로젝트 개발 과정


 이전 시간에는 Django(이하 장고) 프레임워크를 활용한 개발 패턴에 대해서 정리했었다. 이번에는 김석훈 저자의 '장고를 활용한 쉽고 빠른 웹 개발 파이썬 웹 프로그래밍'이라는 서적에서 다루고 있는 기본적인 웹 애플리케이션 제작을 직접 해보고, 내용에 대해서 나름대로 정리해본다. 책에서는 본격적인 애플리케이션 개발에 앞서서 디자인을 먼저 수행하는데, 화면(UI) - 테이블(데이터베이스) - 로직 - URL 순서에 따라서 설계를 진행한다. 그리고 이전 포스팅에서 정리했던 것과 마찬가지로 개발 순서를 가이드하고 있다.


프로젝트 생성 - 모델 작성 - URL 작성 - 템플릿 작성 - 뷰 작성


프로젝트 생성 - 프로젝트 및 앱 개발에 필요한 디렉터리와 파일을 생성

모델 작성 - 테이블 관련 사항을 개발, modelsspy, admin.py

URL 작성 - URL 및 뷰 매핑 관계를 정의 urls.py

템플릿 작성 - templates 디렉터리 하위의 html 파일 작성

뷰 작성 - 제어 흐름 및 로직 개발 views.py


 실제적인 개발을 진행해보면 위 다섯가지 단계보다 조금 더 세세한 개발 패턴을 정의할 수 있다. 내 나름대로의 정리한 장고를 활용한 웹 개발은 아래의 사이클을 갖고있는 것 같다.


가상환경 설정(virtualenv) - 프로젝트 생성(startproject) - 프로젝트 설정(settings.py) - 기본 테이블 생성(migrate) - 수퍼유저 생성(createsuperuser) - App 생성(startapp)과 등록(settings.py) - 모델 작성(model.py) - Admin 사이트 반영(admin.py) - 테이블(DB) 반영(makemigrations, migrate) 및 확인 - URL 작성(urls.py) - 로직 작성(view.py) - 화면(UI) 작성(templates) 


 프로세스에 대한 전반적인 얘기를 해보자면, 맨 처음 장고를 활용한 웹 개발을 진행할 때는 위의 모든 과정을 수행해야한다. 그러나 장고 프로젝트는 내부에 다수의 앱을 보유할 수 있기 때문에 각 앱을 작성할 때에는 파란색 과정만 수행하면 된다. 추가적으로 맨 처음 가상환경 설정의 경우 효율적인 파이썬 개발환경을 구축하기 위한 과정인데 필수적인 부분은 아니다. 그러나 파이썬 개발 서적에서 가상 환경에 대해서는 적극 권장하고 있기 때문에 이에 대한 내용을 따로 정리했다. virtualenv에 대해서는 다음 포스팅을 참조하기 바란다. [virtualenv를 활용한 독립개발 환경 구축



 이어서 가상환경 설정 단계를 제외한 각 단계에 대해서 세세하게 정리해본다.

 프로젝트 생성(startproject) - 앞으로 진행할 프로젝트의 뼈대를 구성하는 것이다. 아래의 명령어 한 줄로써 프로젝트에 뼈대가 생성되는데, 동일한 디렉터리가 두 개가 상하 관계로 생성된다. 동일한 이름으로 인해 상위 디렉터리의 이름은 변경을 권장한다.

# django-admin.py startproject `projectname`


 프로젝트 설정(settings.py) - 이전 포스팅에서 알아봤던 settings.py 파일에 개발에 필요한 프로젝트 초기 설정을 해야한다. 크게는 DATABASES, TEMPLATES, STATIC, TIME_ZONE, MEDIA, LANGUAGE_CODE 정도가 되겠다. 이들 중 타임존이나 언어 설정의 경우에는 필수는 아니다. 장고에서 정적 파일은 아래와 같이 두 종류로 구분이 된다.

STATIC: 개발 리소스 정적 파일, MEDIA: 유저로 업로드한 모든 파일


 기본 테이블 설정(migrate) - 아직 테이블 작성을 하지 않았지만, 장고는 디폴트로 사용자와 사용자의 권한 그룹 테이블을 갖는다. 따라서 기존에 어떤 테이블을 작성하지 않았어도, 아래의 명령어를 통해 사용자 및 권한 그룹에 대한 테이블을 생성해야 한다.

# python3 manage.py migrate


 수퍼유저 생성(createsuperuser) - 관리자 권한을 갖는 슈퍼 유저를 생성한다.

# python3 manage.py createsuperuser


 App 생성(startapp)과 등록(settings.py) - 하나의 장고 프로젝트는 다수의 앱으로 구성되는데, 아래의 명령어를 통해 앱을 생성할 수 있다. 그리고 만들어진 앱 정보를 settings.py에 입력함으로써 프로젝트에 앱이 등록된다.

# python3 manage.py startapp `app name`


 김석훈 저자의 '장고를 활용한 쉽고 빠른 웹 개발 파이썬 웹 프로그래밍'이라는 서적에서 가장 기본적으로 제작해보는 Bookmark 앱에 대한 코드는 [Github 저장소]에 업로드했다. 또한 코드에 대한 상세한 내용은 주석을 통해 설명한다.

Comments