프로젝트 개요
본 프로젝트의 요구사항(코치 검색·필터, 반복 일정·출석, AI 레슨노트, 보호자 동의)을 기반으로 직접 구현한 프로젝트입니다. Flutter 앱 화면 흐름을 모바일 웹 화면으로 구성하고 FastAPI·PostgreSQL·OpenAI API 구조를 설계합니다.
작업 범위
- 코치 검색·필터·문의: 종목·지역·경력 조건으로 코치를 찾고 레슨 문의를 보내 회신·확정까지 진행 상태를 확인하는 화면입니다
- 반복 일정·출석 관리: 일·주·월 캘린더에서 반복 레슨을 등록하고 회차별로 일정을 바꾸며 출석·결석을 기록하는 화면입니다
- AI 레슨노트(음성 인식): 음성 녹음 또는 텍스트로 입력한 레슨 내용을 받아쓰기하고 정해진 양식으로 자동 정리해 코치가 수정·공개하는 화면입니다
- 보호자 동의·자녀 프로필: 만 14세 미만 가입 시 보호자 동의 요청·확인 이력을 남기고 보호자가 자녀 프로필을 등록·전환하는 화면입니다
주요 업무
- 코치 검색·필터·문의 화면: 검색 조건 URL 동기화와 문의 상태(문의→회신→확정) 전이를 하나의 흐름으로 설계합니다
- 반복 일정·출석 관리 화면: 반복 규칙은 규칙 테이블에 저장하고 회차 예외를 별도 행으로 분리합니다
- AI 레슨노트(음성 인식) 화면: OpenAI API 호출은 작업 대기열에서 처리하고 실패 시 재시도 상태를 화면에 표시합니다
- 보호자 동의·자녀 프로필 화면: 법정대리인 확인 수단은 외부 인증 모듈 연동 인터페이스로 추상화하여 설계합니다



프로젝트 핵심 과제
반복 레슨의 회차별 시간 변경과 출석 기록을 일관되게 유지하는 일정 모델 설계
음성 받아쓰기 결과의 오인식을 코치가 수정할 수 있는 노트 편집 흐름 설계
만 14세 미만 보호자 동의 확인 수단이 미확정이므로 교체 가능한 인터페이스 설계
대기열 처리 중 외부 API 지연 시 노트 상태를 안정적으로 표시하는 재시도 구조 설계
핵심 기능 상세
코치 검색·필터·문의
종목·지역·경력 조건으로 코치를 찾고 레슨 문의를 보내 회신·확정까지 진행 상태를 확인하는 화면입니다. 검색 조건 URL 동기화와 문의 상태(문의→회신→확정) 전이를 하나의 흐름으로 설계합니다.
- 종목·지역·경력 복합 필터를 SQLAlchemy 동적 쿼리 빌더로 조합
- Debounce 검색과 커서 기반 페이지네이션으로 카드 그리드 목록 구성
- 문의 상태를 PostgreSQL enum과 상태 전이 테이블로 관리
조건 검색 결과를 카드 그리드로 보여주고 문의 확정 상태까지 한 화면 흐름으로 이어지도록 구현합니다.


반복 일정·출석 관리
일·주·월 캘린더에서 반복 레슨을 등록하고 회차별로 일정을 바꾸며 출석·결석을 기록하는 화면입니다. 반복 규칙은 규칙 테이블에 저장하고 회차 예외를 별도 행으로 분리합니다.
- RRULE 형태의 반복 규칙과 회차 예외 테이블 분리 설계
- 캘린더 일·주·월 뷰 전환과 우측 슬롯 요약 패널 구성
- 출석 상태를 회차 단위로 기록하고 개인·그룹 레슨을 구분
반복 일정과 회차별 변경을 규칙·예외 두 계층으로 나누어 캘린더에 일관되게 표시하도록 설계합니다.


AI 레슨노트(음성 인식)
음성 녹음 또는 텍스트로 입력한 레슨 내용을 받아쓰기하고 정해진 양식으로 자동 정리해 코치가 수정·공개하는 화면입니다. OpenAI API 호출은 작업 대기열에서 처리하고 실패 시 재시도 상태를 화면에 표시합니다.
- OpenAI API 음성 받아쓰기와 텍스트 정리 2단계 파이프라인 구성
- 대기열 기반 비동기 처리와 지수 백오프 재시도 정책 설계
- 정리 결과를 양식 항목별 JSON으로 저장하고 편집 화면에 바인딩
받아쓰기와 양식 정리를 대기열로 분리하여 처리 상태와 재시도를 화면에서 확인할 수 있도록 구현합니다.


보호자 동의·자녀 프로필
만 14세 미만 가입 시 보호자 동의 요청·확인 이력을 남기고 보호자가 자녀 프로필을 등록·전환하는 화면입니다. 법정대리인 확인 수단은 외부 인증 모듈 연동 인터페이스로 추상화하여 설계합니다.
- 연령 분기 가입 흐름과 동의 요청·확인 상태 머신 설계
- 동의 이력 테이블에 약관 버전·시각을 기록하는 감사 구조
- 보호자 계정 하위 자녀 프로필 전환 UI와 권한 범위 분리
가입 연령에 따라 보호자 동의 단계를 분기하고 이력을 보관하는 구조를 외부 확인 수단 교체가 가능하도록 설계합니다.


프로젝트 진행 단계
레슨 도메인 모델링 및 ERD 설계 · 2026.10
코치·수강생·보호자·반복 일정 회차 예외를 PostgreSQL 테이블로 정의하고 관계 매핑
FastAPI 일정·문의 API 개발 · 2026.10
SQLAlchemy 기반 문의 상태 전이, 반복 일정 규칙 확장 API 구현
Flutter 앱 화면 및 AI 노트 연동 · 2026.10
검색·캘린더·노트 화면 구성, OpenAI API 받아쓰기 대기열 연동
보호자 동의 흐름 및 통합 점검 · 2026.10
연령 분기 동의 이력 구조 구현, AWS 배포 구성 점검
개발 결과
기술적 주안점
- 조건 검색 결과를 카드 그리드로 보여주고 문의 확정 상태까지 한 화면 흐름으로 이어지도록 구현합니다
- 반복 일정과 회차별 변경을 규칙·예외 두 계층으로 나누어 캘린더에 일관되게 표시하도록 설계합니다
- 받아쓰기와 양식 정리를 대기열로 분리하여 처리 상태와 재시도를 화면에서 확인할 수 있도록 구현합니다