일기 slecs

잔액 동기화 배치 주기를 2시간마다로 단축해 데이터 최신성 개선

목차

유지보수성 개선 작업. 잔액 동기화 주기 매일 06:00 → 2시간마다 :11분.
변경 파일: 내부 클래스 2개, 설정/문서 1개, 뷰/스타일 1개

배경

기능 변경 없이 내부 품질을 높이기 위한 작업. 설정 값 업데이트, 스케줄 조정, 문서 보완 등 개발 환경과 운영 편의성을 개선했음.

스케줄 조정 이유

배치 실행 주기를 변경했음. 너무 자주 실행하면 서버 부하가 늘고, 너무 드물게 하면 데이터 최신성이 떨어짐. 실제 사용 패턴과 서버 부하를 모니터링하면서 적정 주기를 찾아 조정했음.

cron 표현식 가이드:

0 */2 * * *   = 2시간마다 정각
30 */2 * * *  = 2시간마다 :30
0 6 * * *     = 매일 06:00
0 2 * * *     = 매일 02:00

배치 실행 시각은 서버 트래픽이 낮은 새벽 시간대를 선호함. 실행 중 일반 사용자 요청에 영향을 최소화하기 위해서임.

chore 커밋이 중요한 이유

chore 타입은 사용자에게 직접 보이는 변화는 없지만, 장기적으로 유지보수 비용을 낮추는 작업에 씀. 정기적으로 설정을 검토하고 적정 값으로 조정하는 습관이 시스템 안정성에 기여함.

지금 당장 눈에 띄는 효과는 없어도 이런 작업을 꾸준히 하는 팀과 안 하는 팀의 차이는 6개월 뒤에 드러남. 특히 스케줄 관리는 배치가 너무 자주 돌아 DB 부하를 유발하거나, 너무 드물게 돌아 데이터 지연을 만드는 문제를 방지하는 데 직결됨.

다음

작업 후기

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

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

개발 방식

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

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

다음

댓글 0

첫 댓글 달아줘.