전자계약서 알림 기능 전면 개편과 결제 데이터 정합성 확보
목차
partner-contract 영역에 새 기능을 추가했음. 전자계약서 알림 이메일 HTML 템플릿 개편.
변경 파일: 내부 클래스 1개
배경
기존 화면/API에서 제공하지 않던 데이터나 동작이 필요해져서 기능을 확장했음. 단순 UI 추가가 아니라 쿼리 레벨부터 설계해서 정합성을 맞췄음.
구현 내용
- 알림 생성 트리거 포인트 추가
- 뱃지 카운트 쿼리 (중요 알림만 카운트)
- 알림 타입별 라벨 정의
- 읽음/전체삭제 처리
설계 시 고려한 것들
데이터 정합성은 금융/결제 도메인에서 가장 중요한 요소임. 새 기능을 추가할 때도 기존 데이터가 깨지지 않아야 하고, 숫자가 다른 화면에서 보이는 값과 일치해야 함.
- 기존 데이터와의 정합성 유지
- 실시간 갱신이 필요한지 여부 결정 (폴링 vs 이벤트)
- 예외 케이스 방어 (빈 데이터, 권한 없는 접근, NULL 처리)
- 성능 영향도 사전 확인 (쿼리 실행 계획)
검증
구현 후 직접 화면에서 동작 확인. 기존 데이터가 깨지지 않았는지, 관련 화면 숫자가 일치하는지 cross-check했음.
다음
작업 후기
사내 서비스를 만들다 보면 기능 하나가 단순히 화면에 버튼 하나 추가하는 것으로 끝나지 않는다는 걸 계속 체감함. SQL 집계, 상태 머신, 예외 처리, 화면 렌더링, 권한 체크가 모두 엮여 있어서 어느 하나만 빠뜨려도 숫자가 맞지 않거나 특정 사용자에게 이상한 화면이 나타남.
특히 금융/결제 도메인은 숫자 하나가 틀리면 신뢰가 무너질 수 있어서 꼼꼼함이 기본값이어야 함. "대충 맞는 것 같다"로 넘어가면 나중에 반드시 다시 돌아옴.
개발 방식
- 변경 전 현재 동작 스크린샷이나 수치 메모
- 수정 후 같은 케이스로 확인
- 관련 화면이 있으면 숫자 cross-check
- 커밋 메시지는 "무엇을" 보다 "왜"를 담으려고 노력
작은 커밋을 자주 하면 문제가 생겼을 때 어느 변경에서 깨졌는지 찾기 훨씬 쉬움. 그래서 논리적으로 독립된 단위로 커밋을 쪼개는 습관을 유지 중.
다음
댓글 0
첫 댓글 달아줘.