개발 slecs

가맹점 계좌 승인 알림 누락과 사이드바 메뉴 미노출 수정

목차

계좌 승인 알림이 사라진 이유

파트너 포탈에서 신규 가맹점 계좌 등록 후 관리자 승인 알림이 안 떴음. 가맹점은 등록했다고 알고 있는데 정작 관리자는 모름. 결과적으로 "왜 며칠째 승인이 안 나냐"는 문의가 누적됨.

원인은 두 군데였음.
- 관리자 컨트롤러에서 알림 큐 적재 로직이 빠져있었음 (예전 리팩터링 때 누락 추정)
- 파트너 포탈 사이드바에서 "계좌 관리" 메뉴 자체가 권한 분기에 막혀 일부 등급에 노출이 안 됨

두 개가 겹치니까 가맹점은 메뉴를 못 찾아서 헤매고, 어쩌다 등록한 건은 알림이 안 가서 묻혀버림. 둘 다 단순한 누락인데 묶이니 사용자 경험이 망가진 케이스였음.

수정 범위

영역 수정 전 수정 후
관리자 측 등록 이벤트만 DB 저장 저장 + 알림 큐 적재
포탈 사이드바 등급별 분기에서 누락 권한 매트릭스 재정의
로그 실패 시 무로깅 큐 적재 실패 warn 로깅

알림 적재는 등록 트랜잭션과 분리했음. 같이 묶으면 알림 인프라 장애가 등록까지 막아버리니까.

// 의사코드
registerAccount(req)
  -> persist(account)
  -> publishAsync(APPROVAL_REQUESTED)  // 실패해도 등록은 성공
  -> auditLog(...)

publishAsync 실패 시 에러를 삼키지 않고 warn 로그 + 재시도 큐로 흘림. 묻히면 똑같은 사고 또 남.

사이드바 메뉴 누락 회고

권한 분기가 enum 기반이었는데 신규 등급이 추가될 때 사이드바 매핑만 누락된 거였음. 백엔드 API는 다 열려 있는데 프론트 진입로만 막혀서 디버깅할 때 한참 헤맴. "API 200 잘 떨어지는데 왜 화면에 없지?" 패턴.

교훈 정리.
- 신규 등급 추가 시 권한 매트릭스 체크리스트를 만들어야 함. 메뉴 가시성 / API 인가 / 알림 수신 / 대시보드 카드 4축
- 알림은 본 트랜잭션과 분리. 단, 분리했으면 실패를 반드시 관측 가능하게 남길 것
- "사용자가 메뉴를 못 찾는다"는 제보는 권한 분기 의심부터

검증

  • 등급별 계정 4개로 사이드바 노출 매트릭스 직접 확인
  • 신규 등록 → 관리자 알림 도달까지 end-to-end 1회씩 돌려봄
  • 알림 인프라 강제 다운 시 등록 자체는 성공 + warn 로그 남는지 확인

다음

댓글 0

첫 댓글 달아줘.