Skip to content

[GMSS-136][GMSS-102] feat: 사용자 정보 조회 및 닉네임 변경·회원 탈퇴 기능 구현 - #16

Merged
soyeonLee126 merged 15 commits into
developfrom
feature/user-profile
Aug 10, 2026
Merged

[GMSS-136][GMSS-102] feat: 사용자 정보 조회 및 닉네임 변경·회원 탈퇴 기능 구현#16
soyeonLee126 merged 15 commits into
developfrom
feature/user-profile

Conversation

@seunghee17

Copy link
Copy Markdown
Collaborator

작업 개요

사용자가 설정 화면에서 자신의 정보를 조회하고, 닉네임을 변경하거나 회원 탈퇴를 진행할 수 있도록 사용자 설정 기능을 구현했습니다.
서버 응답 DTO와 domain 모델을 분리하고, 닉네임 입력 및 서버 오류를 domain 오류로 변환하도록 계층별 책임을 정리했습니다. 회원 탈퇴 성공 후에는 기존 로그아웃·세션 상태 변경 흐름을 통해 로그인 화면으로 이동합니다.

작업 유형

  • feat: 새 기능
  • fix: 버그 수정
  • refactor: 리팩토링 (동작 변경 없음)
  • build: 빌드/의존성 설정
  • chore: 기타 (문서, 설정 등)
  • test: 테스트 추가/수정

변경 사항

  • :feature:setting 모듈을 추가하고 앱 및 프로젝트 모듈 구성에 연결했습니다.
  • 홈 화면에서 설정 화면으로 이동할 수 있도록 SettingKey와 navigation entry를 추가했습니다.
  • 설정 화면에 다음 사용자 기능을 구현했습니다.
    • 사용자 정보 조회
    • 닉네임 변경
    • 회원 탈퇴
  • 사용자 관련 domain 모델과 Repository를 domain/user 패키지로 정리했습니다.
  • 닉네임 입력값의 앞뒤 공백 제거 및 길이 검증을 domain UseCase에서 처리했습니다.
    • 공백 입력
    • 2자 미만
    • 20자 초과
  • NicknameUpdateException을 독립적인 domain 오류 타입으로 분리했습니다.
  • 서버 닉네임 오류 코드를 data 계층에서 domain 오류로 변환했습니다.
    • INVALID_INPUTMissingNickname
    • INVALID_NICKNAMEInvalidNickname
  • AppResult.mapFailure를 추가해 기존 실패 원인을 필요한 domain 오류로 변환할 수 있도록 했습니다.
  • 닉네임 오류 종류에 따라 사용자 메시지를 구분했습니다.
    • 닉네임 누락
    • 길이 또는 금칙어 오류
    • 네트워크 오류
    • 기타 오류

관련 이슈

  • Closes #

관련 작업 (Notion)

스크린샷 / 동작 화면

체크리스트

  • base 브랜치가 develop으로 설정되어 있다
  • 로컬 빌드 및 실행을 확인했다
  • 커밋 메시지가 컨벤션(feat:, fix: 등)을 따른다
  • 불필요한 로그/주석/디버그 코드를 제거했다
  • 리뷰어가 이해할 수 있도록 설명을 작성했다

리뷰 요청 사항

  • 닉네임 입력 검증과 서버 오류 코드의 domain 오류 변환 경계가 적절한지 확인 부탁드립니다.

- 탈퇴 Usecase, 닉네임 업데이트 usecase test code 추가
- AppResult.mapFailure`를 추가해 기존 실패 원인을 필요한 domain 오류로 변환할 수 있도록 추가
- 닉네임 유효성 검증 usecase 정의
@seunghee17
seunghee17 marked this pull request as draft August 5, 2026 13:03
@seunghee17 seunghee17 changed the title [GMSS-136][GMSS-102] 사용자 정보 조회 및 닉네임 변경·회원 탈퇴 기능 구현 [GMSS-136][GMSS-102] feat: 사용자 정보 조회 및 닉네임 변경·회원 탈퇴 기능 구현 Aug 5, 2026
  - 닉네임 길이 검증 실패를 InvalidLength로 분리
  - 서버 닉네임 거절과 로컬 입력 검증 메시지 구분
  - 설정 화면 액션 실행 중 중복 요청 방어 추가
  - 탈퇴 성공 시 로딩 상태 해제
@seunghee17
seunghee17 marked this pull request as ready for review August 6, 2026 05:41
Comment thread data/src/main/java/com/gamss/android/data/di/RepositoryModule.kt
Comment thread feature/setting/build.gradle.kts Outdated
Comment thread domain/src/main/kotlin/com/gamss/android/domain/user/SecessionUseCase.kt Outdated
Comment thread domain/src/main/kotlin/com/gamss/android/domain/user/DeleteUserAccountUseCase.kt Outdated
Comment thread domain/src/main/kotlin/com/gamss/android/domain/user/NicknameUpdateException.kt Outdated
Comment thread feature/setting/src/main/java/com/gamss/android/feature/setting/SettingScreen.kt Outdated
Comment thread feature/setting/src/main/java/com/gamss/android/feature/setting/SettingScreen.kt Outdated
@seunghee17
seunghee17 requested a review from soyeonLee126 August 9, 2026 14:52
@soyeonLee126

Copy link
Copy Markdown
Collaborator

@seunghee17

추후엔 LoadUserInfoFailure 같은데도 reason이 있으면 좋을 것 같네요. 수고하셨습니다~

@soyeonLee126
soyeonLee126 merged commit 61e9fc1 into develop Aug 10, 2026
6 checks passed
@soyeonLee126
soyeonLee126 deleted the feature/user-profile branch August 10, 2026 05:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants