Slack 메시지 생성 및 전송 (All)
- Slack 메시지를 생성 및 전송하기 위한 POST /api/slack?username=..&deliveryId=.. Controller 기능 구현.
- 응답 객체와 메시지, HttpStatus code를 같이 묶어서 응답할 수 있게 ApiResponseData 클래스 생성.
- 배송 도메인에서 배송 담당자가 배정이 되면 RabbitMQ를 사용해서 받아온 배송 데이터로 주문 메시지를 생성.
- 메시지에 담길 주문 정보와 배송 정보를 FeignClient로 조회한 뒤, Gemini API를 활용해서 최종 발송 시한을 추가로 발송하는 기능을 구현.
- 팀원들이 각자 구현한 API에 FeignClient를 사용해서 응답값을 받아오는 과정에서 해당 엔트 포인트를 찾지 못하거나, null 값을 찾아오는 오류를 많이 겪게 되었다.
- 객체 타입이 맞지 않거나, 파라미터의 값을 맞추지 않아서 발생하기도 하고, Record를 사용한 응답객체 받아오는 과정에서도 오류가 발생했었다.
- 이런 오류가 발생할 때마다 즉시 팀원분들과 회의를 통해 객체 구조를 통일하는 방식으로 리팩토링 하였다.
특정 Slack 메시지 조회 (Master)
- 특정 Slack 메시지를 조회하기 위해 GET /api/slack/{slackId} Controller 기능 구현.
- deleted 상태가 아닌 메시지를 조회할 수 있도록 Repository에 findByIdAndDeletedAtIsNull 메서드로 간단하게 구현.
전체 Slack 메시지 조회 (Master)
- 모든 Slack 메시지를 조회하기 위해 GET /api/slack Controller 기능 구현.
- 전체 Slack 메시지는 다량의 데이터이기 때문에 커스텀한 PageResponseDto와 Redis Cache를 사용하여 page=1, size=10 을 default 값으로 설정한 뒤 조회할 수 있게 구현.
Slack 메시지 삭제 (Master)
- Slack 메시지를 삭제하기 위해 DELETE /api/slack/{slackId} Controller 기능 구현.
- 삭제를 요청한 뒤, deletedBy를 삭제처리한 사용자의 이름으로 수정함 (실제로 데이터베이스에 정보가 삭제되지 않게 처리함.)
Slack 메시지 수정 (Master)
- Slack 메시지를 수정하기 위해 PUT /api/slakc/{slakcId} Controller 기능 구현.
- 수정에 성공하면, updatedBy를 수정처리한 사용자의 이름으로 수정함.
'🔥 스파르타 TIL (프로젝트)' 카테고리의 다른 글
두 번째 프로젝트 기록하기 2 (1) | 2025.03.26 |
---|---|
두 번째 프로젝트 기록하기 1 (1) | 2025.03.22 |
NAVER Geocoding API 사용해서 위도, 경도 추가하기 (0) | 2025.03.19 |
Slack API 적용해서 사용자에게 DM 보내는 기능을 만들어보자 (0) | 2025.03.18 |
프로젝트 기록하기 3 (1) | 2025.02.20 |