2019년 2월 7일 목요일

#3 Django 장고프로젝트의 구성


장고 프로젝트의 구성


💡  참고하면 좋을 프로젝트 템플릿

     https://github.com/pydanny/cookiecutter-django

     또다른 쿠키커터 템플릿 : https://www.djangopackages.com/grids/g/coockiecutters


     (장고의 기본 프로젝트는 튜토리얼용으로는 유용하지만 실제 프로젝트에는 그닥 유용하지않다)




💬 프로젝트의 구성


    <repository_root>/

        <django_project_root>/

            <configuration_root>/




    <repository_root>/ : 최상위 절대 루트, 배포에 필요한 다른파일등 중요한 내용 위치
        (어떤 개발자들은 django_project_root 를 repo로 쓰기도 한다)


        .gitignore : 깃이 처리하지 않을 파일과 디렉터리

        README.rst : 개발자를 위한 프로젝트 문서

        Makefile : 간단한 배포작업내용, 매크로를 포함한 파일

        requirements.txt : 프로젝트에 이용되는 파이썬 패키지 목록




    <django_project_root>/ : 모든 파이썬 코드는 이 디렉토리 이하에 위치한다
     (django-admin.py startproject 명령어를 repo에서 실행하면 project 겸 repo가 된다)

        config : 프로젝트 전반에 걸친 settings 파일, urls.py, wsgi.py 모듈들이 자리잡는 곳이다

        manage.py : manage.py가 이곳에 위치하면 수정하지 않는것을 권장

        media/ : media파일이 올라가는 장소

        static : CSS, JS,image 등 정적파일을 위치시키는 곳
        (장고 공식문서의 이름인데 assets 또는 다른이름으로 바꿀경우 STATICFILES_DIRS세팅 업데이트)

        templates : 시스템 통합 템플릿 파일 저장장소
        



    <configuration_root> : settings 모듈과 기본 URL config 가 저장되는 장소이다

        유효한 패키지 형태여야한다(__init__.py가 존재해야한다는 의미)




💬 가상환경


    가상환경에서 어떤 버전의 라이브러리가 쓰였는지 확인하려면
    pip freeze --local 명령어를 사용하자

    가상환경까지 repo에 넣어 관리할 필요는 없다

    프로젝트에서 이용하는 패키지는 requirements.txt에 들어있고 가상환경안의 파일은 건드리지 않기 때문이다




💬 Startproject 살펴보기


    startproject가 생성해주는 구성을 유지하며 템플릿을 구성하면 표준의 역할은 충실히 수행하지만

    현업에서 쓰이는 템플릿에 맞추고 유연한 확장성과 편의를 추구하기 위해서는               cookiecutter-django로 제작을 해주는게 좋다




💬 Cookiecutter


    쿠키커터는 질문을 통해 각종 설정 변수의 내용을 물어본다

    입력된 값을 기반으로 프로젝트 표준 코드구성에 필요한 파일 제작
    (settings, requirements, 초기문서, 초기 테스트환경)


    cookiecutter https://github.com/pydanny/cookiecutter-django

    명령어를 통해 쿠키커터를 포크하자



    (또 다른 템플릿 https://github.com/imkevinxu/django-kevin)



핵심은 어떤 템플릿을 사용하더라도

반드시 명확하게 문서로 남겨서 알수있게 하는것이다.


출처 : two scoops of django

댓글 없음:

댓글 쓰기

가장 많이 본 글