brunch

You can make anything
by writing

C.S.Lewis

by Aprilamb Sep 16. 2023

Python과 Django의 관계 쉽게 이해하기


Python은 간결하고 읽기 쉬운 문법구조를 가지고 있는 프로그래밍 언어입니다. 컴파일이 필요 없이 바로 코드를 실행할 수 있는 인터프리터 언어로 웹개발, 데이터 분석, 인공지능, 머신러닝, 자동화, 게임 개발, 시스템 프로그래밍 등에 다양하게 사용되고 있습니다. 풍부한 표준 라이브러리를 제공하고 있기 때문에 개발자들은 구현하고자 하는 핵심 기능에 집중할 수 있죠. 다른 언어로 작성된 확장 모듈을 쉽게 통합할 수도 있고, 사용자들이 많기 때문에 다양한 프레임워크와 라이브러리가 존재한다는 것도 큰 장점입니다. 

요즘에는 일반 기업에서도 마치 오피스 교육처럼 Python 교육을 제공하고 있기도 해서 많은 사람들이 알고 또 사용하기도 하는 언어죠. 다른 언어보다 쉬운 문법구조 때문에 비개발자들이 쉽게 익히고 사용할 수 있습니다. 하지만, 일반 사용자들이 데이터 전처리를 위해 살짝살짝 사용하는 정도 외에도 엄청난 작업이 가능한 파워풀한 개발 언어라는 것.


Python에 익숙해졌다면 어느 순간 이것으로 웹 서비스를 구성하는 게 가능할까? 하는 생각을 하게 될 수도 있죠. 물론 가능합니다. 그때 등장하는 낯선 단어가 Django입니다. 


Django는 Python으로 작성된 오픈 소스 웹 프레임워크입니다. 웹서비스를 위한 기능들을 담고 있어 개발자가 빠르고 효율적으로 웹 사이트나 애플리케이션을 구축할 수 있도록 돕습니다. MTV(Model-Template-View) 아키텍처를 사용하는데 데이터를 처리하는 Model, 사용자에게 보이는 Template, 그리고 데이터와 사용자 인터페이스 간의 중재자 역할을 하는 View로 구성되어 있습니다. MVC(Model-View-Controller) 패턴과 유사하죠. ORM(Object-Relational Mapping)으로 데이터베이스 스키마와 Python 코드 간의 매핑을 제공하고, 여러 보안 관련 기능도 기본으로 제공합니다. Django는 웹 개발의 일반적인 패턴들을 추상화하여 제공하므로, 개발자는 비즈니스 로직에 집중할 수 있죠. 




그렇다면 경험이나 지식이 있으신 분들은 너무 뻔한 이야기가 되겠지만 웹서비스를 제공하기 위한 서버를 어떤 순서로 구성하게 되는지 한번 간단하게 짚어 보겠습니다. 


먼저 서버에 Python을 설치합니다. Python은 서버에 여러 버전을 다중설치 하는 것이 가능합니다. 예를 들어, Ubuntu에서는 python3.6, python3.7, python3.8 등의 다양한 Python 버전을 동시에 설치할 수 있습니다. 그리고 Python은 가상환경 구성을 지원하는데 이를 사용하면 독립적인 파이썬 실행 환경을 구성할 수 있습니다. 이를 통해 여러 프로젝트에서 각각 다른 Python 버전과 패키지 의존성을 관리할 수 있죠. 


가상환경은 독립적인 디렉터리에 Python 인터프리터의 복사본, 표준 라이브러리 및 여러 필요한 파일들을 보관하고 이를 활용하는 방식입니다. 가상 환경이 활성화되면 Python 실행 시 사용되는 경로가 이 디렉터리를 가리키게 되고, 해당 환경에 설치된 패키지와 인터프리터 버전만 사용하게 돼요. 


다시 서버를 구성하는 방식법으로 돌아가자면 먼저 서버에 Python을 설치하고, 원하는 버전의 가상환경을 구축합니다.(python3.7 -m venv [가상환경이름]) 이후 가상환경을 활성화하고(source [가상환경이름]/bin/activate) 필요한 파일들을 설치합니다. 웹서비스를 제공하고 싶으면 Django를 이때 설치하면 되겠죠? 해당 가상환경에서 나오는 방법은 deactivate라는 명령어를 사용합니다. 


익숙하신 분들에게는 너무 당연한 내용이긴 하지만, Python과 Django에 대해 헛갈리고 계시는 초보분들에게는 도움이 될 수 있을까 해서 글을 남겨봅니다. 



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari