Django로 세상에게 인사하기

JunHo Lee·2024년 5월 4일
1
post-thumbnail

1. Django 개요

Django(장고)는 빠른 개발과 깔끔하고 실용적인 디자인을 장려하는 높은 수준의 Python 웹 프레임워크입니다. 숙련된 개발자들이 개발한 이 프레임워크는 웹 개발의 번거로움을 상당 부분 처리하므로 처음부터 다시 개발할 필요 없이 앱 작성에만 집중할 수 있습니다. 무료이며 오픈 소스입니다.

2. Django의 목표 및 역사

Django는 2005년에 공개되어 웹 개발자들 사이에서 빠르게 인기를 얻었습니다. 이 프레임워크는 "Django"라는 이름의 재즈 기타리스트 'Django Reinhardt'에서 이름을 따왔으며, 웹 개발을 빠르고 효율적으로 할 수 있도록 하는 것을 목표로 합니다. 초기 개발은 로렌스 저널 월드 신문의 웹 개발 팀에 의해 이루어졌으며, 그들의 경험을 바탕으로 일상적인 웹 개발 작업을 자동화하고자 했습니다.

3. Django의 특징

  • 객체 관계 매핑(ORM): SQL 데이터베이스 작업을 Python 코드로 간단하게 할 수 있게 도와줍니다.
  • 자동화된 관리 인터페이스: Django는 자동으로 생성되는 관리 인터페이스를 제공하여, 애플리케이션의 데이터를 쉽게 관리할 수 있습니다.
  • 보안 기능: Django는 보안에 심각하게 초점을 맞추고 있어, XSS, CSRF 및 SQL 인젝션과 같은 공격으로부터 자동으로 보호합니다.
  • 확장성 및 유연성: Django는 "하나의 요청당 하나의 파일"이 아니라 MVC 패턴을 확장한 MVT (Model-View-Template) 아키텍처를 사용합니다.

4. Django 장단점

4-1. 장점

  • 빠른 개발 속도: Django는 개발자가 애플리케이션의 개념부터 완성까지 가능한 한 빨리 진행할 수 있도록 설계되었습니다. 또한 Django에는 일반적인 웹 개발 작업을 처리하는 데 사용할 수 있는 수십 가지 추가 기능이 포함되어 있습니다. Django는 사용자 인증, 콘텐츠 관리, 사이트 맵, RSS 피드 및 더 많은 작업을 즉시 처리합니다.
  • 강력한 문서화: Django는 매우 잘 문서화되어 있어, 새로운 개발자도 쉽게 접근할 수 있습니다.
  • 다재다능: 복잡한 데이터베이스 기반 웹사이트를 쉽게 만들 수 있습니다.

4-2. 단점

  • 비동기 처리 부족: Django는 기본적으로 비동기 처리를 완벽하게 지원하지 않습니다, 그러나 Django 3.1부터 비동기 뷰와 미들웨어를 지원하기 시작했습니다.
  • 모놀리식: Django는 모놀리식 프레임워크로, 때로는 너무 많은 기능이 포함되어 있어 간단한 작업에 과도할 수 있습니다.

5. Django 설치 및 프로젝트 생성

5-1. Django 설치

Python이 이미 설치된 상황이라면 Django의 설치는 간단합니다.
터미널에서 다음과 같이 실행합니다.

pip install django

5-2. 프로젝트 생성

터미널에서 다음과 같이 실행합니다.

django-admin startproject myproject

완료되면 아래 사진처럼 myproject라는 이름으로 프로젝트 폴더가 생성됩니다.

5-3. 프로젝트 실행

  1. 터미널에서 myproject 폴더로 들어가서 서버를 시작합니다.
cd myproject
python manage.py runserver

  1. 에러 해결

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

라는 에러와 함께 실행이 되었습니다.

이는 메세지에서 말해주는 것 처럼 migration을 해주면 해결이 됩니다.

python manage.py migrate

  1. 다시 Django를 실행하면, 에러가 발생하지 않고 실행되는 모습을 확인할 수 있습니다.

이 상태로 http://127.0.0.1:8000/ 에 접근하면 Django 페이지를 확인할 수 있습니다.

6. Django로 Hello Word 출력하기

6-1. 앱 생성

python manage.py startapp hello

6-2. hello/views.py 파일 수정

from django.http import HttpResponse

def hello_world(request):
    return HttpResponse('Hello World')

6-3. hello/urls.py 파일 생성 및 코드 추가

from django.urls import path
from .views import hello_world

urlpatterns = [
    path('', hello_world),
]

6-4. myproject/urls.py에 hello 앱 추가

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', include('hello.urls')),
]

6-5. 서버 시작

python manage.py runserver

http://127.0.0.1:8000/hello/ 에서 "Hello World" 확인

결론

블로그를 작성하며 Django의 기본적인 개념과 시작 방법에 대해서 공부해보았습니다. Django는 강력한 기능과 확장 가능성을 제공하여, 다양한 유형의 웹 애플리케이션 개발에 적합합니다.


출처

0개의 댓글