Django 4

Django 3.0 | 프로젝트 시작하기

이 포스팅에서는 장고 3.0와 python 3.8.x을 이용하여 간단한 앱을 구현할 것입니다. 그리고 본격적으로 웹 어플리케이션을 만들기 전에 프로젝트 스켈레톤에 대해 다룰 예정입니다. 가상환경(Virtual Environment)구축하기. 프로젝트 구조 구성하고 첫번째 앱 시작하기. 환경별로 settings 분리하기. 민감한 설정정보들 관리하기. STATIC 파일 관리하기. 가상환경(Virtual Environment) 구축하기. 로컬에 python 3.8.x가 설치되어 있다고 가정하고 시작하겠습니다. 만약 python 3.8.x가 설치되어 있지 않다면 여기를 참조하여 설치를 진행해 주세요. 에제의 root directory명은 learn-django3 입니다. 해당 디렉토리로 이동하여 아래 커맨드를 ..

Python/Django 2020.09.29

Django 2.2 | 유저 모델 커스텀하기

Custom User Model 장고의 공식 문서에서는 user model을 프로젝트에 맞게 커스텀하기를 권장하고 있다. 이유는 user model의 내장된 필드들이 필요하지 않을 수도 있고, 내장되지 않는 필드들이 필요할 수도 있기 때문이다. 프로젝트 개발 중간 단계에 user model을 커스텀하려고 하면 프로젝트가 장고와 내부적으로 연결되어 있기 때문에 전환이 어려울 수 있다. 그렇기에 프로젝트 시작 단계에서 user model을 커스텀하여 개발하는게 좋다. user model 커스텀은 장고 v1.5에 큰 변화를 이루었다. v1.5 이전의 권장 방법은 Profile model에 OneToOne 으로 관계를 맺는 것이었고, 이는 헷갈리기 쉬운 구조였다. 레거시한 장고 프로젝트를 보면 이런 코드를 볼 ..

Python/Django 2020.09.29

Django 2.2 | 프로젝트 디렉토리 구조

프로젝트 레이아웃 이번 포스팅에서는 프로젝트의 디렉토리 구조인 레이아웃에 대해 말하려 한다. 프로젝트 레이아웃은 장고로 개발된 많은 프로젝트마다 그리고 장고 개발자들 사이에서도 의견이 분분하다. 무엇이 모범사례이고, 정답인지는 정확히 모르겠지만 개인적으로 적지 않은 장고 프로젝트를 진행하면서 익숙해진 나름의 프로젝트 레이아웃에 대해 말하려 한다. 정답은 아니기에 참고만 해주길 바란다. 바로 앞에 작성한 포스팅의 startproject와 startapp을 실행하면 기본적인 레이아웃은 아래와 같을 것이다. learn.django coninggu_project/ # 프로젝트 디렉토리 __init__.py settings.py urls.py wsgi.py coninggu/ # 앱 디렉토리 __init__.py ..

Python/Django 2020.09.29

Django 2.2 | Hello World 그리고 dockerize(도커화)

Docker 현대적인 프로그래밍에서 모든 기술의 발전에도 불구하고 모든 개발자의 로컬환경을 똑같이 구성하기에는 여전히 어려운 과제 중 하나이다. 팀의 협업간에는 그 문제가 더욱 커진다. 도커는 최신 기술이지만 앞서 말한 문제를 해결한다는 이유로 프로덕션-레벨에서까지 많이 사용되고 있다. 도커가 나오기 전에는 팀에 새로운 개발자가 투입되면 README 파일을 공유하여 그 파일에 적힌 순서대로 로컬 환경을 구성하였지만, 도커가 나온 이후에는 Dockerfile과 docker-compose.yml 파일을 공유하여 실행하는 것만으로 다른 팀원들과 동일한 로컬 환경을 아주 간단히 구성할 수 있게 되었다. 도커의 핵심 아이디어는 대부분의 컴퓨터가 리눅스 OS에 의존한다는 것이고, 만약 이 리눅스-OS-레벨에서 가상..

Python/Django 2020.09.29