블로그로 돌아가기

Ubuntu 21.04 Server에서 Django와 함께 PostgreSQL 사용하기

Ubuntu 21.04 Server에서 Django와 함께 PostgreSQL 사용하기

Django은 강력하고 확장 가능하며 안전하고 고성능의 웹 앱을 만드는 프로세스를 간소화하는 잘 알려진 웹 프레임워크입니다. 이 프레임워크는 Python으로 작성된 오픈 소스 프로젝트입니다. 여기에서 Django에 대한 자세한 정보.

를 확인할 수 있습니다. 모든 웹 앱은 데이터를 관리하기 위해 백엔드로 데이터베이스가 필요합니다. Django는 백엔드로 다양한 데이터베이스 엔진을 지원합니다. 예를 들어, MySQL, PostgreSQL, SQLite 등이 있습니다. PostgreSQL은 강력한 오픈 소스 객체 관계형 데이터베이스 시스템입니다. 안정성, 확장성, 보안 및 강력한 기능 세트로 유명합니다. 여기에서 PostgreSQL에 대해 자세히 알아볼 수 있습니다.

이 가이드에서는 샘플 Django 앱에서 PostgreSQL을 백엔드로 통합하는 방법을 보여줍니다.

전제 조건

Django를 사용하려면 특정 시스템 구성이 필요합니다.

이 가이드에서는 기능적인 Django 앱에 필요한 다양한 Python 모듈과 라이브러리를 사용하는 방법도 보여줍니다.

1단계. 필요한 구성 요소 설치

프로젝트가 작동하려면 Ubuntu 시스템에 여러 중요한 패키지가 설치되어 있어야 합니다. 다행히도 이 패키지들은 모두 공식 Ubuntu 패키지 저장소에서 직접 제공됩니다. 이러한 패키지에는 Python 구성 요소와 데이터베이스(PostgreSQL) 구성 요소가 포함됩니다.

먼저 터미널을 실행하고 APT 패키지 캐시를 업데이트합니다.

Using PostgreSQL with Django 1

다음으로 패키지를 설치합니다.

Using PostgreSQL with Django 2

2단계. 데이터베이스 준비

이제 PostgreSQL이 설치되어 사용할 준비가 되었습니다. 다음으로 Django 앱을 위한 전용 데이터베이스와 사용자를 생성하겠습니다. 전용 사용자를 두는 것은 데이터베이스 및 권한 관리에 유용합니다.

설치 중에 PostgreSQL은 전용 사용자 postgres를 생성합니다. 이 사용자는 PostgreSQL에서 모든 관리 작업을 수행할 수 있는 권한을 가집니다. 다음 postgres 계정에 액세스합니다:

사용자 postgres로 새로운 셸 세션에 진입해야 합니다. 그런 다음 PostgreSQL 셸을 엽니다:

이제 Django 앱을 위한 전용 데이터베이스를 생성하겠습니다. Django 앱과 일치하는 이름을 지정하는 것이 좋습니다.

다음으로 전용 데이터베이스 사용자를 생성하겠습니다. 이 사용자를 사용하여 Django 전용 데이터베이스에 액세스합니다:

다음 단계는 새 사용자에 대한 몇 가지 연결 매개변수를 조정하는 것입니다. 이렇게 하면 연결이 설정될 때마다 값을 쿼리할 필요가 없으므로 데이터베이스 작업 속도를 높이는 데 도움이 됩니다. 다음 명령을 실행합니다:

이 명령들을 간단히 살펴보겠습니다:

  • 기본 인코딩을 UTF-8로 설정합니다. 이는 Django가 데이터베이스와 상호 작용할 때 예상하는 인코딩입니다.

  • 기본 트랜잭션 스키마는 "read committed"로 설정되어 커밋되지 않은 트랜잭션의 읽기가 차단됩니다.

  • 시간대는 위치에 따라 설정해야 합니다.

시간대 이름을 잘 모르는 경우 다음 명령을 실행하면 PostgreSQL에서 지원하는 모든 시간대가 나열됩니다:

Using PostgreSQL with Django 4

마지막으로, Django 전용 데이터베이스에 대한 모든 권한을 새 사용자에게 부여합니다:

이제 PostgreSQL 작업이 끝났습니다. psql 쉘을 종료하고 postgres 세션에서 로그아웃합니다.

3단계. Django 설치

Django 앱에 필요한 데이터베이스 서버를 구성했습니다. 이제 전용 Django 앱을 설치하고 구성하겠습니다. Django는 공식 Ubuntu 리포지토리에서 직접 설치할 수 있지만, 이 방법은 권장하지 않습니다. 시스템 전역에 Django가 설치되기 때문입니다. 더 나은 유연성과 관리 편의성을 위해 가상 환경에 Django를 설치하는 것이 좋습니다. 가상 Python 환경 내에서 Django를 설치하고 구성하는 것이 일반적인 관례입니다.

Python에는 virtualenv 라는 대상 위치에 가상 Python 환경을 생성하는 모듈이 있습니다. 이 환경은 자체적인 Python 바이너리 및 구성 복사본을 갖게 됩니다. 가상 환경 내에서 변경 사항을 적용해도 시스템의 나머지 부분에는 영향을 미치지 않습니다.

다음을 설치합니다: virtualenv:

Using PostgreSQL with Django 5

다음으로, Python 가상 환경을 구축할 전용 디렉토리를 만드는 것이 목표입니다. 이 디렉토리는 Django 앱의 기반 역할을 하게 됩니다. 데모를 위해 앱 이름은 sample_app으로 하겠습니다. 새 디렉토리를 생성합니다:

현재 활성 디렉토리를 변경하고 가상 환경을 구축합니다:

그 후, 가상 환경을 활성화합니다:

이제 가상 환경이 준비되어 작동합니다. 그런 다음, pip를 사용하여 Django 및 psycopg2 (PostgreSQL용 Python 어댑터)를 설치합니다:

Using PostgreSQL with Django 6

마지막으로, Django 도구를 사용하여 새 Django 프로젝트를 생성할 수 있습니다. 이렇게 하면 현재 디렉토리에 모든 코드와 관리 스크립트를 포함하는 동일한 이름의 하위 디렉토리가 생성됩니다:

4단계. Django 프로젝트 구성

Django 프로젝트에는 웹 앱으로 작동하는 데 필요한 모든 기본 도구가 포함되어 있습니다. 이를 데이터베이스와 통합하려면 구성 파일을 일부 수정해야 합니다.

텍스트 편집기에서 settings.py 파일을 엽니다:

아래로 스크롤하여 DATABASES 섹션으로 이동합니다. 기본적으로 SQLite를 사용하도록 구성되어 있습니다.:

우리의 목적에 맞게 코드를 다음과 같이 변경합니다:

여기서 Django가 데이터베이스 통신을 위해 psycopg2 어댑터를 사용하도록 설정합니다. 또한 데이터베이스 이름과 전용 사용자의 사용자 이름 및 비밀번호와 같이 필요한 모든 데이터베이스 정보를 선언합니다.

완료되면 파일을 저장하고 편집기를 닫습니다.

5단계. 데이터베이스 마이그레이션

Django가 PostgreSQL 데이터베이스에 액세스하도록 구성되었습니다. 이제 데이터 구조를 데이터베이스로 마이그레이션할 수 있습니다. Django에서는 이를 마이그레이션.

이라고 합니다. 데이터베이스 변경 사항을 마이그레이션하려면 관리 스크립트인 manage.py를 실행합니다.:


Using PostgreSQL with Django 7

다음으로, Django 앱을 위한 슈퍼유저(superuser)를 생성합니다:

Using PostgreSQL with Django 8

이 슈퍼유저 계정은 Django 앱의 관리자 계정 역할을 하게 됩니다.

6단계. 변경 사항 테스트하기

지금까지 Django 앱에 여러 가지 수정을 가했습니다. 모든 것이 의도한 대로 작동하는지 확인할 시간입니다. 앱을 실행하고 관리자 패널에 접속하여 이를 확인해 보겠습니다.

Django 앱을 로컬에서 개발하고 있으므로, 서버를 다음에서 시작합니다: localhost. 관례에 따라, 다음 포트에서 실행하겠습니다: 8000. 방화벽이 구성되어 있다면, 다음 포트로의 트래픽을 허용해야 합니다: 8000. 다음에 대해 자세히 알아보세요: 여기에서 UFW의 기본 사항.

Django 서버 실행:

브라우저에서 URL에 접속합니다:

Using PostgreSQL with Django 9

Django 설치 성공 페이지가 나타나야 합니다. Django 관리자 페이지에 접속하려면 다음 URL로 이동하세요:

Using PostgreSQL with Django 10

로그인하려면 앞서 생성한 슈퍼유저를 사용해야 합니다:

짜잔! 관리자 패널에 성공적으로 접속했습니다!

둘러보기를 마쳤으면, 콘솔에서 Ctrl + C를 눌러 Django 서버를 중지합니다.

마치며

이 가이드에서는 샘플 Django 앱을 구축하고 PostgreSQL을 백엔드로 구성하는 방법을 성공적으로 보여드렸습니다. 일반적으로 SQLite는 개발 단계(및 가벼운 프로덕션 사용)의 요구 사항을 충족하기에 충분하지만, 대부분의 프로젝트는 더 완전한 기능을 갖춘 DBMS로 전환함으로써 큰 이점을 얻을 수 있습니다. PostgreSQL은 성능과 확장성 면에서 훌륭한 선택입니다.

Django는 수많은 기술과 함께 작동할 수 있는 다재다능한 웹 프레임워크입니다. Django 사용법을 보여주는 더 많은 클라우드 가이드를 살펴보세요:

즐거운 컴퓨팅 되세요!

author

Preslav Dobrev

작성자 · CloudSigma

Preslav Dobrev는 CloudSigma의 크리에이티브 디자이너로서, 전통적이고 혁신적인 마케팅 채널을 활용하여 일관된 비즈니스 정체성을 구축하는 데 중점을 두고 있습니다. 그는 영향력 있는 브랜드 내러티브를 창출하기 위해 예술적 비전과 전략적 마케팅을 결합하는 데 능숙합니다.

댓글

아직 댓글이 없습니다. 첫 번째로 작성해 보세요.