본문으로 바로가기
제품데스크톱 도구TASTECAD도면 확인TASTEFILES파일 관리TASTEFTP파일 전송TASTESSH원격 작업공간TASTEZIP압축과 해제개발 도구TASTECODERust 통합 개발 환경TASTESTUDIO통합 개발·테스트 환경TASTEETL데이터 통합(ETL)서버TASTEREMOTE원격 데스크톱 서버TASTEGEO공간정보 서버TASTEMAIL메일 작업공간시작하기다운로드문서구매모든 제품
마켓플레이스
소식
개발소식오늘의 개발 소식개발 문서프로그래밍 언어RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron알고리즘알고리즘 기초알고리즘 핵심알고리즘 심화실무 알고리즘
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스커뮤니티 안내
협업기술 전수홈페이지 구축데스크톱 앱 구축릴리스·결제 파이프라인판매 파트너문의
서비스원격 데스크톱설치 패키지 커스텀
TASTEDEV
제품

데스크톱 도구

TASTECAD복잡한 도면을 가볍게 열다TASTEFILES필요한 파일만, 가장 빠르게TASTEFTP파일이 오가는 가장 단정한 길TASTESSH서버와 나 사이, 더 단단한 연결TASTEZIP더 빠르게 묶고, 더 안전하게 풀다

개발 도구

TASTECODERust 앱을 편집 · 빌드 · 디버깅 · 테스트까지 한 창에서TASTESTUDIO편집부터 원격 테스트와 승인 기반 AI 수정까지TASTEETL값을 보며 데이터를 옮깁니다

서버

TASTEREMOTE우리 회사 서버로 운영하는 원격 데스크톱TASTEGEOGeoServer 호환 공간정보 서버를 Rust로 다시 세웁니다TASTEMAIL메일의 주도권을 다시 내 손에

시작하기

다운로드모든 제품 최신 판문서제품 사용법구매구독 · 영구 라이선스모든 제품모든 제품 한눈에
모든 제품
마켓플레이스소식
개발

소식

오늘의 개발 소식언어 · 프레임워크 · GitHub · AI 공식 발표개발 문서언어 · 프레임워크 · 알고리즘 안내서

프로그래밍 언어

RustTypeScriptJavaScriptPythonGoC#JavaCC++KotlinDart

프레임워크

프런트엔드 프레임워크Next.jsReactVue.js · NuxtSvelteKitAngular
서버 프레임워크Spring BootDjangoFastAPIASP.NET CoreNestJS · Express
앱 · 데스크톱 프레임워크TauriFlutterReact NativeElectron

알고리즘

알고리즘 기초복잡도 분석 · 정렬 · 탐색 · 기본 자료구조 · 트리와 힙알고리즘 핵심그래프 탐색 · 최단 경로와 최소 신장 트리 · 동적 계획법 · 탐욕 알고리즘 · 분할 정복 · 백트래킹알고리즘 심화문자열 알고리즘 · 수학과 정수론 · 비트 연산 · 구간 트리 · 유니온 파인드실무 알고리즘코딩 면접 풀이 전략 · LRU 캐시 · 레이트 리미터 · 일관된 해시
개발 문서 전체 보기
커뮤니티
프로젝트빌더와 작업 발견개발 로그결정과 시행착오프롬프트재사용 가능한 지시AI 도구 이슈Claude · Codex · Gemini 문제와 우회법쇼케이스완성된 결과커뮤니티 안내공개하고 함께 만드는 방식
협업
기술 전수Rust·egui 네이티브 앱 만들기홈페이지 구축10개 언어, 계정, 문서·다운로드데스크톱 앱 구축Rust·egui, WebView 없이릴리스·결제 파이프라인서명 · MSI·deb·rpm·AppImage · 해시판매 파트너소개하고 결제액의 30% 받기문의구축 · 제휴 · 투자 문의
서비스
원격 데스크톱브라우저로 내 컴퓨터에 접속설치 패키지 커스텀필요한 기능만, 설정은 미리
구매
KO
한국어EnglishDeutschEspañolFrançaisItalianoPortuguês (Brasil)日本語简体中文繁體中文
로그인
로그인
TASTEDEV

작은 도구부터, 더 좋은 개발까지.

support@tastedev.netTASTEDEV 후원하기
제품제품군구매문서다운로드마켓플레이스고객 지원
커뮤니티프로젝트개발 로그프롬프트AI 도구 이슈쇼케이스
정책개인정보처리방침이용약관구독 약관환불 정책커뮤니티 운영 정책
계정로그인가입하기
방문자
오늘
012345678901234567890123456789012345678901234567890123456789
어제
012345678901234567890123456789012345678901234567890123456789
누적 조회
0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
상호
지엑스소프트
대표자
최영구
사업자등록번호
853-44-00368
주소
인천광역시 미추홀구 경인로 351 9층 V24
전화
+82-10-4404-1523
이메일
whitecalvin@tastedev.net
개인정보 보호책임자
최영구

© 2026 TASTEDEV제품 정보는 현재 검증된 개발 소스를 기준으로 합니다.출시·고도화 중

Django 문서
Django
Django 시작하기프로젝트 구조핵심 개념데이터와 상태테스트배포
토론

Django 안내서 · 1/6

Django 시작하기

이 장에서는 파이썬 가상 환경을 만들고 Django를 설치한 뒤, 새 프로젝트를 만들어 개발 서버로 실행하는 데까지 다룹니다. 첫 앱을 추가하고 편집기를 설정하는 방법도 함께 살펴봅니다.

준비물: 파이썬과 가상 환경

Django는 파이썬 패키지이므로 먼저 파이썬이 설치되어 있어야 합니다. Django의 각 버전은 지원하는 파이썬 버전 범위가 정해져 있으니, 공식 문서의 설치 안내에서 현재 버전이 요구하는 파이썬 버전을 확인합니다.

프로젝트마다 의존성을 따로 관리하려면 가상 환경(virtual environment)을 만듭니다. 가상 환경은 프로젝트 폴더 안에 독립된 파이썬 실행 환경을 두어, 다른 프로젝트나 시스템 파이썬과 패키지가 섞이지 않게 합니다.

mkdir mysite-project
cd mysite-project

# 가상 환경 만들기
python -m venv .venv

# macOS · Linux에서 활성화
source .venv/bin/activate

# Windows(PowerShell)에서 활성화
.venv\Scripts\Activate.ps1

활성화되면 프롬프트 앞에 (.venv)가 붙습니다. 이후 실행하는 python과 pip은 모두 가상 환경 안의 것입니다. 작업을 마치면 deactivate로 빠져나옵니다.

Django 설치

가상 환경이 켜진 상태에서 pip으로 Django를 설치합니다. 설치한 패키지 목록은 requirements.txt에 적어 두면 다른 사람이나 서버에서 같은 환경을 다시 만들 수 있습니다.

python -m pip install Django

# 설치된 버전 확인
python -m django --version

# 의존성 목록 저장
python -m pip freeze > requirements.txt

pip freeze는 설치된 모든 패키지를 정확한 버전과 함께 적습니다. 직접 관리하고 싶다면 requirements.txt를 손으로 작성해도 됩니다. 요즘은 uv나 Poetry 같은 도구로 의존성을 관리하는 팀도 많지만, 기본 흐름은 같습니다.

프로젝트 만들기

Django에서 프로젝트는 설정과 URL 구성을 묶는 전체 사이트이고, 앱은 블로그·투표처럼 하나의 기능을 맡는 파이썬 패키지입니다. 프로젝트는 django-admin startproject로 만듭니다.

# 현재 폴더(.)에 mysite 프로젝트 만들기
django-admin startproject mysite .

# 기본 앱(admin, auth 등)이 쓰는 테이블 만들기
python manage.py migrate

# 개발 서버 실행
python manage.py runserver

끝에 .을 붙이면 현재 폴더에 manage.py가 생기고, 설정 패키지 mysite/가 그 옆에 만들어집니다. 브라우저에서 http://127.0.0.1:8000/을 열면 Django 환영 페이지가 보입니다. 다른 포트를 쓰려면 python manage.py runserver 8080처럼 포트를 넘깁니다.

개발 서버는 코드가 바뀌면 자동으로 다시 시작하지만, 운영 환경용이 아닙니다. 성능과 보안 검토를 거치지 않았으므로 배포할 때는 Gunicorn이나 Uvicorn 같은 서버를 씁니다(6장).

첫 앱 만들기

기능은 앱 단위로 나눕니다. startapp으로 앱을 만들고 설정의 INSTALLED_APPS에 등록합니다.

python manage.py startapp polls
# mysite/settings.py
INSTALLED_APPS = [
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    "polls",
]

이제 간단한 뷰를 만들고 URL에 연결합니다.

# polls/views.py
from django.http import HttpResponse


def index(request):
    return HttpResponse("투표 앱에 오신 것을 환영합니다.")
# polls/urls.py (새 파일)
from django.urls import path

from . import views

app_name = "polls"
urlpatterns = [
    path("", views.index, name="index"),
]
# mysite/urls.py
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("polls/", include("polls.urls")),
    path("admin/", admin.site.urls),
]

http://127.0.0.1:8000/polls/를 열면 방금 쓴 문장이 나옵니다. include()는 앱의 URL 목록을 프로젝트 URL 아래에 붙입니다.

관리자 계정 만들기

Django에는 관리자 화면이 기본으로 들어 있습니다. 관리자 계정을 만들고 /admin/에 로그인해 봅니다.

python manage.py createsuperuser

편집기 설정

VS Code를 쓴다면 Microsoft의 Python 확장을 설치하고, 명령 팔레트의 "Python: Select Interpreter"에서 .venv 안의 인터프리터를 고릅니다. PyCharm Professional은 Django 프로젝트를 인식해 템플릿과 URL 이동을 지원합니다. 코드 정리는 Ruff나 Black, 템플릿 정리는 djLint 같은 도구를 많이 씁니다.

정리

  • 프로젝트마다 python -m venv로 가상 환경을 만들고 그 안에 Django를 설치합니다.
  • django-admin startproject로 프로젝트를, python manage.py startapp으로 앱을 만듭니다.
  • 새 앱은 INSTALLED_APPS에 등록하고, include()로 URL을 연결합니다.
  • runserver는 개발용 서버이며, 운영에는 별도의 WSGI·ASGI 서버를 씁니다.
이 장에 대해 질문이 있나요?
다음 장프로젝트 구조

댓글 0개

인기 댓글순최신순

로그인 · 로그인하면 댓글을 남길 수 있습니다.