D1-4 작은 서비스의 요구사항과 설계

구현 요청
미니 교육 운영 포털의 요구사항을 정리해줘. 대상은 방문자와 로그인 회원이다. 필수 기능은 프로그램 목록, 신청, 본인 신청 조회·메모 수정·취소다.
Next.js App Router와 TypeScript, Supabase Auth·DB·RLS, Vercel을 사용한다. Git으로 변경을 기록하고 Docker는 로컬 Supabase 실험에 사용한다.
화면, 두 테이블의 데이터 모델, 사용자별 권한, 구현 순서와 완료 기준을 먼저 작성해줘. 결제·정원 동시성·실제 문자 발송은 이번 범위에 넣지 마.

검증 요청
계획의 각 기능에 사용자가 실행할 검증 한 가지를 붙여줘. 개인정보 없이 만들 수 있는 샘플 3개를 제안하고, 아직 결정하지 않은 요구사항을 구분해줘. 설계와 무관한 기능을 추가하지 마.

실습 절차
1. 공통 프로젝트인 미니 교육 운영 포털의 방문자·회원·운영자 역할을 정리한다.
2. 필수 기능을 프로그램 조회, 회원 신청, 내 신청 조회로 제한한다.
3. programs와 applications의 필요한 열을 적고 user_id의 의미를 설명한다.
4. 목록·내 신청·로그인·보안 화면을 종이에 그리거나 문서로 작성한다.
5. Codex에게 파일을 만들기 전에 계획과 구현 순서, 검증 방법을 요청한다.
6. 짝과 계획을 검토하고 민감한 작업은 MFA 단원에서 확장한다고 표시한다.

완료 확인
필수 기능이 세 묶음 이내로 정리된다.
각 화면이 읽고 쓰는 데이터와 권한이 연결된다.
완료 기준을 실제 행동으로 표현한다.