장고의 프로젝트란 하나의 웹 에플리케이샨 그 자체를 의미한다 먼저 터미널창에 다음과 같이 입력하면 장고의 프로젝트가 생성된다 (마침표 꼭 주의 할 것!)
django-admin startproject (프로젝트 이름) .
myproject/
│
├── manage.py # 프로젝트 관리 명령어 실행 파일
│
└── myproject/ # 프로젝트 패키지
├── init.py # 패키지 초기화 파일
├── settings.py # 프로젝트 설정 파일
├── urls.py # URL 라우팅 파일
├── asgi.py # ASGI 설정 파일
└── wsgi.py # WSGI 설정 파일
👉 admin.py: 명령어에 대한 정보가 담겨있고 실행해주는 파일이다.
👉 setting.py: 장고의 환경설정 정보가 담겨있는 파일이다
👉 urls.py: 라우팅 정보가 들어있는 파일이다
👉 asgi.py: asgi 서비스를 사용할 때 진입점
👉 wsgi.py: wsgi 서비스를 사용할 때 진입점
장고의 앱은 프로젝트 내부의 모듈이다. 터미널 창에 해당 명령어를 입력하면 앱을 생성할 수 있다.
python manage.py startapp (앱 이름)
myapp/
│
├── migrations/ # 데이터베이스 마이그레이션 파일을 저장하는 디렉토리
│ └── init.py # 패키지 초기화 파일
│
├── init.py # 패키지 초기화 파일
├── admin.py # 관리자 사이트 설정
├── apps.py # 앱 설정
├── models.py # 데이터베이스 모델 정의
├── tests.py # 테스트 코드
└── views.py # 뷰 함수 및 클래스
👉 init.py: 데이터 모델의 뱐경사할 기록 파이썬의 모듈을 찾는 기본파일.
👉 admin.py: 관리자 페이지를 자동으로 생성해주는 파일이다. (장고의 장점 중 하나)
👉 apps.py: 앱의 설정파일이다.
👉 models.py 데이터 베이스의 모델을 정의할 수 있고 모델의 로직을 구현할 수 있다.
👉 views.py 화면에 랜더링을 하기 위한 데이터를 비지니스 로직으로 처리하는 파일이다.
👉 tests.py 테스트 코드를 작성하는 파일이다.

프로젝트와 앱을 설치했으면 다음과 같은 명령어를 사용하여 장고 서버를 실행시킬 수 있다
python manage.py runserver (포트 번호)
views는 화면에 보여주기 위한 데이터를 비지니스 로직으로 처리하는 파일이다. views에서 로직을 구현하는 방법에는 두가지 방법이 있는데 FBV와 CBV가 있다
👉 FBV: 함수로 뷰를 작성하는 방식이다
👉 CBV: 클래스로 뷰를 정의하는 방식이다
결론은 단순하고 빠르게 구현할 수 있는 뷰는 FBV로 처리하는 것이 좋고 재사용성과 확장성이 필요한 뷰는 CBV로 작성하여 유지보수를 용이하게 할 수 있다.
urls는 사용자가 특정 url로 요청하면 그에 맞는 views의 로직을 보여주는 역할을 한다. urls에서는 path_converters 함수를 이용해서 동적 변수를 views에 전달하는 역할을 할 수 있다.
👉 str: 문자열을 매칭한다.
👉 int: 정수를 매칭한다.
👉 slug: 슬러그 형식(알파벳, 숫자, 하이픈, 밑줄)의 문자열을 매칭한다.
👉 uuid: uuid 형식의 문자를 매칭한다.
👉 path: 모든 형태의 문자열을 매칭한다.
❗❗❗여기서 매칭한다는 표현은 url에 특정 값을 입력하면 지정된 path_converter 타입과 일치하는지 검증한다는 의미이다.
Django 프로젝트와 앱 생성 방법, 각 구성 요소의 역할, 서버 실행 방법, 그리고 Views와 URLs의 기능에 대해 알아보았다. 각각의 기능을 이해하는 것이 귀찮을 수는 있지만 장고로 개발을 하기 위해서는 꼭 필요한 부분이기에 알아야한다.