Django

    [Django] app 자동 추가

    Django로 개발을 진행하다보면 자연스럽게 생성한 app을 settings.py 하위에 INSTALLED_APPS 안에 등록하게 됩니다. 등록되는 앱의 수가 적다면 하나씩 등록해도 되지만 앱 개수가 많아진다면 어떤 앱이 등록되었는지 어떤 앱이 등록되지 않았는지 정리가 힘들게 됩니다. 이 문제를 해결하기 위해 프로젝트에 등록되는 앱들을 하나의 폴더에 넣고 해당 폴더 안의 모든 앱들을 자동으로 INSTALLED_APPS에 등록되도록 합니다. 프로젝트 생성 및 구조 Django-admin startproject auto_app_test 기본적으로 프로젝트 명으로 메인 폴더가 생성되고 하위에 settings.py가 존재합니다. 기본 app 생성 및 추가 cd auto_app_test python manage...

    [Django] 개발을 위한 가상 환경 세팅

    python3을 이용하여 한 가지 프로젝트만 진행한다면 전역에 패키지를 설치해도 무방하지만 프로젝트별로 사용하는 패키지 버전이나 종류가 달라지는 경우가 흔합니다. 각 프로젝트 별 가상환경을 생성하여 프로젝트별 불필요한 패키지가 설치 되지 않도록 합니다. 가상 환경을 생성하는 base python은 프로젝트별로 버전이 같아야 하므로 명시해주는 것이 좋습니다. 가상환경 생성 python3 -m venv 저는 맥OS를 사용중이라 python2, python3가 기본적으로 모두 설치되어 있어서 python3로 입력하였습니다. 생성되는 가상환경은 운영체제 별로 달라서 window에서 생성한 가상환경이 mac에서 호환되지 않는 경우도 있습니다. 가상환경 실행 *Mac source .//bin/activate *Wi..

    [Django]민첩한 개발을 위한 Django 마이그레이션 전략

    [Django]민첩한 개발을 위한 Django 마이그레이션 전략

    진행 배경 기존에 스프링 + mybatis 조합으로 웹 개발을 배운 상태로 새롭게 진행하는 프로젝트에서는 장고를 사용해야 했습니다. 장고의 orm과 마이그레이션 기능은 넘어야 할 산으로 다가왔습니다. 아직 JPA를 접하지 못한 상황에서 django ORM을 먼저 접했기 때문에 빠른 개발을 위해 복잡한 마이그레이션을 포기하고 설계 시 몇 가지 선택을 했습니다. 기존에 개발을 진행했던 단계는 요구사항 분석 -> 데이터베이스 설계 -> 코드개발 -> 테스트 -> 배포 순으로 진행 하였는데 django를 처음보고 느낀 것은 코드개발 -> 데이터 베이스 설계로 기존 개발 스텝이 꼬이는 느낌을 받았습니다. 아직 기존 개발단계를 버리지 못한 단계에서 갑자기 순서를 바꿔 진행 할 수 없었기 때문에 기존처럼 DB설계 후..