개발 기록/도서관 관리 시스템

[Library Management System] 25.08.04 (17~19일)

dev.jelee 2025. 8. 4. 23:00

[ 작업한 내용 ]

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일에 기능 작업함.