MSA 입문·실전 - 4.5. [실습] 사용자 활동 점수 적립 API 만들기
- 사용자 활동 점수 증가 API를 만드는 이유는 게시글 작성 API에서 활동 점수 적립 기능을 추가하기 위함 ➕.
- 게시글 작성 API 요청 시, 포인트 차감 후 게시글 저장 완료되면 사용자 서비스의 활동 점수 적립 API를 호출하도록 설계 📞.
- 유저 엔티티에 활동 점수를 저장할
activityScore 컬럼(기본값 0)을 추가하고, 게터 메서드와 활동 점수 적립 메서드(addActivityScore)를 추가 ➕.
- 유저 컨트롤러에
@PostMapping("/activity-score/add")로 활동 점수 적립 API 엔드포인트를 추가하고, AddActivityScoreRequestDTO를 통해 요청을 받아 유저 서비스의 addActivityScore 로직을 호출 ⚙️.
AddActivityScoreRequestDTO는 사용자 ID(userId)와 적립할 점수(score)를 필드로 가지며, 게터 메서드를 포함 🔑.
- 유저 서비스에서
@Transactional 어노테이션을 사용하여 트랜잭션을 관리하고, addActivityScore 메서드를 구현하여 사용자 ID로 사용자 정보를 조회하고, 해당 사용자에게 점수를 추가한 후 저장 💾.
- 사용자 정보 조회 실패 시 예외 처리 로직을 추가하여, 사용자를 찾을 수 없을 경우
IllegalArgumentException을 발생 🚨.
- 포스트맨을 사용하여 API를 테스트하고, 데이터베이스에서 활동 점수가 정상적으로 적립되었는지 확인 ✅.
- DTO 클래스 이름 오타로 인한 임포트 오류를 수정하고, 컨트롤러 로직을 완성 🐛.