Django 인터뷰 질문 및 핵심 개념 – Part 3
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 초보~중급 Django 개발자
- 인턴/신입 개발자 면접 준비자
- 프레임워크 기초 공부자
핵심 요약
- Django 프로젝트 생성:
django-admin startproject
및python manage.py startapp
명령어 사용 - ORM 활용:
python manage.py shell
로 데이터베이스와 상호작용 가능 - 보안 기능: CSRF 토큰을 통해 사이트 간 요청 위조 방지
섹션별 세부 요약
1. Django 프로젝트 생성
django-admin startproject projectname
명령어로 프로젝트 생성python manage.py startapp appname
명령어로 앱 생성
2. 개발 서버 실행
python manage.py runserver
명령어로 로컬 개발 서버 실행
3. 가상 환경(Virtual Environment)
python -m venv
또는virtualenv
로 생성- 프로젝트별 의존성 관리 및
requirements.txt
파일 생성 지원
4. 세션(Session) 메커니즘
- 사용자 요청 간 상태 유지 위한 딕셔너리 형태의 데이터 저장
request.session
을 통해 읽기/쓰기 가능
5. 정적 파일(Static Files)
- HTML, CSS, JavaScript 등 서버에서 그대로 전달되는 파일
STATIC_ROOT
설정으로 정적 파일 경로 관리
6. ORM(객체-관계 매핑)
python manage.py shell
로 ORM 활성화- Python 객체와 데이터베이스 테이블 매핑 가능
7. 슈퍼유저(Superuser) 생성
python manage.py createsuperuser
명령어로 생성migrate
실행 전 생성 불가
8. Jinja 템플릿 엔진
- Django 기본 템플릿 엔진 대체 가능한 유연한 엔진
- 조건문, 루프, 필터, 매크로 등 Python 문법 유사한 기능 제공
9. CSRF 토큰 보안
csrf_token
중간웨어로 요청 위조 방지- 쿠키와 폼 필드에 토큰 동기화 후 요청 검증
10. 중간웨어(Middleware)
- 요청/응답 전후에 처리 로직 삽입
MIDDLEWARE
설정 파일에서 활성화 가능
결론
- 가상 환경 사용을 통해 의존성 충돌 방지
- ORM으로 SQL 쿼리 직접 작성 없이 데이터베이스 작업 가능
- CSRF 토큰은 보안 필수 요소로 반드시 활성화
- 중간웨어를 통해 요청/응답 흐름 커스터마이징 가능