Django 인터뷰 질문 및 핵심 개념 – 1부
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 웹 개발자 및 프레임워크 선택 고민 중인 개발자
- 난이도 관점: 중간 수준 이상의 개발자(프레임워크 비교 및 기술적 구현 방식 분석 필요)
핵심 요약
- Django와 Flask의 차이점
- Django는 "Django 방식"의 포괄적 기능과 강력한 ORM, 내장 관리자 인터페이스, DRF(Django REST Framework) 지원 등이 특징.
- Flask는 간결성과 유연성을 강조하며, 필요한 기능만 선택적으로 추가 가능.
- 프로젝트 구조
- Django는 앱 기반 구조(models, views, templates 등)를 강제하여 팀 협업에 유리.
- Flask는 개발자 주도의 프로젝트 구성 제공.
- 실무 적용 고려사항
- 대규모 애플리케이션(예: Instagram, Pinterest)에 적합한 Django는 확장성과 생산성을 중시.
- 소규모/마이크로서비스에 적합한 Flask는 성능과 가벼움을 강조.
섹션별 세부 요약
1. Django 개요
- 역사 및 특징
- 2003~2004년 Lawrence Journal-World에서 개발.
- Django Software Foundation (DSF)에 의해 유지 관리.
- "정리된 설계"와 빠른 개발을 목표로 한 고수준 Python 웹 프레임워크.
- 핵심 기능
- 내장 ORM 및 다중 데이터베이스 지원(PostgreSQL, MySQL 등).
- DRF(Django REST Framework)를 통한 API 개발 지원.
2. Django vs. Flask 비교
- 학습 곡선
- Django: 포괄적인 기능과 "Django 방식"으로 인해 초기 학습 곡선이 급격.
- Flask: 간단한 설정과 유연한 구조로 초보자에 유리.
- 프로젝트 구조
- Django: 앱 기반 구조(models, views, templates 등) 강제.
- Flask: 개발자 주도의 프로젝트 구성.
- 관리자 인터페이스
- Django: 내장 관리자 인터페이스 제공.
- Flask: Flask-Admin 등 제3자 도구 사용 필요.
- 성능 및 배포
- Django: 가볍지 않은 성능으로 인해 대규모 앱(Instagram, Pinterest)에 적합.
- Flask: 가벼운 웹 서버(Gunicorn, Docker)와 호환되어 마이크로서비스에 적합.
3. Django 사용 사례
- NASA, Boeing, Atlassian, Spotify, Instagram 등의 주요 사용자.
- Instagram은 3명의 개발자로 3000만 사용자를 지원.
- Django의 확장성과 스케일링 가능성을 강조.
결론
- 프로젝트 요구사항과 팀 규모에 따라 Django 또는 Flask 선택이 중요.
- 대규모 애플리케이션 및 빠른 개발 생산성이 필요한 경우 Django 추천.
- 소규모/마이크로서비스 및 성능 최적화가 우선시되는 경우 Flask 선택.
- DRF(Django REST Framework)와 Django Channels는 Django 기반 API 및 실시간 앱 개발에 필수.