Django 입문 가이드: 첫 번째 웹 애플리케이션 빠르게 구축하기

2/19/2026
5 min read
# Django 입문 가이드: 첫 번째 웹 애플리케이션 빠르게 구축하기 Django는 고급 Python 웹 프레임워크로, 빠른 개발과 간결한 설계를 목표로 합니다. 모델-템플릿-뷰 (MTV) 아키텍처를 따르며, 코드 재사용과 컴포넌트화를 장려합니다. 이 가이드는 간단한 Django 애플리케이션을 단계별로 만들어 빠르게 시작할 수 있도록 안내합니다. ## 1. 환경 구축 먼저 시스템에 Python이 설치되어 있는지 확인해야 합니다. Django는 Python 3.6 이상 버전을 사용하는 것을 권장합니다. ### 1.1 Python 설치 시스템에 Python이 설치되어 있지 않은 경우 [Python 공식 웹사이트](https://www.python.org/downloads/)에서 다운로드하여 설치할 수 있습니다. ### 1.2 가상 환경 (Virtual Environment) 생성 서로 다른 프로젝트 간의 종속성 충돌을 방지하기 위해 가상 환경을 사용하는 것이 좋습니다. 1. 터미널 또는 명령 프롬프트를 엽니다. 2. 프로젝트 디렉토리를 만듭니다. 예: `myproject`: ```bash mkdir myproject cd myproject ``` 3. 가상 환경을 생성하고 활성화합니다: ```bash python3 -m venv venv # 또는 python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows ``` 가상 환경을 활성화하면 터미널 프롬프트에 `(venv)`가 표시되어 가상 환경을 사용하고 있음을 나타냅니다. ### 1.3 Django 설치 활성화된 가상 환경에서 pip를 사용하여 Django를 설치합니다. ```bash pip install Django ``` 설치가 성공했는지 확인합니다: ```bash python -m django --version ``` Django 버전 번호가 표시되어야 합니다. ## 2. Django 프로젝트 생성 Django를 설치한 후 새 Django 프로젝트를 만들 수 있습니다. 1. 여전히 프로젝트 디렉토리 (`myproject`)에서 다음 명령을 실행합니다: ```bash django-admin startproject mysite ``` 이렇게 하면 `myproject` 디렉토리에 `mysite`라는 디렉토리가 생성되고 Django 프로젝트의 기본 파일이 포함됩니다. 2. `mysite` 디렉토리로 이동합니다: ```bash cd mysite ``` 3. Django 프로젝트 디렉토리 구조는 다음과 같습니다. ``` mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py ``` * `manage.py`: Django 프로젝트를 관리하는 데 사용되는 명령줄 도구입니다. * `mysite/`: 프로젝트 구성이 포함된 Python 패키지입니다. * `__init__.py`: Python에게 이 디렉토리가 Python 패키지로 취급되어야 함을 알리는 빈 파일입니다. * `settings.py`: 데이터베이스 설정, 디버그 모드 등과 같은 프로젝트 구성 파일입니다. * `urls.py`: URL을 뷰 함수에 매핑하는 URL 라우팅 구성입니다. * `asgi.py`: 비동기 애플리케이션 배포를 위한 ASGI (Asynchronous Server Gateway Interface) 구성 파일입니다. * `wsgi.py`: 기존 동기 애플리케이션 배포를 위한 WSGI (Web Server Gateway Interface) 구성 파일입니다.## 3. 개발 서버 시작 Django는 로컬에서 개발 및 테스트를 용이하게 해주는 경량 개발 서버를 내장하고 있습니다. 1. `mysite` 디렉토리에서 다음 명령을 실행합니다: ```bash python manage.py runserver ``` 2. 브라우저를 열고 `http://127.0.0.1:8000/`에 접속합니다. "It worked! Congratulations on your first Django-powered page." 페이지가 표시될 것입니다. ## 4. Django 앱 생성 하나의 Django 프로젝트는 여러 개의 앱을 포함할 수 있습니다. `myapp`이라는 앱을 만들어 보겠습니다. 1. 새 터미널 창을 엽니다 (개발 서버는 계속 실행 중이어야 합니다). 2. `mysite` 디렉토리에서 다음 명령을 실행합니다: ```bash python manage.py startapp myapp ``` 이렇게 하면 `mysite` 디렉토리 아래에 `myapp`이라는 디렉토리가 생성되고, Django 앱의 기본 파일들이 포함됩니다. 3. Django 앱 디렉토리 구조는 다음과 같습니다: ``` myapp/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py ``` * `__init__.py`: Python에게 해당 디렉토리가 Python 패키지로 취급되어야 함을 알리는 빈 파일입니다. * `admin.py`: Django 관리자 백엔드를 구성하는 데 사용됩니다. * `apps.py`: 앱 구성입니다. * `migrations/`: 데이터베이스 마이그레이션을 관리하는 데 사용됩니다. * `models.py`: 데이터 모델 (데이터베이스 테이블)을 정의합니다. * `tests.py`: 테스트 케이스를 작성합니다. * `views.py`: 요청을 처리하고 응답을 반환하는 뷰 함수를 정의합니다. 4. `mysite/settings.py`에서 `myapp`을 `INSTALLED_APPS` 목록에 추가합니다: ```python INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myapp', # myapp 추가 ] ``` ## 5. 간단한 뷰 생성 이제 브라우저에 "Hello, Django!"를 표시하는 간단한 뷰를 만들어 보겠습니다. 1. `myapp/views.py` 파일을 편집하고 다음 코드를 추가합니다: ```python from django.http import HttpResponse def index(request): return HttpResponse("Hello, Django!") ``` 2. `myapp/urls.py` 파일을 만들고 URL을 뷰 함수에 매핑합니다:```python from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ] ``` 3. `myapp/urls.py`를 `mysite/urls.py`에 포함시키세요: ```python from django.urls import include, path from django.contrib import admin urlpatterns = [ path('admin/', admin.site.urls), path('myapp/', include('myapp.urls')), # myapp의 URL 설정을 추가합니다. ] ``` 4. `http://127.0.0.1:8000/myapp/`에 접속하세요. "Hello, Django!" 페이지를 볼 수 있을 것입니다. ## 6. 모델 생성하기 간단한 모델을 만들어 데이터를 저장해 봅시다. 1. `myapp/models.py` 파일을 편집하고 다음 코드를 추가하세요: ```python from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') def __str__(self): return self.question_text ``` 이것은 `Question`이라는 모델을 정의하며, 두 개의 필드 `question_text` (CharField)와 `pub_date` (DateTimeField)를 포함합니다. 2. 데이터베이스 마이그레이션을 생성하고 적용하세요: ```bash python manage.py makemigrations myapp python manage.py migrate ``` `makemigrations` 명령어는 모델을 기반으로 마이그레이션 파일을 생성하고, `migrate` 명령어는 마이그레이션을 데이터베이스에 적용합니다. ## 7. Django 관리자 페이지 사용하기 Django는 데이터를 편리하게 관리할 수 있는 강력한 관리자 페이지를 제공합니다. 1. 슈퍼유저를 생성하세요: ```bash python manage.py createsuperuser ``` 프롬프트에 따라 사용자 이름, 이메일, 비밀번호를 입력하세요. 2. `myapp/admin.py` 파일을 편집하고 `Question` 모델을 등록하세요: ```python from django.contrib import admin from .models import Question admin.site.register(Question) ``` 3. `http://127.0.0.1:8000/admin/`에 접속하여 생성한 슈퍼유저로 로그인하세요. "Questions" 모듈을 볼 수 있으며, 질문을 추가, 편집 및 삭제할 수 있습니다. ## 8. 템플릿 사용하기 템플릿을 사용하면 HTML 페이지를 더욱 유연하게 생성할 수 있습니다.1. `myapp` 디렉토리 안에 `templates`라는 이름의 디렉토리를 만들고, `templates` 디렉토리 안에 `myapp`라는 이름의 디렉토리를 만듭니다 ( `myapp/templates/myapp` ). 2. `myapp/templates/myapp` 디렉토리 안에 `index.html`이라는 파일을 만들고, 다음 코드를 추가합니다: ```html

Hello, Django!

현재 시간: {{ current_time }}

``` 3. `myapp/views.py` 파일을 편집하여 템플릿을 사용합니다: ```python from django.shortcuts import render import datetime def index(request): now = datetime.datetime.now() return render(request, 'myapp/index.html', {'current_time': now}) ``` `render` 함수는 템플릿을 로드하고 데이터를 템플릿에 전달하여 렌더링합니다. 4. `http://127.0.0.1:8000/myapp/`에 다시 접속합니다. 현재 시간이 포함된 페이지를 볼 수 있습니다. ## 9. 결론 이 가이드를 통해 Django의 기본 개념과 사용 방법 (환경 구축, 프로젝트 및 애플리케이션 생성, 모델 정의, 뷰 생성 및 템플릿 사용)을 이해했습니다. 이것은 시작에 불과하며, Django는 풍부한 기능을 제공하므로 계속 학습하고 탐색하여 더 복잡한 웹 애플리케이션을 구축할 수 있습니다.
Published in Technology

You Might Also Like

클라우드 컴퓨팅 기술 사용 방법: 첫 번째 클라우드 인프라 구축 완벽 가이드Technology

클라우드 컴퓨팅 기술 사용 방법: 첫 번째 클라우드 인프라 구축 완벽 가이드

클라우드 컴퓨팅 기술 사용 방법: 첫 번째 클라우드 인프라 구축 완벽 가이드 서론 디지털 전환이 가속화됨에 따라 클라우드 컴퓨팅은 기업과 개발자들이 선호하는 솔루션이 되었습니다. 클라우드 컴퓨팅을 통해 사용자는 애플...

경고! Claude Code의 아버지, 1개월 후 Plan Mode를 사용하지 않으면 소프트웨어 엔지니어 직함이 사라질 것이라고 단언하다Technology

경고! Claude Code의 아버지, 1개월 후 Plan Mode를 사용하지 않으면 소프트웨어 엔지니어 직함이 사라질 것이라고 단언하다

경고! Claude Code의 아버지, 1개월 후 Plan Mode를 사용하지 않으면 소프트웨어 엔지니어 직함이 사라질 것이라고 단언하다 최근 YC의 원탁 인터뷰가 기술계에서 화제가 되었습니다——Claude Cod...

2026년 Top 10 심층 학습 자원 추천Technology

2026년 Top 10 심층 학습 자원 추천

2026년 Top 10 심층 학습 자원 추천 심층 학습이 다양한 분야에서 빠르게 발전함에 따라, 점점 더 많은 학습 자원과 도구가 등장하고 있습니다. 본문에서는 2026년 가장 주목할 만한 10개의 심층 학습 자원을...

2026년 Top 10 AI 에이전트: 핵심 판매 포인트 분석Technology

2026년 Top 10 AI 에이전트: 핵심 판매 포인트 분석

2026년 Top 10 AI 에이전트: 핵심 판매 포인트 분석 서론 인공지능의 빠른 발전과 함께 AI 에이전트(AI Agents)는 기술 분야의 핫 이슈가 되었습니다. 점점 더 많은 개발자와 기업들이 이러한 스마트 ...

2026년 Top 10 AI 도구 추천: 인공지능의 진정한 잠재력 발휘하기Technology

2026년 Top 10 AI 도구 추천: 인공지능의 진정한 잠재력 발휘하기

2026년 Top 10 AI 도구 추천: 인공지능의 진정한 잠재력 발휘하기 기술이 빠르게 발전하는 오늘날, 인공지능(AI)은 각 산업에서 인기 있는 주제가 되었습니다. 의료 건강에서 금융 서비스, 교육에서 엔터테인먼...

2026년 Top 10 AWS 도구 및 리소스 추천Technology

2026년 Top 10 AWS 도구 및 리소스 추천

2026년 Top 10 AWS 도구 및 리소스 추천 빠르게 발전하는 클라우드 컴퓨팅 분야에서 Amazon Web Services (AWS)는 선두주자로서 풍부한 서비스와 도구를 제공하여 개발자, 기업 및 기술 전문가...