Skip to content

feat: 개인 프로필(표시이름/연락처) API + 회원가입 전화번호 - #171

Merged
BcKmini merged 2 commits into
mainfrom
feat/168-profile-phone
Aug 14, 2026
Merged

feat: 개인 프로필(표시이름/연락처) API + 회원가입 전화번호#171
BcKmini merged 2 commits into
mainfrom
feat/168-profile-phone

Conversation

@BcKmini

@BcKmini BcKmini commented Aug 14, 2026

Copy link
Copy Markdown
Member

요약

  • user_accountphone(연락처) 컬럼 추가, GET/PATCH /api/v1/auth/me/profile로 표시 이름·연락처를 조회·수정.
  • 회원가입에 전화번호(선택) 입력 추가.
  • (추가 커밋) ProfilePage에 표시되던 나머지 항목(마지막 로그인, 계정 상태, 비밀번호 변경일, 알림 수신 설정)이 프론트 하드코딩(profileData.ts 고정값)이었던 문제를 백엔드부터 해결:
    • user_login_event 테이블 신설 — 로그인 성공 시 User-Agent 기반 기기 요약과 함께 기록. ProfileResponserole/account_status/password_changed_at/last_login_at/last_login_device/recent_device_count를 실제 값으로 반환.
    • user_account.password_changed_at 컬럼 추가, changePassword()에서 갱신.
    • notification_preference 테이블 + GET/PATCH /api/v1/notifications/preferences 신설. 기본값 7종은 client의 기존 INITIAL_NOTIFICATION_PREFS와 동일하게 맞췄고 security-permission은 서버에서도 끌 수 없도록 강제(422).
    • 업무 권한 세부값("담당 영역", "문서 열람 범위")처럼 서버에 대응 개념 자체가 없는 항목은 지어내지 않고, client PR에서 화면에서 제거하는 방향으로 처리 예정.

테스트

  • ./gradlew test 전체: BUILD SUCCESSFUL
  • 신규: UserAgentDeviceSummarizerTest, AuthSecurityIntegrationTest#getMyProfileReflectsAccountStateAndRecordsLoginDeviceHistory, NotificationSecurityIntegrationTest의 알림 설정 조회/변경/필수항목 보호/사용자 간 격리 테스트

Closes #168

client의 /profile 페이지가 개인 프로필 API가 없어서(#191) 화면 상태로만
반영되던 문제 해결. user_account에 phone 컬럼 추가하고, GET/PATCH
/api/v1/auth/me/profile로 표시이름·연락처를 실제로 조회·수정 가능하게 함.
회원가입 시 전화번호(선택) 입력도 지원.

UserAccount 도메인의 applyState()가 password만 갱신하던 것을
displayName/phone도 갱신하도록 일반화했고, changePassword()와 같은
낙관적 잠금(version+1) 패턴으로 updateProfile()을 추가함.

Closes #168

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@hywznn

hywznn commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

언제 요청하지했는데 꼼꼼하시군요 감사합니다

BcKmini added a commit to fowoco/client that referenced this pull request Aug 14, 2026
ProfilePage가 하드코딩된 profileData.ts 대신 실제 GET/PATCH
/api/v1/auth/me/profile(fowoco/server#171)를 쓰도록 교체 — 저장한 내용이
새로고침해도 유지된다. 로그인 시에도 서버가 이미 보내주던 display_name을
그동안 안 쓰고 이메일 앞부분으로 가짜 이름을 만들던 것을 고쳤다.
회원가입 화면에 전화번호(선택) 입력 필드 추가.

서버에 없는 '이름'(name, displayName과 중복)·선호 언어·시간대 필드는
저장이 안 되는데도 있는 것처럼 보이던 문제라 이번에 편집 항목에서 제외함.

Closes #335

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
@BcKmini
BcKmini merged commit 539c8fc into main Aug 14, 2026
4 checks passed
@BcKmini
BcKmini deleted the feat/168-profile-phone branch August 14, 2026 06:12
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.

[Feature] 개인 프로필(user profile) 도메인 신규 추가 — 표시이름/연락처 저장

2 participants