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 Buddy 수정 가이드: 어떻게 반짝이는 전설급 애완동물을 얻을 수 있을까

Claude Code Buddy 수정 가이드: 어떻게 반짝이는 전설급 애완동물을 얻을 수 있을까 2026년 4월 1일, Anthropic은 Claude Code 2.1.89 버전에서 조용히 이스터 에그 기능인 /bu...

Obsidian이 Defuddle을 출시하여 Obsidian Web Clipper를 새로운 차원으로 끌어올리다Technology

Obsidian이 Defuddle을 출시하여 Obsidian Web Clipper를 새로운 차원으로 끌어올리다

Obsidian이 Defuddle을 출시하여 Obsidian Web Clipper를 새로운 차원으로 끌어올리다 저는 Obsidian의 핵심 이념인 로컬 우선, 모든 것이 파일이라는 점, 그리고 단순한 Markdow...

OpenAI가 갑자기 발표한 '삼합일': 브라우저 + 프로그래밍 + ChatGPT 통합, 내부에서 지난 1년이 잘못되었다고 인정하다Technology

OpenAI가 갑자기 발표한 '삼합일': 브라우저 + 프로그래밍 + ChatGPT 통합, 내부에서 지난 1년이 잘못되었다고 인정하다

OpenAI가 갑자기 발표한 '삼합일': 브라우저 + 프로그래밍 + ChatGPT 통합, 내부에서 지난 1년이 잘못되었다고 인정하다 2026년 3월 19일 심야, OpenAI 본사에서 내부 메모가 유출되었고, 《월...

2026, 더 이상 스스로를 '자율'하게 강요하지 마세요! 이 8가지 작은 일을 잘하면 건강이 자연스럽게 찾아옵니다Health

2026, 더 이상 스스로를 '자율'하게 강요하지 마세요! 이 8가지 작은 일을 잘하면 건강이 자연스럽게 찾아옵니다

2026, 더 이상 스스로를 '자율'하게 강요하지 마세요! 이 8가지 작은 일을 잘하면 건강이 자연스럽게 찾아옵니다 새로운 한 해가 시작되었습니다. 작년에 세운 목표는 달성하셨나요? 매년 '의욕이 넘치'고 '포기하...

노력해도 살이 빠지지 않는 엄마들, 여기서 모두 실패한다Health

노력해도 살이 빠지지 않는 엄마들, 여기서 모두 실패한다

노력해도 살이 빠지지 않는 엄마들, 여기서 모두 실패한다 3월이 이미 반이 지났습니다. 당신의 다이어트 계획은 어떻게 되어가고 있나요? 살이 빠졌나요? 얼마나 빠졌나요? 나의 다이어트 경험 2월 말에 다이어트를 ...

📝
Technology

AI 브라우저 24시간 안정적 운영 가이드

AI 브라우저 24시간 안정적 운영 가이드 본 튜토리얼은 안정적이고 장기적으로 운영되는 AI 브라우저 환경을 구축하는 방법을 소개합니다. 적합한 용도 AI 에이전트 자동화 브라우징 웹 자동화 AI 어시스턴트 자동 테...