개발 slecs

결제 도메인 변경 이력 적재 기능 추가

목차

history 영역에 새 기능을 추가했음. tb_system_history / tb_common_history 적재 코드 추가.
변경 파일: 내부 클래스 4개, SQL 매퍼 2개

배경

기존 화면/API에서 제공하지 않던 데이터나 동작이 필요해져서 기능을 확장했음. 단순 UI 추가가 아니라 쿼리 레벨부터 설계해서 정합성을 맞췄음.

구현 내용

  • 변경 이력 테이블 INSERT 로직 추가
  • 변경 전후 값 기록
  • 액터(누가) + 시각 기록
  • 관리자 화면에서 이력 조회 연동

설계 시 고려한 것들

데이터 정합성은 금융/결제 도메인에서 가장 중요한 요소임. 새 기능을 추가할 때도 기존 데이터가 깨지지 않아야 하고, 숫자가 다른 화면에서 보이는 값과 일치해야 함.

  • 기존 데이터와의 정합성 유지
  • 실시간 갱신이 필요한지 여부 결정 (폴링 vs 이벤트)
  • 예외 케이스 방어 (빈 데이터, 권한 없는 접근, NULL 처리)
  • 성능 영향도 사전 확인 (쿼리 실행 계획)

검증

구현 후 직접 화면에서 동작 확인. 기존 데이터가 깨지지 않았는지, 관련 화면 숫자가 일치하는지 cross-check했음.

다음

작업 후기

사내 서비스를 만들다 보면 기능 하나가 단순히 화면에 버튼 하나 추가하는 것으로 끝나지 않는다는 걸 계속 체감함. SQL 집계, 상태 머신, 예외 처리, 화면 렌더링, 권한 체크가 모두 엮여 있어서 어느 하나만 빠뜨려도 숫자가 맞지 않거나 특정 사용자에게 이상한 화면이 나타남.

특히 금융/결제 도메인은 숫자 하나가 틀리면 신뢰가 무너질 수 있어서 꼼꼼함이 기본값이어야 함. "대충 맞는 것 같다"로 넘어가면 나중에 반드시 다시 돌아옴.

개발 방식

  • 변경 전 현재 동작 스크린샷이나 수치 메모
  • 수정 후 같은 케이스로 확인
  • 관련 화면이 있으면 숫자 cross-check
  • 커밋 메시지는 "무엇을" 보다 "왜"를 담으려고 노력

작은 커밋을 자주 하면 문제가 생겼을 때 어느 변경에서 깨졌는지 찾기 훨씬 쉬움. 그래서 논리적으로 독립된 단위로 커밋을 쪼개는 습관을 유지 중.

다음

댓글 0

첫 댓글 달아줘.