You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[ Auth ] 사용자 API 계약 정리 (가입 전용 DTO, /users 구 경로 제거) #91
#80 에서 의도적으로 미룬 API 계약 정리 두 건이다. 동작에는 문제가 없고 계약이 지저분한 상태다.
1. 가입 요청 전용 DTO 분리
POST /auth/register 가 응답 DTO 인 UserDto 를 그대로 요청 본문으로 받는다. role / provider / providerId / isActive / emailVerified / id / deletedAt 등 클라이언트가 정해서는 안 되는 필드가 전부 노출된다.
값이 무시된다는 사실은 UserService.createUser 가 보장하지만(#82),
Swagger 문서에는 여전히 설정 가능한 것처럼 보인다. 읽는 사람이 오해하기 쉽고,
"무시되니까 괜찮다"는 전제가 언젠가 깨진다.
SignUpRequest 를 만들어 등록 가능한 필드만 노출
프런트 계약 영향 확인 후 적용
2. /users 구 경로 제거
#83 에서 호환을 위해 남겨둔 경로들이다. 본인 확인은 들어가 있으나 형태가 오해를 부른다
(경로에 남의 ID 를 넣을 수 있는 것처럼 보인다).
이걸 /users/me/location 으로 바꾸려면 백엔드에 그 경로가 운영에 있어야 한다.
그런데 운영 백엔드는 배포가 막혀(#94) #80 이전 코드 그대로라 /users/me/* 가 없다.
프런트 저장소에는 배포 워크플로가 없어 배포 방식을 저장소에서 확인할 수 없으므로,
독립적으로 나간다고 가정해야 한다. 지금 프런트를 바꾸면 운영에서 위치 갱신이 깨진다.
Activity
RosieOh commentedon Sep 22, 2026
진행 상황
UserDto에는 검증 어노테이션이 없어@Valid가 무효였다)./users구 경로 제거 — 보류. 순서가 강제된다.구 경로 제거를 지금 할 수 없는 이유
프런트가 실제로 쓰는 구 경로는 하나다.
이걸
/users/me/location으로 바꾸려면 백엔드에 그 경로가 운영에 있어야 한다.그런데 운영 백엔드는 배포가 막혀(#94) #80 이전 코드 그대로라
/users/me/*가 없다.프런트 저장소에는 배포 워크플로가 없어 배포 방식을 저장소에서 확인할 수 없으므로,
독립적으로 나간다고 가정해야 한다. 지금 프런트를 바꾸면 운영에서 위치 갱신이 깨진다.
순서
/users/me/location이 운영에 생김)/users/me/location으로 전환, 배포/users/{userId}/...구 경로 제거EndpointAuthorizationCoverageTest가 매핑 전수를 보므로 제거 후에도 공개 경로가 새로 생기지 않는지 자동으로 확인된다