특강

[Django 1일차] 프로젝트 세팅 튜토리얼 정리 3/4 (250512)

Chansman 2025. 5. 12. 15:23

🚀 Django 숏 URL 프로젝트 세팅 튜토리얼 정리

이 튜토리얼은 Django 프레임워크를 사용하여 웹 애플리케이션의 기초 구조를 세팅하는 과정을 상세히 안내합니다. 프로젝트 생성, 앱 구성, 서버 실행, IP/포트의 개념까지 단계별로 설명하며, 코드와 명령어의 흐름도 함께 이해할 수 있도록 구성했습니다.


1️⃣ 장고 프로젝트 세팅 개요

  • Django 설치 후, django-admin 명령어를 통해 프로젝트 생성 가능
  • 명령어:
  • django-admin startproject [프로젝트명] [경로]
  • 프로젝트명: 장고 내부 구성 디렉토리 이름으로 사용됨
  • 경로: 선택적으로 지정 가능, 현재 위치는 . 으로 대체 가능

예시:

mkdir short_url
cd short_url
django-admin startproject config .

이 구조로 만들면 다음과 같이 파일이 생성됨:

short_url/
├── manage.py
└── config/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    ├── wsgi.py
    └── asgi.py

💡 config는 환경설정 디렉토리 역할을 하므로 많은 개발자들이 이름을 'config'로 지정합니다.


2️⃣ 프로젝트 디렉토리 구조와 이름 짓기

  • Django는 프로젝트 생성 시, 내부 디렉토리명을 프로젝트명과 동일하게 지정함
  • 이로 인해 혼란을 피하기 위해 config, settings, server 등의 이름 사용이 일반적
  • 예시:
  • django-admin startproject config short_url

→ short_url/ 내부에 config/, manage.py가 위치함


3️⃣ Django 앱(App) 만들기 및 역할 이해

  • Django는 기능 단위를 앱(App) 으로 분리하여 관리함
  • 하나의 프로젝트 안에 여러 앱을 만들 수 있으며, 각 앱은 특정 기능(예: 사용자, 게시판 등)을 담당

📦 앱 생성 명령어

python manage.py startapp user
python manage.py startapp shortener

생성된 앱 폴더 구조:

user/
├── models.py
├── views.py
├── urls.py (직접 생성)
└── apps.py

📌 앱을 settings.py에 등록

# config/settings.py
INSTALLED_APPS = [
    ...
    'user.apps.UserConfig',
    'shortener.apps.ShortenerConfig',
]

4️⃣ 장고 서버 실행 및 IP/포트 개념

🔹 서버 실행

python manage.py runserver

→ 기본적으로 127.0.0.1:8000 에서 실행됨

🔹 포트 변경

python manage.py runserver 7777

🔹 IP & 포트란?

  • IP 주소: 컴퓨터의 인터넷 주소
  • 포트: 하나의 컴퓨터에서 여러 프로그램을 분리해주는 통신 창구 (ex. 8000은 Django 개발 서버 전용)
  • 127.0.0.1: 루프백(Loopback) 주소, 자기 자신
  • localhost: 127.0.0.1 과 동일한 의미로 사용

예시:

127.0.0.1:8000  → 내 컴퓨터의 Django 서버 실행 화면 확인 가능

5️⃣ 루프백(127.0.0.1)과 포트 이해

  • 127.0.0.1은 자기 자신을 의미하는 고정된 IP 주소
  • 포트는 1~65535번까지 사용 가능하며, 일부 포트는 예약됨:
    • HTTP: 80
    • HTTPS: 443
    • MySQL: 3306
    • PostgreSQL: 5432
    • 개발서버 권장 포트: 8000, 8080, 8888 등

❌ 잘못된 예시:

python manage.py runserver 77777  # ❌ 65535 초과 → 에러 발생

6️⃣ Django manage.py의 역할

manage.py는 Django 명령어를 실행하기 위한 엔트리 포인트입니다.

자주 쓰는 명령어

  • 서버 실행: python manage.py runserver
  • 앱 생성: python manage.py startapp [앱명]
  • 마이그레이션: makemigrations, migrate
  • 관리자 계정 생성: createsuperuser

도움말 보기

python manage.py runserver --help

7️⃣ 실전 앱 구성 전략

  • Django에서는 앱이 프로젝트의 기능 단위임
  • 예:
    • user: 회원가입, 로그인, 인증
    • shortener: URL 단축 기능 담당

✔️ 개발자가 원하는 기준으로 앱 구성 가능

  • 하나의 앱에 모든 기능을 몰아넣는 것도 가능하지만 권장되지 않음
  • 역할별로 나누는 것이 유지보수에 유리함

✅ 최종 구성 예시 (short_url 기준)

short_url/
├── manage.py
├── config/
│   ├── settings.py
│   ├── urls.py
├── user/
│   ├── models.py
│   └── apps.py
├── shortener/
│   ├── models.py
│   └── apps.py

이 정리를 통해 Django의 기초 구조, 명령어 사용법, 앱 구성, 서버 실행 방식, IP와 포트 개념 등 실무에 필요한 전반적인 흐름을 파악할 수 있습니다.