🔍 오늘의 학습 키워드
- WAS(Web Application Server) 개념 이해
- Nginx + Django 연동 구조 분석
- Django 프로젝트 생성 실습
- 프로젝트 폴더 구조 커스터마이징
- startproject 명령어 오류 해결
1. WAS란 무엇인가?
**WAS(Web Application Server)**는 웹 요청을 받아서 비즈니스 로직을 처리하고 결과를 반환하는 서버야.
Nginx 같은 웹 서버는 정적 파일을 처리하고, WAS는 동적인 요청을 처리한다.
✅ 역할 요약
- 클라이언트 요청 수신 → 로직 처리 → DB 조회 → 응답 반환
- Django, Spring, Node.js 등이 WAS 역할을 함
2. Nginx + Django 연동 예시 분석
server {
listen 80;
server_name 0.0.0.0;
root /app/static;
location /static/ {
alias /app/static/;
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://0.0.0.0:8000;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
📌 구조 설명
- /static/ → 직접 정적 파일 서빙
- 그 외 요청은 localhost:8000에 실행 중인 Django로 프록시
- Django는 WAS 역할 수행
3. Django 프로젝트 생성 실습
✅ 가상환경 구성
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install django
✅ 프로젝트 생성 (현재 폴더에 바로 생성)
django-admin startproject myproject .
📌 주의: startproject django-server . 처럼 하이픈(-)이 포함된 이름은 Python 식별자가 아니므로 오류 발생
CommandError: 'django-server' is not a valid project name.
4. 실무에서 많이 쓰는 프로젝트 구조
오늘 만든 폴더 구조는 실무에서 많이 사용하는 모듈화된 구성이야:
django-server_tmp/
├── .venv/ # 가상환경
├── cicid/ # CI/CD 관련 파일
├── config/ # Django 설정 파일들
├── sample/ # Django 앱
├── static/ # 정적 파일
├── templates/ # HTML 템플릿
✅ settings.py에서 적용한 설정 예시
BASE_DIR = Path(__file__).resolve().parent.parent
TEMPLATES = [
{
'DIRS': [BASE_DIR / 'templates'],
...
},
]
STATICFILES_DIRS = [BASE_DIR / 'static']
STATIC_URL = '/static/'
✍️ 마무리하며
오늘은 Django의 구조적 기초와 WAS의 개념, 그리고 웹 서버(Nginx)와의 연동 구조를 실습하며 감을 잡을 수 있었던 하루였다.
앞으로는 앱 기능 개발, DB 연동, 그리고 배포 자동화까지 확장해갈 예정!
'SK Networks Family AI bootcamp 강의노트' 카테고리의 다른 글
AI 특강 (6) | 2025.06.15 |
---|---|
74일차 [ 🛠 오늘의 개발 기록: AWS와 Lambda, CodeBuild 실전 문제 해결기 (2025.05.08) ] (0) | 2025.05.08 |
71일차 [ EC2, Xshell ] (1) | 2025.04.30 |
65일차 [ docker & linux ] (0) | 2025.04.22 |
64일차 [ docker & nginx , network ] (0) | 2025.04.17 |