| 1 |
서버 |
노트 탭 → 애프터노트 작성(갤러리 및 파일) → 전체 입력 → 등록 |
POST /api/v1/afternotes → 500 Field 'created_at' doesn't have a default value — 애프터노트 등록이 서버에서 항상 실패 |
등록 성공 |
서버 DB afternote.created_at 컬럼 기본값/INSERT 누락 |
| 2 |
클라 |
#1과 동일 경로 |
등록이 500으로 실패해도 토스트·팝업 등 어떤 안내도 없이 무반응. 사용자는 등록된 것으로 오인 가능 |
실패 안내 표시 + 재시도 유도 |
AfternoteRepository가 에러를 로그만 남기고 UI 전달 안 함 |
| 3 |
클라 |
노트 탭 → 작성 → 종류=소셜네트워크 → 입력 후 등록 |
"수신자를 한 명 이상 선택해 주세요" 검증에 걸리지만 화면에 수신자 지정 UI가 아예 없어 등록이 원천 불가 |
갤러리/추모처럼 수신자 지정 섹션 노출 |
SocialNetworkEditorContent.kt가 recipientSection 파라미터를 받고도 렌더링하지 않음 (갤러리·추모는 RecipientDesignationSection렌더링) |
| 4 |
클라+서버 |
타임레터 탭 → 목록 항목 ⋯ → 삭제 |
클라는 POST /time-letters/delete 호출, 서버는 500 "Request method 'POST' is not supported" → 삭제 불가. 삭제 확인 팝업·실패 안내도 없음 |
삭제 성공(또는 실패 안내), 삭제 전 확인 팝업 |
클라-서버 HTTP 메서드 계약 불일치 (서버는 DELETE 기대 추정) |
| 5 |
클라 |
로그인 → 올바른 이메일 + 틀린 비밀번호 → 로그인 |
서버가 401 "아이디 또는 비밀번호가 일치하지 않습니다"를 반환해도 화면 무변화, 에러 문구 없음 |
실패 사유 표시 |
로그인 실패 상태가 UI에 반영되지 않음 |
| 6 |
클라 |
애프터노트/타임레터 작성 중 → 백 키 또는 ← 버튼 |
경고 없이 화면 종료, 작성 내용 전부 소실. 백 키가 어떤 때는 키보드만 닫히고 어떤 때는 화면이 닫히는 비일관 동작도 확인 |
"작성 중인 내용이 사라집니다" 확인 팝업 |
이탈 가드 미구현 |
| 7 |
클라 |
기록 탭 → 데일리 질문 → + → 작성 → 임시저장 |
임시저장은 서버 저장 성공(200, draft:true)하지만 목록에 안 보이고, 재진입 시 이어쓰기도 안 됨 → 사실상 접근 불가/유실 |
임시저장 글 목록 표시 또는 재진입 시 이어쓰기 제안 |
/daily-questions/today 응답의 draft:true를 클라가 무시 |
| 8 |
클라 |
데일리질문·일기 저장 → 목록 복귀 |
저장 직후 목록이 갱신되지 않음(빈 화면 유지). 서브탭 전환 후에야 표시됨. 홈의 일기 TOTAL·수신인 지정 배지도 실시간 미갱신(앱 재시작 시에만 갱신) |
저장/복귀 시 목록·홈 데이터 재조회 |
화면 복귀 시 refetch 누락 |
| 9 |
클라 |
홈 탭 → TODAY'S QUESTION 카드 |
날짜가 항상 "2026.04.10", 질문도 실제 오늘의 질문("휴식…")이 아닌 기본 문구("고마웠나요?") 고정 표시 |
실제 오늘 날짜·질문 표시 |
TodayQuestionCard.kt:37 기본값 하드코딩, HomeTabMindRecordLazyItems.kt:41에서 실데이터 미전달 |
| 10 |
클라 |
홈 탭 → "수신인 지정 미완료" 칩 탭 |
클릭 가능한 UI인데 탭해도 아무 동작 없음 |
수신자 등록 화면으로 이동 |
클릭 핸들러 미연결 |
| 11 |
클라 |
설정 → 상단 바로가기(고객센터/공지사항/수신자목록) |
3개 아이콘 모두 탭 무반응 (하단 리스트의 동일 메뉴는 정상 동작) |
각 화면으로 이동 |
클릭 핸들러 미연결 |
| 12 |
클라 |
타임레터 탭 → 우상단 프로필(👤)/설정(⚙) 아이콘 |
둘 다 탭 무반응 (홈 탭의 동일 설정 아이콘은 정상) |
설정/프로필 이동 |
타임레터 헤더에만 핸들러 미연결 |
| 13 |
클라 |
노트 탭 → 작성 → 남기실 말씀 카드의 "등록" 버튼 |
카드별 "등록" 버튼이 아무 동작 없음 |
정의된 동작 수행(또는 버튼 제거) |
AfternoteEditorContent.kt:268,300onMessageRegisterClick = {} 빈 람다 |
| 14 |
클라 |
노트 탭 → 작성 → 종류=추억 노트 → 추억 플레이리스트 |
카드에는 "현재 16개의 노래가 담겨 있습니다"인데 진입하면 "총 0곡" 빈 목록. 플레이리스트 화면엔 곡 추가 버튼도 없음 |
실제 곡 수 표시, 곡 추가 진입점 제공 |
EditorFormState.kt:49playlistSongCount: Int = 16 하드코딩 기본값 |
| 15 |
클라 |
기록 탭 → 주간리포트 |
상단 카운트는 데일리질문 1·일기 1인데 본문은 "이준혁님은 0일의 마음을 기록하셨네요" — 수치 불일치 |
기록 일수 정확 표시 |
기록일수 집계 로직/필드 불일치 |
| 16 |
클라 |
타임레터 목록 → 항목 탭(상세) |
상세 헤더의 제목·수신인·발송예정일이 밝은 배경 위 흰색 텍스트로 거의 안 보임 |
대비 확보(어두운 텍스트 또는 배경 딤 처리) |
헤더 배경 이미지 없을 때의 대비 미처리 추정 |
| 17 |
클라 |
설정 → 수신자 목록 / 타임레터 작성 → 수신인 선택 |
검색창 placeholder가 리터럴 "Text Field" 로 노출 |
한국어 안내 문구 (예: "이름으로 검색") |
placeholder 미지정/컴포넌트 기본값 노출 |
| 18 |
클라 |
기록 탭 → 데일리 질문(데이터 없음) / 설정 → 공지사항(데이터 없음) |
빈 목록일 때 안내 문구 없이 완전 빈 화면 |
빈 상태 안내 표시 |
빈 상태 UI 누락 (일기 탭·타임레터에는 있음) |
| 19 |
클라 |
기록 탭 → 일기(데이터 없음) |
빈 상태 문구가 "아직 등록된 답변이 없어요. 답변을 등록해 자신을 알아 보아요." — 노트 탭 문구 재사용으로 일기 맥락과 불일치 |
일기 맥락 문구 |
문구 재사용 |