관리자 화면에 알림 수신 탭·LLM 연동·통계 API 한번에 추가
목차
오늘 관리자 화면에 알림 수신 탭을 새로 붙이고, 외부 LLM 연동 + 통계 집계 API까지 한 PR에 묶어서 밀어넣음. 세 덩어리라 부담스러웠는데, 결국 같은 운영자 워크플로우를 노리는 작업이라 쪼개는 게 더 어색했음.
알림 수신 탭
기존 관리자 화면은 거래·정산만 다뤘는데, 파트너 쪽에서 "왜 알림이 안 옴?" 문의가 늘면서 수신 이력 가시성이 필요해짐. 컨트롤러에 탭 분기 하나 추가하고, 매퍼에서 수신 이력을 시간순으로 가져오게 함.
- 발신/수신 상태 색상 구분
- 실패 사유 컬럼 노출 (전엔 로그만 보고 추적함)
- 최근 24h / 7d 토글
복잡한 건 없는데 기존 쿼리에 조인이 하나 더 들어가서 인덱스 다시 점검함. 운영 데이터 기준 200ms 안쪽 유지됨.
LLM 연동
설정 파일에 키 분리해서 외부 LLM 호출이 가능하도록 만듦. 결제 도메인에 LLM 박는 게 처음엔 어색했는데, 정산 케이스가 워낙 다양해서 "이 정산서 왜 이렇게 나왔는지 설명해줘" 같은 운영자 보조 기능이 의외로 유용함.
llm:
api-key: ${LLM_API_KEY}
model: claude-opus-4-7
timeout: 30s
max-tokens: 2000
운영 키와 개발 키를 환경변수로 완전 분리함. 코드에 절대 안 박고, 응답 로그에도 마스킹 한 겹 둠. 비용 폭주 방지로 일별 호출량 알람도 같이 걸어둠.
통계 API
| 지표 | 집계 단위 | 캐시 TTL |
|---|---|---|
| 일별 발송량 | 24h | 5분 |
| 실패율 | 1h | 1분 |
| 파트너별 누적 | 월 | 10분 |
캐시 안 걸면 같은 화면 새로고침할 때마다 풀스캔이 돌아서 막힘. 짧은 TTL로도 체감 차이가 큼. 운영 DB 부하 그래프가 눈에 띄게 평탄해짐.
회고
세 기능을 한 PR로 올린 거 후회 안 함. 알림 탭 ↔ 통계 API ↔ LLM 보조 설명이 결국 같은 운영자 동선을 노리는 거라, 따로 떼면 리뷰가 더 산만했을 듯. 다음엔 통계 집계를 비동기 잡으로 빼고, LLM 호출에 응답 캐시를 한 겹 더 두는 게 숙제.
끝
댓글 0
첫 댓글 달아줘.