응답 매핑 테스트를 쓰다 발견했다. 같은 미지 값이 **화면마다 다른 것으로 보인다.** ## 무엇이 다른가 `ChallengeResponse.kt` — 서버가 모르는 `mode` 값을 보냈을 때: | 매퍼 | 줄 | 접는 값 | |---|---|---| | 설정 조회 (`ChallengeSettingsResponse.toDomain`) | 218 | `SOLO` | | **공개 상세** (`ChallengeDetailResponse.toDomain`) | **350** | **`GROUP`** | | 내 챌린지 목록 (`MyChallengeResponse.toDomain`) | 555 | `SOLO` | ## 왜 그냥 두면 안 되는가 `mode` 는 화면 구성을 가른다 — 그룹이면 정원·공개 범위·랭킹이 보이고, 솔로면 그 자리가 사라진다. 같은 챌린지를 **목록에서는 솔로로, 상세에서는 그룹으로** 보게 된다는 뜻이다. 사용자는 앱이 오작동한다고 느끼고, 어느 쪽이 진짜인지 알 방법이 없다. 서버가 `mode` 를 늘리는 순간(예: 페어·팀) 실제로 벌어진다. ## 선택지 1. **셋 다 같은 값으로 통일** — 어느 쪽이든 최소한 일관된다 2. **모르면 실패로 올린다** — `requireField` 처럼 다뤄 조용한 오작동 대신 명시적 오류로. 다만 구버전 앱이 새 mode 의 방을 아예 못 여는 대가가 있다 3. **`mode` 를 nullable 로 두고 화면이 "알 수 없음"을 그린다** — 가장 정직하지만 화면 작업이 따른다 ## 참고 현재 동작은 `ChallengeSettingsMappingTest.모르는 참여 형태는 솔로로 접는다` 가 못 박고 있다. **정책이 정해지면 그 테스트도 함께 고쳐야 한다** — 지금은 "이게 옳다"가 아니라 "지금 이렇다"를 기록한 것이다.
Activity
Sadturtleman commentedon Sep 29, 2026
사용자 요청으로 기존 열린 이슈를 모두 닫고, 2026-09-30 QA 메모의 미수정 33개 항목을 P1·P2·P3으로 재등록합니다. 이 종료는 해결 완료를 의미하지 않으며 기존 본문과 이력은 보존합니다.