Repository navigation
feat: 온보딩 완료 정보를 서버에 저장 - #179
Conversation
dltldn1234
left a comment
There was a problem hiding this comment.
검토 결과, 현재 상태로는 Approve하지 않고 수정 요청합니다.
차단 항목은 Release 빌드에서 온보딩 서버 저장이 조용히 건너뛰어지는 점입니다. GYMUPApp은 #if DEBUG 바깥에서 submissionService를 nil로 주입하고, 아래 인라인 코드는 서비스가 없어도 성공을 반환합니다. 그러면 온보딩 화면이 로컬 저장과 완료 처리를 진행하지만 PUT /api/v1/users/me/onboarding은 전송되지 않습니다. 이번 PR의 목적이 Debug 로컬 서버 확인에 한정된 것이라면 그 범위를 PR/화면 동작에 명시하고, Release의 누락 상태를 성공으로 표시하지 않는 처리가 필요합니다. 제품 기능까지 의도한다면 Release용 인증된 서비스 구성이 필요합니다.
Notion 링크와 #178의 매핑 요구, 기존 OnboardingAPIService의 경로/DTO를 확인했습니다. 다만 연결된 Notion에서는 원본 데이터베이스의 행을 읽을 수 없어 필드 계약 전체를 독립 대조했다고 보지는 않습니다. CI의 프로젝트 생성, SwiftLint, 단위 테스트는 모두 통과한 것으로 확인했습니다.
| errorMessage = "온보딩 정보를 확인한 뒤 다시 시도해 주세요." | ||
| return false | ||
| } | ||
| guard let service else { |
There was a problem hiding this comment.
[P1] 서비스가 없는 Release 경로를 성공 처리하지 마세요. GYMUPApp은 #if DEBUG에서만 서비스를 만들기 때문에 Release에서는 이 분기로 들어와 true를 반환합니다. OnboardingFlowView는 그 값을 성공으로 받아 로컬 설정을 저장하고 온보딩을 완료하므로, 서버의 PUT /api/v1/users/me/onboarding은 실행되지 않은 채 저장된 것처럼 보입니다. Release API 구성이 후속 범위라면 현재 빌드가 Debug 전용임을 명시하고 이 경로를 성공처럼 표시하지 않도록 해 주세요. 실제 제품 저장을 목표로 한다면 Release용 인증된 서비스 주입과 테스트가 필요합니다.
Summary
Related issue
Closes #178
Verification
Review checklist
범위 및 Release 동작
이번 PR은 Debug 빌드에서 로컬 Compose (
http://localhost:8000)와 개발 토큰을 사용한 온보딩 저장 검증만 다룹니다. Release용 인증 구성과 실제 서버 저장은 후속 작업입니다. Release에서 저장 서비스가 구성되지 않은 경우 성공이나 온보딩 완료로 처리하지 않고, 서버 저장을 사용할 수 없음을 표시합니다.