사용자 관리 API 기능
이번에는 Spring Boot 기반의 사용자 관리 API 기능을 개발했다.
사용자 정보를 저장하고 조회하기 위해 User 모델을 만들고, 요청과 응답 데이터를 분리하기 위해 UserReqDto, UserRespDto를 사용했다. 사용자를 생성할 때는 클라이언트에서 userId, username, email 값을 전달받고, 서버에서는 이를 User 객체로 변환한 뒤 저장하도록 구성했다.
API 구조는 Controller, Service, Repository 계층으로 나누어 작성했다. UserController에서는 /api/v1/users 경로를 기준으로 사용자 목록 조회와 사용자 생성 요청을 처리하도록 만들었다. 실제 비즈니스 흐름은 UserService에서 담당하게 했고, 데이터 저장 및 조회는 UserRepository를 통해 처리하도록 분리했다.
데이터베이스 연동을 위해 MyBatis Mapper XML도 작성했다. UserRepository.xml에서 findAll, findById, insert, update, delete 기능에 맞는 SQL을 정의했다. DB 테이블의 user_id 컬럼은 자바 객체의 userId 필드와 이름이 다르기 때문에 resultMap을 사용해서 명확하게 매핑했다.
또한 API를 브라우저에서 쉽게 확인하고 테스트할 수 있도록 Swagger UI를 추가했다. springdoc-openapi 의존성을 추가해서 별도의 문서 작성 없이 현재 Controller에 정의된 API가 자동으로 문서화되도록 했다. 서버 실행 후 /swagger-ui/index.html 경로에서 API 목록과 요청 정보를 확인할 수 있게 만들었다.
개발 과정에서 메모리 기반 Repository와 MyBatis Repository가 동시에 등록되어 충돌하는 문제가 있었다. 최종적으로는 MyBatis를 사용하는 방향으로 정리하고, 메모리 Repository는 Spring Bean으로 등록되지 않도록 수정했다.
이번 개발의 핵심은 단순한 사용자 CRUD API를 만드는 것이었다. 특히 REST API 계층 구조, DTO 분리, MyBatis SQL 매핑, Swagger 문서화까지 연결하면서 백엔드 API 개발의 기본 흐름을 정리할 수 있었다.
댓글
댓글이 없습니다.
