[ 작업한 내용 ]
1. UserController에서 @RequestMapping 수정
- /api/v1/user 에서 /api/v1/user/me 로 수정.
- 이메일 수정, 비밀번호 수정 api를 설계할 때 공통으로 /api/v1/user/me로 시작하기 위해서.
2. 이메일 수정 기능 추가
- UserController에서 /email api 설계.
- UpdateEmailDTO를 생성하여 email만 단독으로 수정할 수 있도록 함.
- UserController에서 UpdateEmailDTO와 @AuthenticationPrincipal 어노테이션을 통해 사용자 정보를 받아 username과 updateEmail을 UserSerivce로 전달.
- UserService에서 파라미터로 받은 username와 updateEmail을 가지고 두 가지 예외 상황을 거침.
- UserRepository에서 username으로 사용자 정보 중 현재 email을 가져와 비교 새로 입력한 email과 비교하여 동일한 이메일인지 여부 확인.
- UserRepository에서 updateEmail을 가지고 이메일 중복 체크.
- 예외가 발생하지 않으면 user객체에 새로운 email을 .save() 해주고, UserReository를 통해 user 객체를 새로 저장해준다. (업데이트)
- UserController에서 성공했다는 메시지 출력.
[ 메모 ]
1. email과 password 각각 분리해서 api를 설계할지, 통합으로 할지 고민을 했는데 유지보수와 가독성을 생각한다면 복잡해지겠지만 dto와 api를 분류하는게 맞다고 생각을 했다.
2. 주말에는 쉬어서 오늘 8월 4일에 기능 작업함.
'개발 기록 > 도서관 관리 시스템' 카테고리의 다른 글
[Library Management System] 25.08.07 (22일) (0) | 2025.08.07 |
---|---|
[Library Management System] 25.08.05 (20일) (0) | 2025.08.05 |
[Library Management System] 25.08.01 (16일) (0) | 2025.08.01 |
[Library Management System] 25.07.31 (15일) (0) | 2025.07.31 |
[Library Management System] 25.07.21~25.07.30 (5~14일) (0) | 2025.07.31 |