📌 개요
이번 글에서는 Django와 PostgreSQL을 활용한 블로그 분석 프로젝트를 시작하는 방법을 다룹니다. 프로젝트 설정부터 환경 구성, 데이터베이스 연결, 기본 API 테스트까지 순차적으로 진행하니 따라오시면 Django 개발 환경을 완벽하게 구축할 수 있습니다.
🎯 1. 프로젝트 환경 설정
1️⃣ 가상환경 생성 및 Python 버전 관리
본 프로젝트는 pyenv를 활용하여 Python 3.13.0을 기반으로 진행됩니다.
# pyenv를 사용하여 Python 3.13.0 설치
pyenv install 3.13.0
# 가상환경 생성
pyenv virtualenv 3.13.0 blog_analysis
# 가상환경 활성화
pyenv activate blog_analysis
✅ 확인:
which python # /Users/사용자/.pyenv/versions/blog_analysis/bin/python
2️⃣ Django 및 필수 패키지 설치
Django 프로젝트를 실행하기 위해 필요한 패키지를 설치합니다.
pip install django djangorestframework django-environ psycopg2-binary
✅ 설치 확인:
pip list | grep Django # Django 5.1.6
pip list | grep djangorestframework # djangorestframework 3.14.0
🎯 2. Django 프로젝트 생성 및 설정
1️⃣ Django 프로젝트 생성
Django 프로젝트를 config라는 이름으로 생성합니다.
mkdir blog_analysis && cd blog_analysis
django-admin startproject config .
✅ 디렉터리 구조 확인:
blog_analysis/
│── config/ # Django 프로젝트 폴더
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
│── manage.py
2️⃣ Django 서버 실행 및 테스트
python manage.py runserver
✅ 출력 예시:
Starting development server at http://127.0.0.1:8000/
브라우저에서 http://127.0.0.1:8000/에 접속하여 Django 기본 화면이 보이는지 확인합니다.
🎯 3. PostgreSQL 데이터베이스 설정
1️⃣ PostgreSQL 설치
Mac (Homebrew 사용)
brew install postgresql
brew services start postgresql
Ubuntu (Linux)
sudo apt install postgresql postgresql-contrib
sudo systemctl start postgresql
✅ 설치 확인:
psql --version # psql (PostgreSQL) 15.0
2️⃣ 데이터베이스 및 사용자 생성
psql postgres
CREATE DATABASE blog_db;
CREATE USER blog_user WITH PASSWORD 'yourpassword';
ALTER ROLE blog_user SET client_encoding TO 'utf8';
GRANT ALL PRIVILEGES ON DATABASE blog_db TO blog_user;
\q # PostgreSQL 콘솔 종료
3️⃣ .env 파일 설정
touch .env
📌 .env 파일 내용:
DB_NAME=blog_db
DB_USER=blog_user
DB_PASSWORD=yourpassword
DB_HOST=localhost
DB_PORT=5432
4️⃣ Django 프로젝트에서 DB 연결 설정
📌 📂 config/settings.py 수정:
import environ
# 환경변수 설정
env = environ.Env()
environ.Env.read_env()
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': env('DB_NAME'),
'USER': env('DB_USER'),
'PASSWORD': env('DB_PASSWORD'),
'HOST': env('DB_HOST', default='localhost'),
'PORT': env('DB_PORT', default='5432'),
}
}
5️⃣ 마이그레이션 실행
python manage.py migrate
✅ 출력 예시:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
6️⃣ Django 슈퍼유저 생성
python manage.py createsuperuser
✅ 입력 예시:
Username: admin
Email address: admin@example.com
Password: ********
✅ 관리자 페이지 접속: http://127.0.0.1:8000/admin/
🎯 4. analysis 앱 생성 및 기본 API 테스트
1️⃣ analysis 앱 생성
python manage.py startapp analysis
✅ 디렉토리 구조 확인:
analysis/
│── __init__.py
│── admin.py
│── apps.py
│── models.py
│── views.py
│── urls.py (추가해야 함)
2️⃣ INSTALLED_APPS에 analysis 추가 (config/settings.py)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'rest_framework',
'analysis',
]
3️⃣ analysis/urls.py 생성 및 설정
touch analysis/urls.py
📌 📂 analysis/urls.py 내용:
from django.urls import path
from .views import health_check
urlpatterns = [
path('health/', health_check, name='health_check'),
]
4️⃣ views.py에서 기본 API 추가
📌 📂 analysis/views.py 수정:
from django.http import JsonResponse
def health_check(request):
return JsonResponse({'status': 'OK', 'message': 'API is running'})
5️⃣ config/urls.py에서 analysis.urls 포함
📌 📂 config/urls.py 수정:
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('analysis.urls')),
]
6️⃣ API 테스트 (/api/health/)
python manage.py runserver
✅ URL 테스트: http://127.0.0.1:8000/api/health/ 을 접속 했을때에 아래처럼 나오면 정상이다.
여기서 우리는 / path에는 아직 작업을 하지 않았기 때문에 404 페이지가 나오는 것은 정상이고 우리가 등록한 /admin/, /api/health/ 만 나오는 것이다.
{
"status": "OK",
"message": "API is running"
}
🎯 마무리
이제 Django + PostgreSQL 기반 블로그 분석 프로젝트의 기본 환경이 준비되었습니다! 🚀 다음 글에서는 블로그 분석 기능을 위한 데이터 모델 설계 및 크롤링 기능 구현을 다룰 예정입니다.
빠른 셋팅을 위해 로컬에 구성했으나 추후 각 요소들을 docker로 생성, aws로 이동할 예정입니다.
Docker를 활용한 PostgreSQL 연동 및 로컬 개발 환경 설정
이직한 곳에서 Java Spring 프로젝트를 처음 경험하면서 새로운 개발 환경에 필요한 것들을 나와 회사에 추가하면서 같이 성장을 하고자 글을 시작합니다. 이미 다양한 부분을 적용을 했지만 이번
migo-dev.tistory.com