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

[Library Management System] 25.08.01 (16일)

dev.jelee 2025. 8. 1. 23:07

[ 작업한 내용 ]

1. auth, user 디렉토리 분류 및 구분

- 로그인, 로그아웃, 회원가입을 auth에서 관리하고 user에서는 사용자 정보를 불러오도록 디렉토리 분류함.


2. AuthController 클래스에서 /me api 제거

- UserController에서 관리하기 위해서. 


3. 사용자 정보 가져오는 기능 추가

- UserController 기본 api uri 시작은 /api/v1/user로 지정.

- UserController에 사용자 인증 정보를 가져오는 api 기능 추가.

- 정보를 가져오는 것은 Authentication.getPrincipal()을 사용.

- UserInfoResponseDTO를 생성하여 username, email, joindate, lastlogindate를 가짐.

- UserInfoResponseDTO에 인증 객체인 user에서 username, email, joindate, lastlogindate를 가져와 생성하기.

- 정보가 담긴 UserInfoResponseDTO를 controller 계층에서 return해줌.


[ 메모 ]

1. UserController를 새로 생성하고 api test를 하는데 예외가 발생함. 디버깅을 하려고해도 디버깅이 되지 않아서 UserController가 작동을 하지 않는 거 같다고 판단함.

- 원인: 빈이 충돌해서 그런거 같음.

- 해결: ./gradlew clean build 를 정상작동함.


2. UserInfoResponseDTO에 인증된 객체의 정보 담아서 인스턴스를 생성하려고 했는데, username과 email이 getter가 동작하지 않음.

- 원인: private static String username 이렇게 static 키워드를 사용해서 생성자에 포함이 안 되었다.

- 해결: static 키워드를 제거함.

- 메모: @AllArgsConstructor 어노테이션을 사용하면 static키워드가 있는 필드는 생성자 생성할 때 포함이 안된다.