장고(Django)는 웹 프로그래밍에 사용되는 파이썬 웹 프레임워크 중 가장 준비가 잘 되어 있다고 할 수 있습니다. 제공하는 기능이 풍부하여 쉽고 빠르게 웹 개발이 가능하고 사용자도 가장 많기 때문입니다. 파이썬으로 웹 프로그래밍을, 조금 더 정확히는 웹 애플리케이션을 프로그래밍 하고자 한다면 장고로 시작하는 것이 좋습니다.

장고는 파이썬 철학과도 맞닿아 있으며 개발을 바로 시작할 수 있도록 프로젝트 뼈대를 만드는 역할을 합니다. 또한 데이터베이스를 쉽게 연동시켜 주며, 쉽고 편리하게 사용할 수 있는 Admin 관리 기능 등 웹 프로그래밍에 필요한 기능은 모두 있다고 이야기할 수 있을 정도로 풍부한 기능을 제공합니다. 장고를 활용하면 이러한 기능을 몇 줄로 간단히 코딩할 수 있어 쉽고 빠른 웹 프로그래밍이 가능합니다. 또한 장고에는 웹 프로그래밍에 필요한 개념이 잘 정립되어 있어서 장고에 어느 정도 익숙해진 후에는 다른 프레임워크로도 쉽게 웹 프로그램을 개발할 수 있습니다.

 

 

 


✅장고(Django)의 특징

장고는 현재 가장 많이 사용되는 파이썬 웹 프레임워크입니다. 2003년 로렌스 저널 월드 신문을 만들던 웹 개발팀의 내부 프로젝트로 시작되었으며 2005년 오픈소스 프로젝트로 공개되었습니다. 그리고 구글의 웹 애플리케이션 엔진에 장고가 사용되면서 많은 사람이 사용하게 되었고 현재는 파이썬을 대표하는 웹 프레임워크로 자리매김하고 있습니다. 이러한 장고 웹 프레임워크의 주요 기능별 특징을 살펴볼게요.

 

 

📌MVC 패턴 기반 MVT

장고는 MVC Model-View-Controller 패턴을 기반으로 한 프레임워크입니다. 하지만 장고에서는 View를 Template, Controller를 View라고 부릅니다. 장고에서 Model은 데이터베이스에 엑세스하는 컴포넌트이고, View는 데이터를 가져오고 변형하는 컴포넌트이며, Template은 데이터를 사용자에게 보여 주는 컴포넌트입니다. 그래서 장고를 MVT Model-View-Template 프레임워크라고 부르기도 합니다. 하지만 용어만 다를 뿐 그 개념은 MVC 패턴과 동일합니다.

 

📌객체 관계 매핑

장고의 객체 관계 매핑ORM, Object-Relational Mapping은 데이터베이스 시스템과 모델이라는 파이썬 클래스를 연결하는 다리와 같은 역할을 합니다. 이런 ORM 기능을 통해 다양한 데이터베이스 시스템을 지원하며 SQL 문장을 사용하지 않고도 테이블을 조작할 수 있습니다. 설정을 조금만 변경하면 이미 구축한 데이터베이스 시스템을 다른 데이터베이스로 쉽고 편리하게 변경할 수 있습니다.

 

📌자동으로 구성되는 관리자 화면

장고는 웹 서버의 콘텐츠, 즉 데이터베이스 관리 기능을 위한 관리자 화면을 프로젝트를 시작하는 시점에 기본 기능으로 제공합니다. 이러한 관리자 화면을 통해서 애플리케이션에서 사용하는 테이블과 데이터를 쉽게 생성하거나 변경할 수 있습니다. 따라서 개발자가 별도로 관리 기능을 개발할 필요가 없습니다.

 

📌우아한 URL 설계

웹 프로그래밍에서 URL 설계는 필수인데 장고에서는 유연하면서도 강력한 URL 설계 기능을 제공합니다. 장고에서는 우아한Elegant URL 방식을 채택하여 URL을 직관적이고 쉽게 표현할 수 있습니다. 또한 정규표현식을 사용하여 복잡한 URL도 표현할 수 있으며 각 URL 형태를 파이썬 함수에 1:1로 연결하도록 설계되어 있어 이해하기 쉬운 코드 작성과 편리한 개발이 가능합니다.

 

📌자체 템플릿 시스템

장고는 내부적으로 확장이 가능하고 디자인하기 쉬운 강력한 템플릿 시스템을 가지고 있습니다. 이를 통해 화면 디자인과 로직에 관한 코딩을 분리하여 독립적으로 프로그래밍이 가능합니다. 장고의 템플릿 시스템은 HTML과 같은 텍스트형 언어를 쉽게 다룰 수 있도록 개발되었습니다.

 

📌캐시 시스템

동적 페이지를 만들기 위해서 데이터베이스 쿼리를 수행하고 템플릿을 해석하고 관련 로직을 실행해서 페이지를 생성하는 일은 서버에 엄청난 부하를 주는 작업입니다. 그래서 캐시 시스템을 사용하여 자주 이용되는 내용을 저장하였다가 재사용하면 성능을 높일 수 있습니다. 장고의 캐시 시스템은 캐시용 페이지를 메모리, 데이터베이스 내부, 파일 시스템 중 아무 곳에나 저장할 수 있습니다. 또한 캐시 단위를 페이지에서부터 사이트 전체 또는 특정 뷰의 결과, 템플릿의 일부 영역만을 지정하여 저장할 수도 있습니다.

 

📌다국어 지원

장고는 동일한 소스 코드를 다른 나라에서도 사용할 수 있도록 텍스트 번역, 날짜/시간/숫자 포맷, 타임존 지정 등과 같은 다국어 환경을 제공합니다. 간단한 작업만으로 메시지를 하나 이상의 언어로 번역할 수 있으므로 다국어를 제공하는 웹 사이트에 아주 유용하게 사용할 수 있습니다.

 

📌풍부한 개발 환경

장고는 프로그래밍에 도움이 되는 여러 가지 기능을 제공합니다. 특히 테스트용 웹 서버를 포함하고 있어서 개발 과정에서 Apache 등의 웹 서버가 없어도 테스트를 진행할 수 있습니다. 또한 디버깅 모드를 사용할 경우에는 에러를 쉽게 파악하고 해결할 수 있도록 아주 상세한 메시지를 보여줍니다.

 

📌소스 변경 사항 자동 반영

개발 과정에서 장고는 *.py 파일의 변경 여부를 감시하고 있다가 파일이 변경되면 실행 파일에 변경 내역을 바로 반영합니다. 그래서 장고 테스트용 웹 서버를 실행 중인 상태에서 소스 파일을 수정하더라도 웹 서버를 다시 시작할 필요 없이 자동으로 새로운 파일이 반영됩니다.

 

 

 


✅장고(Django) 프로그램 설치

기본적으로 장고는 파이썬 언어로 작성되었으므로 파이썬이 동작하는 플랫폼에서는 항상 설치하고 사용할 수 있습니다. 만일 파이썬 3.x 버전이 설치되어 있지 않다면, 먼저 파이썬을 3.x 버전으로 설치한 후에 장고 프로그램을 설치해야 합니다. 아래 명령으로 파이썬 설치 여부를 확인할 수 있으며 파이썬이 설치되었다면 버전이 표시됩니다.

C:\Users\shkim> python -V

 

만일 설치되어 있지 않다는 메시지가 뜨면 www.python.org에서 파이썬 프로그램을 내려받아 설치해 주세요. 장고도 다음의 명령으로 설치 여부를 확인하고 설치가 되어 있지 않다면 설치를 진행합니다.

C:\Users\shkim>python -m django --version

 

장고 설치 과정은 운영체제와 관계없이 매우 유사합니다. 가장 간단한 pip 프로그램으로 설치하는 법부터 알아보겠습니다. (만약 pip 프로그램이 없다면 추가 작업이 필요합니다. 이 과정은 조금 더 설치가 복잡한 리눅스 환경을 기반으로 설명합니다. 유닉스, 맥 OS, 윈도우 환경은 비교적 설치가 쉬우므로 리눅스 설치 과정을 참고하시면 됩니다.)

 

📌윈도우에서 pip 프로그램으로 설치

파이썬 3.x 버전을 설치하면 pip 프로그램도 같이 설치됩니다. pipPython Install Package는 파이썬의 오픈소스 저장소인 PyPIPython Package Index에 있는 소프트웨어 패키지를 설치하고 관리하는 명령입니다. 그래서 파이썬에서 많이 사용되는 패키지들은 pip 명령으로 간단히 설치할 수 있습니다. 장고 프로그램 역시 pip 프로그램으로 간단히 설치할 수 있습니다. cmd 창을 열고 다음 명령으로 장고 최신 버전을 설치하면 끝입니다.

C:\Users\shkim>pip install Django

 

만일 pip, setuptools, wheel 등의 프로그램을 업그레이드하고 싶다면 다음 명령을 사용합니다.

C: \Users\shkim>pip install pip setuptools wheel --upgrade

 

 

📌리눅스 pip 프로그램으로 설치

리눅스에서도 pip 프로그램으로 장고를 설치하는 것이 가장 간단한 방법입니다. 다음 명령으로 장고 최신 버전을 설치해 주세요. 명령을 실행하는 사용자는 root 또는 sudo 권한을 가진 사용자여야 합니다.

# pip install Django // 또는 $ sudo pip install Django

만일 root 권한이 없다면 자신의 로컬 디렉터리에 설치해도 무방합니다. 다만 로컬 디렉터리에 설치하는 경우에는 가상 환경을 먼저 구성하고 그 가상 환경에 장고를 설치해야 합니다.

 

4.x 보다 낮은 버전의 장고 프로그램이 이미 설치되어 있다면 다음 명령으로 장고 업그레이드를 진행합니다. pip 프로그램의 안내에 따라 업그레이드를 진행하면 됩니다.

# pip install Django - -upgrade // 또는 $ sudo pip install Django - -upgrade

설치 명령이 성공하면 파이썬의 site-packages 디렉터리 하위에 장고 최신 버전이 설치됩니다. 예를 들어 /usr/lib/python3.6/site-packages/django와 같은 장고 디렉터리가 생성됩니다.

Django 장고 설치 화면 pip 사용'

 

 

📌수동으로 설치

이번에는 리눅스 환경을 기준으로 장고 수동 설치 방법을 알아보겠습니다.

 

✔️pip 프로그램 설치

만일 pip 프로그램이 설치되어 있지 않다면 다음 명령들을 순서대로 입력하여 pip 프로그램을 먼저 설치합니다. 다음 디렉터리 또는 원하는 임의의 디렉터리에 get-pip.py 파일을 가져오면 됩니다.

# cd /usr/local/src

다음 주소에 있는 get-pip.py 파일을 가져오면 되는데 curl 명령을 사용해도 되고 웹 브라우저로 https://pip.pypa.io/en/latest/installing/ 사이트에 접속하여 해당 링크를 마우스 오른쪽 버튼을 클릭해서 내려받아도 됩니다.

# curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

pip 프로그램 사이트

다음 명령을 실행하면 시스템 bin 디렉터리에 pip 프로그램이 설치됩니다.

# python get-pip.py

pip 프로그램이 설치되지 않거나 정상적으로 동작하지 않는 경우에는 장고 소스를 컴파일하여 수동으로 설치할 수 있습니다. 이 방법은 아래에서 다시 설명할게요.

 

 

✔️기존 장고 프로그램 삭제

수동으로 설치할 때 이미 낮은 버전의 장고가 설치되어 있다면 기존 장고 프로그램을 삭제해야 합니다. 수동으로 최신 버전의 장고 프로그램을 설치하는 과정에서 낮은 버전의 파일을 참조하여 잘못 설치될 수 있기 때문입니다. 장고 공식 문서에도 삭제 후 설치하는 방법을 안내하고 있습니다. 단 pip 프로그램으로 설치하는 경우는 pip 프로그램이 예전 버전의 장고 프로그램을 자동으로 처리하므로 삭제 과정을 진행할 필요가 없습니다.

낮은 버전의 장고 프로그램을 삭제하려면 다음 명령처럼 장고가 설치된 디렉터리로 이동해서 장고 디렉터리를 삭제하면 됩니다.

# cd /usr/lib/python3.6/site-packages/
# rm –rf django
# rm –rf Django*

만일 장고가 설치된 디렉터리를 알고 싶다면 다음 명령을 입력해 주세요.

$ python -c "import django; print(django._ _path_ _)"

 

 

✔️수동으로 설치

다음과 같이 직접 관련 명령들을 입력하여 수동 설치를 진행합니다. 다음의 디렉터리가 아니더라도 장고 설치용 파일을 내려받을 임의의 디렉터리로 이동합니다.

# cd /usr/local/src

2022년 11월 기준 최신 버전은 4.0.4이므로 다음과 같이 입력하여 /usr/local/src 디렉터리에 장고 설치용 프로그램을 내려받습니다. 최신 버전이 아닌 경우 사이트 URL이 다르므로 주의합니다.
# wget https://www.djangoproject.com/download/4.0.4/tarball/

만일 최신 버전을 모르는 경우에는 웹 브라우저로 https://www.djangoproject.com/download/에 접속하여 최신 버전을 확인하거나 우하단에서 해당 링크를 클릭해서 바로 내려받아도 됩니다.

Django 사이트

tar 명령을 이용하여 내려받은 설치용 파일의 압축을 풀고 생성된 디렉터리로 이동합니다.

# tar xzvf Django-4.0.4.tar.gz
# cd Django-4.0.4

Django-4.0.4 디렉터리에 있는 setup.py 파일을 이용하여 다음과 같이 Django 패키지를 설치합니다. 이 명령이 성공하면 파이썬의 site-packages 디렉터리 하위에 장고가 설치됩니다. 예를 들어 /usr/lib/python3.6/site-packages/django와 같은 장고 디렉터리가 생성됩니다.

# python setup.py install

 

설치 진행 화면은 다음과 같습니다. 수동으로 설치하는 경우 화면에 출력되는 내용이 너무 많으므로 이 책에는 끝 부분만 수록하였습니다. 정상적으로 설치가 완료되었다는 메시지를 확인할 수 있습니다.

Django 수동 설치

 

만일 root 권한이 아니라 sudo 권한을 가진 일반 사용자로 설치한다면 앞의 명령 대신에 다음 명령을 입력합니다.

$ sudo python setup.py install

 

 

✔️장고 프로그램 설치 확인

장고가 정상적으로 설치되었는지 확인하기 위해 다음과 같은 명령을 입력합니다. 장고가 정상적으로 설치되었다면 장고 버전이 출력됩니다.

C:\Users\shkim> python -m django - -version
4.0.4

 

 

 


 

혼자 공부하는 파이썬(개정판)파이썬 웹 프로그래밍 기초편

 

위 내용은 『파이썬 웹 프로그래밍, 기초편(3판)』과 장고 공식 문서를 참고하여 작성되었습니다.  프로그래밍이 처음이거나 파이썬을 아직 배우지 못한 분들은 『혼자 공부하는 파이썬(개정판)』으로 기본기를 다진 후에 파이썬 웹 개발에 도전 하시는 것을 추천합니다.

파이썬 웹 프로그래밍, 기초편(3판)
장고 공식 문서 바로가기
혼자 공부하는 파이썬(개정판)