콘텐츠로 이동
✍️ 수정가능누구나 고쳐도 됩니다. 고치면 하단 frontmatter의 갱신일·작성자·변경요약을 남겨 주세요.작성 Claude · 2026-06-04 · v12 재편·raw 컴파일·인간화

후기 개발 명세 (FRD)

요지

후기 작성·노출을 어떻게 구현하는지 정리한다. 스터디룸 참여자가 후기를 쓰면 강사·학생 프로필에 최신순으로 노출하는 게 골자다. 한 가지 선행 조건이 있는데, 후기를 언제부터 쓸 수 있는지 따지려면 학생의 수업 종료 상태값이 먼저 있어야 한다.

상위 PRD (링크 · 변경 시 알림)

기획(작성 주체·기간·예외)은 prd, 도메인은 studyroom이다.

기술 접근 · 아키텍처

참여 학생·연결 보호자·선생님이 후기를 쓰고, 강사·학생 프로필에 최신순으로 노출한다. 앞서 말한 대로 수업 종료 처리(참여중/수업 종료 상태값)가 작성 기간을 따지는 기반이다.

흐름은 단순하다. 입장 14일~종료 후 60일 사이이고 아직 안 썼으면 작성 버튼이 켜지고, 모달에서 본문·이미지를 넣으면 글자 수·이미지 수·중복을 검증해 저장한 뒤 프로필 목록에 최신순으로 띄운다. 작성 후 14일 안에는 수정할 수 있다.

API · 데이터 모델

동작 설명
후기 작성 본문(필수, ≤1,000자) + 이미지(선택, ≤3장). 작성 조건 검증
후기 목록 조회 강사/학생 프로필별, 최신순, 페이지네이션
후기 수정 작성일 기준 14일 이내
후기 신고 비속어·허위 → 관리자 검수 큐
수업 종료 처리(선행) 학생 상태 참여중↔수업 종료 전환(우선 단일 선택)

구체 엔드포인트와 role prefix는 백엔드 구현 시 studyroom에 반영한다.

데이터 쪽으로 후기는 스터디룸에 딸린 엔티티이고, 작성자(학생/보호자/선생님)·스터디룸·본문·이미지(최대 3장)·작성일·신고 상태·노출 여부를 가진다. 작성 기간 판정의 기반인 학생 상태값은 참여중/수업 종료로 나뉘며, 시작일은 가입일, 종료일은 종료 처리일이다(재개하면 종료일만 지운다). 작성은 입장 14일 후부터 수업 종료 60일 후까지, 스터디룸당 한 번만 가능하다.

의존성 · 영향 범위

가장 중요한 의존은 선행 작업이다 — 수업 종료 처리(학생 상태값)가 없으면 작성 기간 자체를 판정할 수 없다. 이미지 업로드는 에디터 업로드 정책을 따르고, 신고 처리는 관리자 검수 경로와 연동된다.

예외·검증

상황 처리
이미지 3장 초과 "최대 3장까지만 첨부할 수 있어요."
본문 1,000자 초과/빈값 입력 제한/필수 검증
이미 작성 "이미 후기를 작성했어요!" (스터디룸당 1회)
작성 기간 외 버튼 비활성
미로그인 로그인 후 작성 화면 복귀
신고됨 "관리자 검수 중"(강사·작성자만 열람), 검수 후 비공개/삭제
네트워크 오류 "저장 실패. 다시 시도해주세요."

테스트 계획

공통 전략은 qa-playbook을 따른다. 이 기능의 핵심은 작성 조건 경계다 — 입장 14일·종료 후 60일·1회 제한이 정확히 걸리는지, 글자 수·이미지 수 제한과 중복 작성 차단이 동작하는지를 본다. 그 밖에 신고가 검수 상태로 잘 넘어가는지, 수업 종료·재개 상태값이 올바르게 전이되는지, 목록이 최신순으로 정렬되는지를 확인한다.

작업 분해 (이슈 링크)

먼저 수업 종료 처리(학생 상태값·재개)를 깔고, 그 위에 후기 도메인·엔티티와 작성·조회·수정 API, 신고·검수 상태, 프로필 노출 목록을 얹는 순서로 진행한다.