Skip to content

fix(onboarding): 이메일 수정 뒤 도착한 이전 인증 성공이 다음 가입 단계로 진행시킨다 #2025

Closed

Description

@OnlyReadOneBook

작업 유형

bug — 버그·오동작

주 담당 모듈

onboarding — 온보딩

개요

회원가입 1단계에서 이메일 A의 인증번호 확인을 요청한 후 응답이 오기 전에 입력을 이메일 B로 바꾸면, A의 인증 성공 응답이 현재 B 폼을 다음 단계로 이동시킵니다. 현재 화면의 이메일과 서버가 검증한 이메일이 일치하지 않는데도 인증 통과처럼 진행되는 문제입니다.

재현(develop 816e9272, #1963 실제 VM 테스트):

  1. 이메일 old@example.com, 인증번호 123456 입력.
  2. verifyEmailAndProceed()를 호출하고 fake repository 응답을 CompletableDeferred로 대기시킴.
  3. 검증 진행 중 이메일을 new@example.com으로 변경.
  4. A의 검증을 성공으로 완료.
  5. repository 검증 기록은 old@example.com, UiState.email은 new@example.com인데 shouldNavigateToResidentNumber=true가 됨.

원인:

  • SignUpViewModel.kt:168에서 요청 시작 시 이메일을 캡처하고, 171행에서 입력 동일 여부 없이 이동 신호를 켭니다.
  • updateEmail은 이메일 문자열과 오류만 갱신하고 진행 중 인증과의 연결을 해제하지 않습니다.
  • SignUpScreen.kt:93-107의 이메일 필드는 인증 중에도 입력 가능하며, 잠기는 것은 하단 제출 버튼입니다.

완료 조건:

  • 인증 응답이 자신이 검증한 이메일·인증번호에만 적용되게 한다.
  • 검증 도중 이메일 또는 인증번호를 수정한 후 이전 성공·실패가 도착하는 순서를 검증한다.
  • 현재 폼과 무관한 결과가 다음 단계 이동이나 오류 표시를 일으키지 않게 한다.
  • 이전 인증에 대한 결과라는 이유로 새 요청의 상태까지 초기화하지 않는다.

중복 확인: #143은 1단계 verifyEmail API 도입, #1864는 아이디 찾기의 중복 호출 방지이며 이 요청/현재 입력 불일치와 다릅니다. 현재 열린 onboarding 이슈에 해당 시나리오 없음. #1963·#1825에서도 결과에 요청 식별 정보가 없고 동일 동작이 남습니다. 출시·가입 갈래 결정이 아니라 현재 가입 경로의 인증 결과 연결 결함입니다.

검증 결과: 실제 SignUpViewModel의 fake repository 기반 테스트 3건 전체 통과(현재 결함 발생을 단언). 구현이 고쳐졌다는 뜻은 아닙니다. 로컬 QA 코드/원본 XML은 이 작업의 보고서에 보관했습니다.

Activity

  1. github-actions commented on Sep 13, 2026

    @github-actions
    Contributor

    bug 이슈는 사이드바 Fields > Priority 로 심각도를 지정해야 합니다. 판정 기준:

    • Urgent: 치명 — 크래시·데이터 소실·보안 무력화·핵심 경로 차단·가짜 성공
    • High: 심각 — 실패·틀린 값의 정상 위장, 핵심 기능 무동작
    • Medium: 불편 — 우회로가 있는 오동작·틀린 표시, 핵심 흐름은 유지
    • Low: 경미 — 문구·정렬·마감 품질 흠, 기능 영향 없음

    값이 비어 있어도 이슈를 닫지는 않습니다. 이 안내는 이슈당 한 번만 답니다.

  2. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 14, 2026
  3. github-actions commented on Sep 14, 2026

    @github-actions
    Contributor

    이 이슈를 맡은 PR 은 #2102 다 (base refactor/1802-onboarding-mvi).

    base 가 기본 브랜치(develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에
    아무것도 표시하지 않는다. 본문에 Closes #N 이 있어도 마찬가지다 — 그 링크는 기본 브랜치를
    target 하는 PR 에서만 만들어진다.

    PR 이 닫히거나 머지되면 이 이슈의 pr-open 라벨은 다음 리컨사일에서 떨어진다.

  4. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:onboarding온보딩 기능 영역bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions