프로젝트 배경
1) 예상 리스크 및 대응 계획 - 운동 카드 순서 변경 시 전체 order_index를 일괄 업데이트하면서 동시 편집 충돌 없이 처리하는 낙관적 업데이트 + 서버 재동기화 구조 설계 - FullCalendar 이벤트가 치료사 수 증가에 따라 같은 날짜에 겹칠 때 가독성을 유지하는 이벤트 레이아웃 조정 전략 구현 - WeasyPrint PDF 렌더링 시 Pretendard 폰트와 표 레이아웃이 함께 정확
프로젝트 성과
환자·방문·처방 3테이블 JOIN 기반 이력 조회 구조 설계
patients, visits, prescriptions 테이블을 외래키로 연결하는 스키마를 설계하여, 환자 한 명의 전체 방문·처방 이력을 단일 JOIN 쿼리로 조회하는 구조를 구축할 예정입니다.
dnd-kit 기반 운동 카드 드래그앤드롭 편집기 구현
useSortable 훅으로 운동 카드 드래그 핸들을 구현하고, 순서 변경 시 order_index를 일괄 업데이트하는 PATCH 배치 엔드포인트를 설계합니다.
FullCalendar 날짜 범위 기반 동적 일정 로딩 구조 구현
FullCalendar의 eventSources 옵션을 활용하여 날짜 범위가 바뀔 때 해당 기간 예약 데이터만 FastAPI에서 패치하는 지연 로딩 구조를 구현할 예정입니다.
WeasyPrint + Jinja2 운동 처방전 PDF 페이지 분리 처리 구현
운동 항목 배열을 Jinja2 for 루프로 순회하여 표를 자동 생성하고, CSS page-break-inside 규칙으로 항목 수가 많아도 표가 페이지 중간에서 잘리지 않는 PDF 렌더링 구조를 설계합니다.
핵심 기능
진행 단계
DB 스키마 설계 및 FastAPI 기반 구성
2026.03.
patients, visits, prescriptions, exercises 테이블 관계형 스키마 설계, FastAPI 프로젝트 구조 및 Alembic 마이그레이션 설정, JWT 인증 미들웨어 구성
프로젝트 상세
1) 포트폴리오 소개 본 프로젝트의 요구사항(고객 관리, 자세 사진 업로드, 관절 키포인트 분석, NAI 154항목 채점, PDF 리포트)을 기반으로 직접 구현한 맞춤 데모입니다. 프로젝트 착수 시 이 데모를 그대로 확장하여 빠르게 개발을 진행할 수 있습니다. 2) 작업 범위 - 환자 등록 및 이력 관리: 치료사가 환자를 등록·조회·수정·삭제하고, 방문 이력과 처방 이력을 타임라인으로 조회합니다.







