#sql
-
가상계좌 수수료 후정산 전환과 충전 상태 머신 정합성 확보
가상계좌 충전 수수료, 결국 후정산이 답 결제대행사 가상계좌로 잔액 충전하는 흐름에서 수수료 처리가 계속 어긋났음. 충전 시점에 수수료까지 한 번에 차감하니까 회계팀에서 "이게 왜 여기서 빠져?"가 반복됨. 가상계좌 건당 부과되는 입금/발급 비용은 **이번 정산 시 차감되는 게 아니라 익월에 별도 청구**되는 구조. 그동안 코드는 충전 직후 머천트 잔
읽기 → -
이커머스 파트너 충전 결제 연동과 잔액 정산 안정화
결제대행사 충전 플로우 붙이기 이커머스 파트너 잔액에 충전 기능 하나 추가하는 일이었음. 단순히 API 한 개 더 까는 줄 알았는데, 결제대행사 쪽 응답 파싱이랑 트랜잭션 경계 잡는 게 생각보다 까다로웠음. 기본 흐름은 이렇게 정리: - 클라이언트 충전 요청 → 서버에서 주문 키 발급 - 결제대행사 팝업 띄워서 결제 진행 - 콜백 수신 → 검증 →
읽기 → -
결제 콜백 후 잔액 즉시 반영
결제 콜백 후 잔액이 안 보이던 문제 결제대행사 콜백이 들어와서 충전이 끝났는데, 정작 파트너 화면에서 새 잔액을 보려면 새로고침을 두세 번 해야 했음. 콜백 처리 자체는 멀쩡한데 후처리 흐름이 어긋난 것. 원인을 까보니: - 콜백 트랜잭션 커밋 직후 응답을 돌려주는데, 조회 API 쪽이 자체 캐시를 들고 있었음 - 잔액 반영 이벤트가 비동기로 흐르
읽기 → -
결제 웹훅 중복 처리를 멱등성 락으로 차단
결제대행사 Webhook이 같은 건을 두 번 때리는 문제 운영 중 결제대행사에서 같은 결제 건에 대해 동일한 웹훅이 두 번, 세 번 들어오는 케이스가 누적됨. 첫 호출에서 정상 처리됐는데 두 번째 호출이 잔액을 한 번 더 건드리거나 알림이 중복 발송되는 사고가 발생했음. 원인을 정리하면 이런 흐름이었음. - 결제대행사가 응답 ACK를 못 받으면 일정
읽기 → -
은행 연동 코드를 어댑터 패턴으로 신규 프로젝트에 이전
은행 핸들러 마이그레이션 시작 기존 이커머스 플랫폼에 흩어져 있던 은행 연동 코드를 신규 프로젝트로 옮김. 단순 복붙이 아니라 의존성부터 정리해야 했음. 문제는 기존 코드가 캐시 유틸을 직접 import 하고 있었고, 신규 쪽엔 그 유틸이 없었음. 같은 이름으로 새로 깎느냐, 인터페이스만 맞추느냐 사이에서 고민하다가 신규에 얇게 다시 만드는 쪽으로 감
읽기 → -
결제대행사 연동 프로젝트 첫 커밋을 가볍게 시작하는 법
새 프로젝트 첫 커밋 결제대행사 연동 솔루션 신규 프로젝트의 첫 삽을 떴음. 빈 디렉토리에 그래들 래퍼 뜯어 넣고, .gitignore 깔고, 빌드 스크립트 골격만 박아두는 작업. 별 거 아닌 것 같지만 매번 이 단계에서 30분~1시간씩 까먹음. 왜 래퍼부터 박는가 팀에 합류하는 사람마다 로컬 그래들 버전이 다르면 빌드 결과도 달라짐. 래퍼 jar
읽기 → -
송금 수수료 홀딩 정책 도입과 파트너별 입금 통계 화면 추가
연락처 송금 수수료 관리, 그리고 파트너 입금 통계 오늘은 결제 플랫폼에 두 가지를 한 번에 밀어넣음. 하나는 연락처 송금 흐름에 수수료 정책을 붙이는 작업, 다른 하나는 파트너별로 입금 내역을 합산해서 운영팀이 볼 수 있게 만드는 통계 화면. 처음엔 두 작업이 별개라고 생각했는데, 막상 들여다보니 **잔액 계산 유틸리티**가 양쪽에서 똑같이 호출되고
읽기 → -
입금 계좌 로테이션과 AI 입금자명 자동 매칭 도입
한 계좌만 쓰던 시절의 한계 파트너가 늘어나면서 단일 입금 계좌 구조가 슬슬 깨지기 시작함. 일 거래량이 일정 수준을 넘어가니 은행 쪽에서 거래 패턴을 의심하기도 하고, 한도에 막혀서 오후 늦게 입금이 튕기는 사고도 종종 났음. 파트너 입장에서는 한 번 튕긴 경험이 재충전 의욕을 꺾어버려서, 단순한 운영 이슈로 끝나지 않고 매출 직격타로 돌아왔음. 그
읽기 → -
메신저 공유 URL 파싱 오류를 난독화 설정으로 해결
v3.1 릴리즈 회고 릴리즈 노트 정리하다가 메신저 공유 URL 파싱이 자꾸 깨졌던 게 떠올라서 한번 정리함. 무엇이 문제였나 기존 추출 로직은 정규식 한 줄로 끝냈었는데, 메신저 쪽에서 공유 포맷을 살짝 바꾸면서 ?p= 뒤에 추가 파라미터가 붙기 시작했음. 사용자 입장에선 같은 링크인데 앱에서만 못 받아내는 상황. - 원본 URL 끝에 &sha
읽기 → -
이커머스 결제 앱 빌드 파이프라인 보안·성능 일괄 정비
v3.1 릴리스 정리: 보안·성능·배포 설정을 한 번에 손봄 이커머스 결제 플랫폼 모바일 빌드 v3.1 작업하면서 빌드 스크립트, 난독화 규칙, 버전 메타, gitignore 4종 세트를 같이 갈아엎었음. 한 번에 묶은 이유는 단순함 — 셋 중 하나만 건드리면 나머지가 무조건 어긋남. .gitignore 부터 정리 처음에 잡힌 추적 누락 파일들 보
읽기 → -
AI 분류로 자동입금 무한 재시도와 새벽 운영 알람을 잡다
문제 상황 자동입금 확정 단계에서 실패 메시지가 들어오면 무조건 재시도 큐에 다시 넣고 있었음. 그러다 보니 영구 실패(잘못된 계좌·만료된 거래)도 무한 재시도 대상이 됐고, 운영팀이 새벽에 알람 받고 수동으로 끄러 들어가는 일이 반복됨. 대표적으로 들어오는 메시지가 이런 식임. [입금알림] 거래종료 / 금액불일치 / 한도초과 / 일시오류 겉으
읽기 → -
결제 큐에서 재시도 초과 건이 무한 반복되던 문제 해결
무한 재시도 지옥에서 빠져나옴 큐에서 작업 꺼내올 때 retry_count 조건이 빠져있었음. max_retry 도달한 작업도 계속 다시 집어가는 구조였음. 결제대행사 응답 지연으로 한 번 실패한 건이 영원히 큐를 떠다녔던 거. 어떻게 발견했는지 파트너 정산 모니터링 보다가 실패 누적이 비정상적으로 많은 걸 발견함. 같은 트랜잭션 ID가 로그에 수
읽기 → -
입금 크롤링을 HTTP 직접 호출로 교체해 응답 10배 빠르게
출발점 입금 내역 확인용 유틸이 헤드리스 브라우저로 은행 사이트를 띄워서 DOM 긁는 구조였음. 의존성 무겁고, 셀렉터 한 번 어긋나면 통째로 멈춤. 새벽에 알람 받고 일어난 적이 한두 번이 아니라서 진짜로 한 번 갈아엎고 싶었음. 무엇을 바꿨나 실제 동작을 패킷 캡처로 까보니 결국 로그인 토큰 받고 거래내역 조회 엔드포인트 두세 번 때리는 게 전부였
읽기 → -
파트너 정산 송금을 접근성 서비스로 자동화한 과정
송금 자동화 배경 파트너 정산 처리량이 늘면서 수기 송금 부담이 한계점 도달. 결제대행사 정산 사이클 밖의 즉시 송금 건은 사람이 직접 은행 앱을 두드려야 했음. 안드로이드 접근성 서비스로 은행 앱 폼을 자동으로 채우는 보조 수단을 도입함. 결제 플랫폼 본 흐름은 그대로 두고, 운영팀 손이 닿는 부분만 줄이는 게 목표였음. - 메신저 알림 수신 → 송
읽기 → -
브라우저 자동화 격리로 세션 충돌 없애고 확인 작업 속도 개선
심볼릭 링크에서 실제 파일로 agent-browser 스킬 추가하면서 같이 정리한 게 AGENTS.md 처리 방식임. 원래는 다른 문서를 참조하는 형태로 두고 있었는데, 도구가 그 참조를 따라가지 못하는 케이스가 자꾸 생겨서 그냥 실제 파일로 박아버림. 겉보기엔 똑같은데, 도구가 읽을 때 동작이 달라짐. | 구분 | 이전 | 변경 후 | |---|-
읽기 → -
폐업 사업자 정산 오류 막으려 진위확인 API와 알림 로그 관리 도입
사업자 진위확인 외부 API 붙이기 파트너 등록 화면에서 사업자번호 검증을 외부 API로 처리하기로 함. 기존엔 입력값을 그냥 믿고 저장했는데, 실제로 폐업·휴업 사업자 데이터가 섞여서 정산할 때 골치 아팠음. 검증 응답에서 챙긴 필드: | 필드 | 의미 | |---|---| | 상태코드 | 계속/휴업/폐업 | | 과세유형 | 일반/간이/면세 | |
읽기 → -
결제 거래 실시간 동기화 API 설계와 멱등성 확보
배경 결제 플랫폼 모니터링 도구에서 거래 이력을 외부 시스템과 맞춰야 하는 요구가 있었음. 기존엔 새벽 배치로 한 번씩 긁어왔는데, 파트너 쪽에서 실시간에 가까운 동기화를 요청. 배치 주기를 줄이는 건 한계가 있어서 동기화용 API를 따로 뽑기로 함. 설계 포인트 처음엔 "최근 N분치 가져오기" 식으로 만들려다가, 멱등성을 못 잡으면 중복 적재가
읽기 → -
결제 콜백 자동수신으로 수동 입금 매칭 루프 제거
자동수신 결과를 받기 시작함 결제대행사에서 보내는 자동 입금 결과를 그동안 사람이 하루 한 번 손으로 매칭하던 구조였음. 누락 건이 가끔 생겼고, 정산 마감 직전에 발견되면 새벽에 다시 들어와 메우는 일이 반복됐음. 이번에 콜백을 받는 엔드포인트를 새로 붙여서 그 루프를 끊었음. 신규 API에서 챙긴 포인트는 세 가지였음. - **멱등성**: 같은
읽기 → -
가상계좌 입금 알림을 다중 은행 채널로 확장해 누락 해소
은행 알림에서 가상계좌 입금 URL을 자동으로 받아오는 경로에 손댔음. 기존엔 메신저 푸시 한 채널만 후킹해서 처리했는데, 일부 은행은 자체 푸시/SMS로만 결과를 쏴주니 누수가 생김. 파트너 화면에서 "입금됐는데 왜 반영 안 됨?" 문의가 한 주에 두어 건씩 올라왔음. 무엇을 바꿨나 주요 시중은행 두 곳(A, B) 알림을 별도 경로로 캡처하도록 텄음
읽기 → -
입금자명 파싱 다단계 분류와 정산 계좌 조회 엔드포인트 분리
입금자명 파싱, 정규식 한 줄로는 안 됨 문자 메시지에서 입금자명 뽑는 로직 손봤음. 처음엔 정규식 한 줄로 끝낼 수 있을 줄 알았는데, 실제 데이터 까보니 케이스가 너무 많았음. - 은행마다 메시지 포맷이 다름 (콜론 위치, 줄바꿈, 특수문자) - 영문/한글 이름 혼합 - 법인명 뒤에 담당자명 붙는 케이스 ((주)○○ 홍길동) - 광고 문구가 본문에
읽기 →