PR마다 환경이 뜬다고 했는데 어떤 건 안 됐다
레포마다 되고 안 되고가 갈리던 PR 프리뷰 환경을 직접 띄워 보며, 소개 문서와 실제가 어긋난 지점과 실패도 아니고 성공도 아닌 무반응의 정체를 정리한 기록이다.
BACKEND FIELD NOTES
레포마다 되고 안 되고가 갈리던 PR 프리뷰 환경을 직접 띄워 보며, 소개 문서와 실제가 어긋난 지점과 실패도 아니고 성공도 아닌 무반응의 정체를 정리한 기록이다.
미납 금액이 남은 금액보다 큰 논리적 모순을 조사하다, 2년 전 정정 작업이 금액만 되돌리고 행은 남겨 둔 흔적을 검산으로 복원한 과정을 적었다.
배치가 발행한 지급 이벤트를 웹 서버가 처리하던 구조에서 배포마다 진행 중인 지급이 끊기던 문제를, 상태 기록과 프로세스 통합 두 단계로 나눠 없앤 과정을 적었다.
조회가 분명히 있었는데 로그에는 흔적이 없다는 문의를 따라가다, 완주한 작업만 기록되는 구조라 실패는 아예 존재하지 않는 일이 되고 있었다는 것을 확인한 과정을 적었다.
4년 동안 드러나지 않던 구조 결함이 작업 단가가 오르자 매일 2,000건씩 데이터를 버리기 시작했다. 큐가 가득 차 신용평가 이벤트가 재시도 없이 사라지던 배치에 백프레셔를 넣은 과정을 적었다.
세 서비스에 제각각 구현돼 있던 분산락을 하나로 통일하면서 비정상 종료 회복 시간을 다섯 시간에서 30초로 줄이고, 락 실패 정책을 진입 주체 기준으로 정리한 과정을 적었다.
원금 반영부터 중도상환과 잔액 환급까지 한 흐름에 묶여 있던 배치를 사용자 단위 이벤트로 쪼개고, 재시도해도 중복 환급되지 않도록 처리 순서를 바꾼 과정을 적었다.
외부 사이트가 바뀌면 크롤링 검증이 막히고 지급이 통째로 밀리던 구조에서, 그 단계만 운영자가 즉시 끌 수 있는 스위치를 만들며 정한 기준을 적었다.
트랜잭션이 보장되지 않던 회수 배치를 Java로 옮기면서 외부 출금과 내부 잔액이 어긋나는 경로를 막고, 하루 단위 대사를 따로 세운 과정을 적었다.
운영 중 암호화로 넘어가려고 만든 이중 쓰기 장치가 전환이 끝난 뒤에도 남아 있어서, 엔티티마다 같은 값을 두 필드로 관리하던 구조를 한 컬럼으로 합친 과정을 적었다.
월 15,000건 정기 결제에서 중복 승인, 과거 정산 금액이 달라지는 문제, 외부 장애 복구 시점에 재시도가 몰리는 문제를 각각 다른 방법으로 막은 과정을 적었다.
결제 원장과 정산 대상을 같은 기준으로 집계해 차이를 지연·누락·중복·계약 불일치로 나누고, 자동으로 넘길 것과 사람이 봐야 할 것을 가른 기록이다.
Kafka Consumer 실패를 무조건 재시도하지 않고 Retry·DLQ·멱등성으로 나눠 처리한 기준과 운영 절차를 적었다.
결제와 정산을 분리한 뒤 발생한 중복 이벤트와 재처리 문제를 Kafka, 멱등성, 최종적 일관성 기준으로 풀어낸 기록이다.
2024년에는 모놀리스가 맞았고 2025년에는 MSA가 필요했다. 같은 시스템에 다른 선택을 내린 기준과 분리 순서를 적었다.
PG 보안 심사에서 확인된 104개 이슈 중 62개를 직접 조치하며 암호화·로그·의존성·TLS·접근제어 기준을 다시 세운 기록이다.
승인·실패·중복·취소·부분취소·DB 오류·외부 PG Timeout을 기준으로 금융 서비스 테스트 범위를 정한 기록이다.
PG 라이선스 심사를 준비하며 개인정보 영역 전체를 암호화로 옮기는 동안 검색·정렬·중복 확인·조인이 한꺼번에 깨진 과정을 적었다.
고객 문의 뒤에 장애를 찾던 흐름을 Prometheus·Grafana·Micrometer 기반의 지표와 알람 중심 대응으로 바꾼 기록이다.
수동 확인과 순차 작업 때문에 45분 걸리던 PG 배포를 Jenkins 파이프라인으로 자동화해 3분까지 줄인 과정을 적었다.
Slow Query의 실행 계획을 따라 Subquery와 JOIN, 인덱스를 다시 설계해 결제 API 응답속도를 30% 개선한 과정을 적었다.
연 3,000억 규모의 결제 흐름을 한 번에 갈아엎지 않고 단계적으로 Spring Boot로 옮기며 지킨 아키텍처 원칙을 정리했다.
ASP 시절 테이블 300개와 컬럼 수백 개를 코드와 저장 이력으로 추적해 옮길 것과 버릴 것을 가른 기록이다.
결제·가맹점·정산·관리자 기능이 얽힌 ASP 기반 PG를 Spring Boot 모놀리스로 옮기기로 결정한 배경과 당시 세운 전환 목표를 적었다.
일치하는 글이 없습니다.