출석부-Django

김의석 ·2024년 9월 9일

Hello! Poko Ver.2

목록 보기
15/28

API 설계

문제 요약

UI를 통해 출석부 시스템에서 필요한 API를 정의하고 설계함. 출석부와 관련된 학생(students), 출석(attendance), 선생님(teachers) 등의 자원에 대해 CRUD 작업을 수행할 수 있도록 API를 구성.

설계 목표

  • 자원 중심의 API 설계: RESTful 원칙에 따라 각 자원에 대해 명확한 URL 패턴과 HTTP 메서드를 사용.
  • CRUD 작업 포함: 각 자원에 대해 GET, POST, PUT, DELETE 작업을 통합 관리.
  • 확장 가능성: 자원에 대한 상세 조회 및 수정이 가능하도록 id 기반의 URL 구조 사용.

API 설계 내용

  1. students API:

    • 경로: /api/students/ (학생 목록 조회 및 생성)
    • 세부 조회/수정 경로: /api/students/{student_id}/info (특정 학생 정보 조회 및 수정)
  2. attendance API:

    • 경로: /api/attendance/ (출석 데이터 목록 조회 및 생성)
    • 세부 조회/수정 경로: /api/attendance/{id}/ (특정 출석 정보 조회 및 수정)
    • 날짜별 출석 조회 경로: /api/attendance/dates (날짜별 출석 정보 조회)
  3. teachers API:

    • 경로: /api/teachers/ (선생님 목록 조회 및 생성)
    • 세부 조회/수정 경로: /api/teachers/{teacher_id}/info (특정 선생님 정보 조회 및 수정)

DRF ViewSet과 Router 적용 고려

  1. ViewSet 사용:

    • ViewSet은 여러 HTTP 메서드를 하나의 클래스에서 관리하며, 기본적인 CRUD 작업을 통합하여 관리할 수 있음.
    • 각 자원에 대해 반복적인 CRUD 작업이 필요할 때, DRF의 ViewSet과 Router를 사용하여 URL 패턴을 자동으로 생성하고 관리할 수 있음.
  2. ModelViewSet과 ViewSet의 차이:

    • ModelViewSet: 기본적으로 create, read, update, delete 기능을 제공하는 완전한 CRUD 뷰셋.
    • ViewSet: 특정 HTTP 메서드를 커스텀하여 사용하는 뷰셋으로, 필요한 메서드만 구현할 수 있음.

    ViewSet을 사용하면 URL 라우팅을 간소화할 수 있고, DRF Router를 통해 자원의 경로를 일관성 있게 관리 가능.

ModelViewSet과 ViewSet의 사용

ModelViewSet과 ViewSet 적용 과정을 정리.


출석부 초기 이슈 정리

인증 및 보안 이슈 정리(JWT, CSRF)

주차별 개발 과정 정리

10월 4주차

profile
널리 이롭게

0개의 댓글