파이썬은 빅데이터 영역뿐만 아니라 GUI, Web 분야에서도 쉬운 사용법과 직관적인 문법 덕분에 많은 사용자들이 즐겨 사용하고 있는 언어 중 하나이다. 그중 Web 영역에서 파이썬을 사용하려면 프레임워크를 이용하여 프로젝트를 진행하게 된다면 쉽게 웹사이트를 구축하고 운영할 수 있다.
파이썬으로 활용할 수 있는 프레임워크는 Django, Flask, Fastapi.. 등등 많은 종류가 있지만 그중에서도 어느 정도 완성적으로 기능들을 제공하는 Django 프레임워크에 대해 이야기해보고자 한다.
프레임워크
일단 장고에 대해 알아보기 전에 프레임워크가 무엇인지에 대해서 살펴보자. 프레임워크란 "어떠한 목적을 달성하기 위해 복잡하게 적혀 있는 문제를 해결하기 위한 구조"라고 설명하곤 한다. 그리곤 항상 뜨겁게 나오는 주제가 "라이브러리와 프레임워크의 차이는 무엇인가?"에 대한 주제인데 이를 공장에 비유하자면 다음과 같다.
- 라이브러리 : 공장에 비유하자면 어떤 제품을 만드는 기계를 첨부터 설계하고, 톱니바퀴를 만들어 연결하는 작업을 손수 하여야 한다. 즉 코드의 구조를 자유롭게 작성할 수 있으나, 기능을 만드는데 오랜 시간이 걸릴 수 있다.
- 프레임워크 : 공장에 비유하자면 이미 기계는 만들어져 있고, 그 안에 톱니바퀴 몇 개만 없기 때문에 톱니바퀴를 만드는 것에만 집중한다. 대신 톱니바퀴도 기계가 만들어져 있는 형태로 만들어야 하기 때문에 즉 코드의 구조가 자유롭지 못하지만 어느 정도 기능들이 구현되어 있어 원하는 기능만 만들어지면 쉽게 기계를 작동시킬 수 있다.
즉 라이브러리는 어떤 기능을 만들기 위해서 다른 곳에 만들어져 있는 부품을 가져와 연결하는 작업을 하는 것이고 프레임 워크 같은 경우에는 만들어져 있는 기능 사이사이에 빈 공간을 채우는 작업을 하는 것이라 생각하면 쉽다.
웹 서비스 같은 경우에는 우리가 구현해야 하는 것들이 많기 때문에 여러 라이브러리를 가지고 웹을 구축해 나가는 것이 쉽지 않고, 어느 정도 기능들을 구현해야 하기 때문에 개발 속도 또한 더디다. 하지만 프레임워크를 가지고 만들어진 틀 안에서 자신이 원하는 기능을 작성하고 이를 실행한다면 쉽고 빠르게 서비스를 만들 수 있다.
장고 (Django)
파이썬 웹 프레임워크 종류 중 하나인 장고는 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임 워크이다. Python 언어로 만들어져 있어 쉽게 접근이 가능하고 타 Python 웹 프레임 워크에 비해 많은 사람들이 사용하고 개발 생태계 또한 잘 구축되어 있다.
만약 공부하다가 모르는 부분이 있다면, 공식문서가 잘 되어있으니 이를 참고한다.
공식문서 : https://docs.djangoproject.com/ko/4.2/
Django
The web framework for perfectionists with deadlines.
docs.djangoproject.com
현재 23.06.28 기준으로는 장고 4.2 버전이 배포되어 있다.
왜 장고를 쓰는데?
장고를 쓰는 이유는 여러가지가 있지만 대표적인 이유로는 다음과 같다. 제일 중요한 이유는 쉽게 구현을 할 수 있기에 개발 시간이 단축된다는 것인거 같다.
- Python 언어를 통한 낮은 진입 장벽과 강력한 커뮤니티
- 반복적으로 구현해야하는 로그인, 회원가입, 인증, CORS, Data Parsing 등은 모두 라이브러리를 통해 간단하게 구현 가능
- Django 자체 DTL(Django Template Language)을 통해 프론트 프레임워크 사용 필요 없이 웹 페이지 구현 가능
- 이로 인한 개발 시간 단축
장고 프로젝트 생성
Python으로 장고 프로젝트를 생성하기 위해서는 pip tools을 이용하여 django 패키지를 설치한 뒤 django-admin 명령어를 통해 프로젝트 생성이 가능하다.
🖥️ Terminal
pip install django # pip package tool 을 이용하여 설치
django-admin startproject 프로젝트 이름 # django-admin 명령어를 통해 프로젝트 생성
위 명령어로 생성하게 되면, 아래와 같은 폴더 구조가 생성된다.
🗂️ Folder Tree
project_name/
├── manage.py
└── project_name/
├── __init__.py
├── settings.py
├── urls.py
├── asgi.py
└── wsgi.py
만약 새로운 프로젝트 이름의 폴더를 만들지 않고 원하는 작업하는 폴더 내에서 바로 장고 개발 환경을 구축하고 싶다면 프로젝트 이름뒤에 경로를 입력해 주면 된다.
🖥️ Terminal
django-admin startproject 프로젝트 이름 경로 # 해당 경로에 프로젝트 구축
django-admin startproject 프로젝트 이름 . # 현재 작업 폴더에 프로젝트 구축
나는 주로 "django-admin startproject config ." 명령어를 사용하여 작업 폴더 내에 프로젝트를 생성하는 것을 즐겨한다.
'FrameWork > Django' 카테고리의 다른 글
settings.py 분리하여 관리하기 (1) | 2023.11.23 |
---|---|
dumpdata와 loaddata을 통해 DB데이터 추출, 적재하기 (1) | 2023.11.23 |
Forbidden (403) CSRF verification failed 오류 해결하기 (0) | 2023.11.11 |
DRF FBV, CBV (APIView, Mixin, Generic, Viewset) (0) | 2023.08.28 |
DRF에서 ModelViewset을 이용하여 API을 작성할 때, 쿼리 스트링 사용 방법 (0) | 2023.08.18 |