
안녕하세요! 👋 오늘은 Python의 대표적인 웹 프레임워크인 Django를 시작하는 방법에 대해 알아보겠습니다. Django를 처음 접하시는 분들도 쉽게 따라할 수 있도록 자세히 설명해드릴게요! 😊
1️⃣ Django란 무엇인가요? 🤔
Django(장고)는 Python으로 작성된 무료 오픈소스 웹 애플리케이션 프레임워크입니다. “빠른 개발”과 “깔끔하고 실용적인 디자인”을 목표로 만들어졌어요.
Django의 주요 특징 ✨
MTV 패턴 📐
Django는 MTV(Model-Template-View) 패턴을 사용합니다. 이는 다른 프레임워크의 MVC 패턴과 유사한데요:
- Model: 데이터베이스와 상호작용하는 부분 💾
- Template: 사용자에게 보여지는 화면 (HTML) 🎨
- View: 비즈니스 로직을 처리하는 부분 ⚙️
배터리 포함(Batteries Included) 🔋
Django는 웹 개발에 필요한 거의 모든 기능을 기본적으로 제공합니다:
- 강력한 ORM(Object-Relational Mapping) 시스템
- 사용자 인증 시스템 🔐
- 관리자 페이지(Admin Page) 자동 생성 👨💼
- 폼(Form) 처리 📝
- 세션 관리
- 보안 기능 (CSRF, XSS, SQL Injection 방지) 🛡️
확장성과 안정성 💪
Instagram, Pinterest, NASA 등 많은 대형 서비스들이 Django를 사용하고 있어요. 이는 Django가 얼마나 안정적이고 확장 가능한지를 증명합니다!
Django를 선택하는 이유 🎯
- 빠른 개발 속도: 반복적인 작업을 자동화하여 개발 시간을 단축시켜줍니다 ⚡
- DRY 원칙: Don’t Repeat Yourself! 코드 중복을 최소화합니다 ♻️
- 풍부한 문서: 공식 문서가 매우 잘 정리되어 있어요 📚
- 활발한 커뮤니티: 전 세계적으로 많은 개발자들이 사용하고 있습니다 🌍
- 보안: 보안 관련 많은 기능들이 기본 내장되어 있어 안전합니다 🔒
2️⃣ Django 설치하기 📦
Django를 시작하기 위해서는 먼저 Python이 설치되어 있어야 합니다. Python 3.8 이상 버전을 권장합니다! 🐍
Step 1: Python 설치 확인 ✅
터미널(또는 명령 프롬프트)을 열고 다음 명령어로 Python이 설치되어 있는지 확인해보세요:
python --version |
Python 버전이 표시되면 정상적으로 설치된 것입니다! 🎉
Step 2: 가상환경 생성하기 🏠
가상환경을 사용하면 프로젝트마다 독립적인 Python 환경을 구성할 수 있어요. 이렇게 하면 프로젝트 간 패키지 충돌을 방지할 수 있습니다!
가상환경 생성:
# Windows |
여기서 myenv는 가상환경의 이름이에요. 원하는 이름으로 변경해도 됩니다! 😊
가상환경 활성화:
# Windows |
가상환경이 활성화되면 터미널 프롬프트 앞에 (myenv)가 표시됩니다! ✨
Step 3: Django 설치 🎁
이제 pip를 사용하여 Django를 설치해볼까요?
pip install django |
최신 버전의 Django가 자동으로 설치됩니다! 🚀
특정 버전 설치하기:
# 특정 버전 설치 |
Step 4: 설치 확인 🔍
Django가 제대로 설치되었는지 확인해봅시다:
django-admin --version |
버전 번호가 표시되면 성공적으로 설치된 것입니다! 🎊
추가 패키지 설치 (선택사항) 📚
Django 개발을 더 편하게 하기 위한 추가 패키지들도 설치할 수 있어요:
# 개발 서버 자동 재시작 (이미 Django에 포함됨) |
필요한 패키지만 선택해서 설치하시면 됩니다! 😉
3️⃣ Django 프로젝트 생성하기 🏗️
자, 이제 본격적으로 Django 프로젝트를 만들어볼 시간입니다! 두근두근! 💓
Step 1: 프로젝트 생성 🎬
원하는 디렉토리로 이동한 후, 다음 명령어로 새 프로젝트를 생성합니다:
django-admin startproject myproject |
myproject는 프로젝트 이름이에요. 원하는 이름으로 변경 가능합니다! (예: blog, ecommerce, portfolio 등)
이 명령어를 실행하면 다음과 같은 구조의 프로젝트가 생성됩니다:
myproject/ |
각 파일의 역할: 📋
manage.py: Django 프로젝트를 관리하는 커맨드라인 유틸리티 🛠️settings.py: 프로젝트의 모든 설정이 담긴 파일 ⚙️urls.py: URL 라우팅을 관리하는 파일 🗺️wsgi.py: 프로덕션 서버 배포 시 사용 🚀asgi.py: 비동기 서버 배포 시 사용 ⚡
Step 2: 프로젝트 디렉토리로 이동 🚶♂️
cd myproject |
Step 3: 데이터베이스 마이그레이션 🗄️
Django는 기본적으로 SQLite 데이터베이스를 사용합니다. 초기 데이터베이스 테이블을 생성해봅시다:
python manage.py migrate |
여러 줄의 메시지가 나타나면서 데이터베이스 테이블들이 생성됩니다! ✅
Step 4: 개발 서버 실행 🎮
드디어 Django 서버를 실행할 시간입니다!
python manage.py runserver |
터미널에 다음과 같은 메시지가 표시됩니다:
Starting development server at http://127.0.0.1:8000/ |
이제 브라우저를 열고 http://127.0.0.1:8000/ 또는 http://localhost:8000/에 접속해보세요! 🌐
Django의 환영 페이지(로켓 그림 🚀)가 보이면 성공입니다! 축하합니다! 🎉🎊
다른 포트로 실행하기:
python manage.py runserver 8080 |
Step 5: 관리자 계정 생성 👤
Django의 강력한 기능 중 하나인 관리자 페이지를 사용하기 위해 슈퍼유저를 생성해봅시다:
python manage.py createsuperuser |
사용자 이름, 이메일, 비밀번호를 입력하라는 메시지가 나타납니다. 차례대로 입력해주세요! 📝
생성 후 서버를 실행하고 http://127.0.0.1:8000/admin/에 접속하면 로그인 페이지를 볼 수 있습니다! 🔐
Step 6: 앱(App) 생성하기 📱
Django에서는 기능별로 ‘앱’을 만들어 관리합니다. 예를 들어, 블로그 프로젝트라면 ‘posts’, ‘comments’, ‘users’ 같은 앱들로 구성할 수 있어요!
새 앱을 생성해봅시다:
python manage.py startapp myapp |
myapp이라는 이름의 새로운 앱이 생성됩니다! 다음과 같은 구조가 만들어져요:
myapp/ |
각 파일의 역할: 📋
models.py: 데이터 모델 정의 🗃️views.py: 뷰 함수/클래스 정의 🎯admin.py: 관리자 페이지 설정 👨💼tests.py: 테스트 코드 작성 🧪migrations/: 데이터베이스 마이그레이션 파일 저장 📦
Step 7: 앱 등록하기 📌
생성한 앱을 프로젝트에 등록해야 Django가 인식할 수 있어요!
myproject/settings.py 파일을 열고 INSTALLED_APPS 리스트에 앱을 추가합니다:
INSTALLED_APPS = [ |
간단한 View 만들어보기 🎨
myapp/views.py 파일을 열고 다음 코드를 작성해봅시다:
from django.http import HttpResponse |
myapp/urls.py 파일을 새로 생성하고:
from django.urls import path |
메인 myproject/urls.py 파일에 앱의 URL을 연결합니다:
from django.contrib import admin |
서버를 실행하고 http://127.0.0.1:8000/hello/에 접속하면 환영 메시지를 볼 수 있습니다! 🎊
마치며 🎓
축하합니다! 🎉 여러분은 이제 Django의 기본을 모두 마스터했어요!
오늘 배운 내용을 정리하면:
- ✅ Django가 무엇인지, 왜 사용하는지 이해했어요
- ✅ Django를 설치하고 가상환경을 구성했어요
- ✅ 새로운 프로젝트와 앱을 생성했어요
- ✅ 간단한 뷰를 만들어 실행해봤어요
이제 여러분은 Django로 멋진 웹 애플리케이션을 만들 준비가 되었습니다! 💪
Django는 정말 강력하고 유용한 프레임워크예요. 공식 문서(https://docs.djangoproject.com)를 참고하면서 더 많은 기능들을 탐험해보세요! 📚
다음 포스팅에서는 Django 모델과 데이터베이스 연동에 대해 알아보겠습니다! 기대해주세요! 😊
Happy Coding! 💻✨