📌 개념 정리
Flask와 Django의 특징 비교
✔️ Flask
- 규칙이 자유로워 원하는 방식대로 개발 가능
- 파일 구조가 명확하지 않아 복잡성 증가 가능
- 최소한의 규칙만 지키면 빠르게 작동
✔️ Django
- 명확한 규칙과 구조
- 정해진 파일 구성으로 일관된 개발 가능
- 규모가 크거나 협업 프로젝트에 적합
🚦 동작 원리 및 구조
Layered Pattern (계층 구조)
🔸 Controller
- 요청(request)/응답(response) 처리
- 입력 데이터 검증(validation)
- 응답 데이터 형식 변환
🔸 Service
- 비즈니스 로직 처리
- Controller와 Repository 사이를 연결
🔸 Repository
- 데이터베이스(DB)와의 통신 담당
- 데이터 저장 및 조회 역할
💻 코드 예시 및 흐름 분석
Flask에서의 API 흐름
1️⃣ Router (Endpoint)
- 요청이 오면 라우터가 처리할 함수를 지정
- 명사 형태로 endpoint를 구성 (users, user/1, products)
- HTTP Method (GET, POST, PUT, DELETE) 사용
2️⃣ Controller
- 요청 데이터를 받고, validation 수행
3️⃣ Service
- 로직 수행 (비즈니스 로직)
4️⃣ Repository
- 데이터베이스와 통신하여 데이터 처리
5️⃣ Response
- 가공된 데이터를 클라이언트에게 반환
예시 API 구조
- GET: /users (유저 목록 조회)
- POST: /users (유저 생성)
- PUT/PATCH: /users/1 (유저 정보 업데이트)
- DELETE: /users/1 (유저 삭제)
🧪 실전 사례
Django의 구조 (MVC vs MVT)
✔️ MVC (Model-View-Controller)
- Model: 데이터베이스 담당
- View: 사용자 인터페이스 담당
- Controller: 서비스 로직 담당
✔️ MVT (Model-View-Template, Django의 구조)
- Model: 데이터베이스 담당
- View: 서비스 로직 담당
- Template: 사용자 인터페이스 담당
DRF (Django REST Framework)
- urls.py (라우터)
- views.py (컨트롤러+서비스)
- serializers.py (데이터 검증 및 직렬화)
- models.py (데이터베이스)
🧠 고급 팁 or 자주 하는 실수
✅ RESTful API 규칙
- HTTP 메소드와 자원을 명확하게 구분
- endpoint는 명사로 구성, 동사 사용 지양
- 확장자(.txt, .json 등) 사용하지 않음
- 마지막 슬래시(/)는 포함하지 않음
- 대문자 대신 소문자 사용
- 긴 단어는 하이픈(-)으로 연결
✅ GraphQL의 개념 및 특징
- Endpoint가 단 하나
- Query(GET), Mutation(CRUD), Subscription 실시간 데이터
- 클라이언트가 필요한 데이터만 요청 가능
- Facebook이 개발한 API 설계 방식
✅ 마무리 요약 및 복습 포인트
📌 Flask는 자유도가 높으나 그만큼 구조적 복잡성 증가 가능 📌 Layered Pattern을 활용하면 구조화된 코드 작성 가능 📌 API 설계에서 RESTful API의 규칙 준수는 필수적 📌 GraphQL은 REST와는 다른 형태의 API 설계 방식으로, 유연한 데이터 요청 가능
이번 정리를 통해 프레임워크와 API 설계의 큰 흐름을 이해하고, 다양한 도구와 구조를 활용하여 효과적인 개발 환경을 구축할 수 있습니다. 💡
'멘토링' 카테고리의 다른 글
멘토링 내용 정리 database (4회차 정리) (0) | 2025.04.02 |
---|---|
멘토링 과제 database ERD 스타벅스(4회차) (0) | 2025.04.01 |
멘토링 내용 정리 database (3회차 정리-추가) (0) | 2025.03.28 |
멘토링 내용 정리 database (3회차 정리) (0) | 2025.03.27 |
멘토링 내용 정리 (2회차 정리) (0) | 2025.03.18 |