#batch
-
자동입금 배치 무한 재처리와 알림 폭탄 수정기
증상 새벽에 알림 채널이 폭발했음. 자동입금 처리 배치가 같은 건을 계속 재처리하면서 처리 완료 알림을 수백 건씩 쏘는 중이었음. 확인해보니 두 가지 문제가 겹쳐있었음. - 기동 시 리셋 로직이 PROCESSING 상태인 큐를 전부 PENDING 으로 되돌리고 있었음 - 처리 완료 직전 잠깐 PROCESSING 으로 머무는 건도 같이 리셋됨 - 그게
읽기 → -
송금 푸시 알림 미수신을 재시도 큐로 해결
문제 상황 연락처 기반 송금 기능에서 푸시 알림이 가끔 빠지는 이슈가 보고됨. 로그 까보니 푸시 발송 자체는 호출되는데 토큰 만료/네트워크 일시 단절 같은 케이스에서 그냥 한 번 던지고 끝나는 구조였음. 받는 쪽은 돈 들어왔는지 모르고 있다가 나중에 앱 켜서 알게 되는 흐름. 송금 UX에서 꽤 치명적임. 원인 정리 기존 코드는 단발성 호출. 실패
읽기 → -
재설치 후 통계 복원·자동 수령 깜빡임 해소·접근성 음성 안내 추가
v1.0.3 릴리즈 정리 이번 릴리즈는 세 갈래로 나뉨. 통계 동기화, 자동 수령 흐름 개선, 접근성 알림. 하나씩 정리. 서버 통계 동기화 - 그동안 로컬 카운터만 보고 화면에 그렸음. 디바이스 재설치하면 숫자가 0 으로 리셋되는 게 거슬렸음 - 이번엔 진입 시점에 서버에서 누적치를 한 번 받아오고, 이벤트 발생할 때마다 증분만 보내는 구조로 바
읽기 → -
무통장 입금 미매칭을 주문번호 기준으로 자동 보정
배경 무통장 입금 매칭에서 파트너를 잘못 잡거나 계좌 정보가 비어있는 케이스가 누적됨. 운영팀이 손으로 일일이 보정하던 흐름을 주문 데이터 기준으로 자동화함. 결제 플랫폼 쪽 미매칭 건이 월말마다 쌓여서 더 미룰 수 없었음. 무엇을 바꿨나 - 주문번호를 키로 파트너 ID 역추적 - 입금자명·금액 일치 외에 주문 메타데이터로 보강 - 관리자 화면에서 미
읽기 → -
근태관리 설계 문서를 분리해 정산 흐름과 용어를 정돈한 과정
근태관리 SaaS 상세 설계 문서를 따로 뽑아낸 이유 처음엔 그냥 PLAN.md 한 장에 다 욱여넣으려고 했음. 근데 막상 출퇴근, 휴가, 시프트, 정산 흐름까지 그리다 보니 한 문서에서 스크롤이 끝도 없이 늘어나서 결국 PLAN_ATTENDANCE_DETAIL 로 분리함. 상위 PLAN 은 "무엇을 만든다"만 남기고, 디테일 문서는 "어떻게 동작하느냐
읽기 → -
백오피스 관리자 매뉴얼 슬라이드 자동 생성으로 갱신 시간 대폭 단축
매뉴얼을 매번 손으로 만드는 건 한계였음 이커머스 백오피스 운영팀에서 신규 기능이 붙을 때마다 관리자 매뉴얼 갱신 요청이 들어왔음. 처음엔 그냥 슬라이드 열어서 캡처 붙이고 화살표 그렸는데, 화면 하나만 바뀌어도 슬라이드 전체를 다시 손봐야 했음. 페이지 60장 넘어간 시점부터는 도저히 답이 없었음. 그래서 설정 파일 하나로 슬라이드를 자동 생성하는
읽기 → -
결제 웹훅 원장·잔액 대조 배치로 정산 분쟁 추적 가능해짐
웹훅 원장 기록부터 깔았음 결제대행사 웹훅이 들어올 때 처리만 하고 흘려보내던 구조였는데, 정산 분쟁 한 번 터지고 나니 "그때 그 웹훅 진짜 왔었냐"는 질문에 답을 못 했음. 헤더, 페이로드, 서명검증 결과, 처리 결과까지 전부 원장으로 적재하기로 했음. - 들어온 원본은 가공 없이 그대로 저장 - 처리 단계별 상태 코드 분리 (수신완료 / 검증완료
읽기 → -
송금 대사 배치로 원장·결제·큐 불일치 자동 감지
연락처 송금 대사 배치를 만들게 된 이유 운영 들어간 지 한 달쯤 됐을 때 파트너 한 곳에서 "어제 송금 건 합계가 안 맞는다"는 문의가 들어왔음. 큐에 쌓인 송금 요청, 결제대행사로 넘긴 실제 출금, 우리 원장 잔액 차감 — 이 셋이 따로 노는 순간이 가끔 있다는 걸 그제서야 발견함. 사람이 매일 아침 SQL 돌려서 맞추고 있었는데 이게 지속 가능하지
읽기 → -
입금 통보 파서에 AI 검증 얹어 정산 수기 보정 60% 줄임
배경 이커머스 결제 플랫폼에서 파트너별 입금 통보 메시지를 수신해 자동 매칭하는 기능이 있었음. 문제는 결제대행사·은행마다 포맷이 제각각이라 정규식이 폭발적으로 늘어났다는 것. 기존 파서는 새 포맷 하나 추가될 때마다 분기 로직이 누더기처럼 붙음. 입금자명 한 글자 누락되면 매칭 실패했고, 그게 누락 데이터로 쌓여서 운영팀이 매일 수기 보정함. 구
읽기 → -
결제 웹훅 이중 디코딩 버그 수정으로 시그니처 검증 안정화
feat: KYC 재이행 알림 배치 작업 추가 Webhook 처리 로직에서 꽤 골치 아픈 이슈를 잡았음. 핵심은 이중 URL decode 문제임. 문제 발생 배경 결제대행사 Webhook은 POST body로 암호화된 필드를 넘겨주는데, 이 값이 URL-encoded 상태로 들어옴. 서버 프레임워크가 Content-Type: application/
읽기 → -
선물 만료 자동 배치에 멱등성·모니터링 설계 적용
feat: 선물 만료 자동 배치 작업 추가 배치 작업은 운영 중에 터지면 치명적이라 스케줄링 설계를 꼼꼼히 해야 함. 배치 설계 원칙 - 멱등성: 동일 조건으로 여러 번 돌아도 같은 결과 - 실패 로그: 어떤 건이 실패했는지 추적 가능해야 함 - 부분 성공: 일부 실패해도 나머지는 처리 계속 - 알림: 오류 발생 시 담당자에게 즉시 알림 스케줄
읽기 → -
파트너 페이지 디자인 토큰 통일
feat: 파트너 페이지 레이아웃 및 스타일 개선 CSS/SCSS 작업은 눈에 잘 안 보이지만 쌓이면 시스템 전체 일관성에 영향 줌. 이번엔 디자인 토큰 통일과 반응형 최적화가 메인이었음. CSS 변수 통일 작업 컴포넌트마다 4px, 6px, 8px, 12px이 혼재해있었음. 디자인 시스템 기준을 잡고 CSS 변수로 통일함. scss :root
읽기 → -
결제 영수증 화면을 모바일 카드형으로 개선하고 조회 성능 향상
feat: enhance receipt details and refund logic JSP UI 작업은 레거시 환경에서 어떻게 사용성을 올릴 수 있는지 계속 고민하게 만듦. 테이블 레이아웃 개선 모바일에서 가로 스크롤 없이 보이게 하는 게 과제였음. 카드형 뷰로 폴백 처리함. jsp <%-- PC: 테이블 형태 --%> <div class="ad
읽기 → -
JSP 관리 화면 모바일 레이아웃과 정산 수수료 정책 개선
feat: refine fee policy logic and enhance JSP layout flexibility JSP UI 작업은 레거시 환경에서 어떻게 사용성을 올릴 수 있는지 계속 고민하게 만듦. 테이블 레이아웃 개선 모바일에서 가로 스크롤 없이 보이게 하는 게 과제였음. 카드형 뷰로 폴백 처리함. jsp <%-- PC: 테이블 형태 -
읽기 → -
주문 결제 트랜잭션 정합성 강화와 쇼핑 UX 개선
fix: 주문서 통합 + 결제 UX 개선 + 쇼핑 서브헤더 추가 상품 목록부터 주문까지 이어지는 흐름을 정비했음. 특히 상품 옵션 처리와 페이징, 카테고리 필터가 한 번에 엮이는 부분이 까다로웠음. 상품 옵션 처리 구조 java // 옵션 유무 분기 if (product.hasOption()) { model.addAttribute("opti
읽기 → -
안정적인 배치 스케줄링 설계와 실행 이력 관리
fix: 주문 권한체크 관리자 예외 처리, 등급 아이콘/색상 표시, UI 버그 수정 배치 작업은 운영 중에 터지면 치명적이라 스케줄링 설계를 꼼꼼히 해야 함. 배치 설계 원칙 - 멱등성: 동일 조건으로 여러 번 돌아도 같은 결과 - 실패 로그: 어떤 건이 실패했는지 추적 가능해야 함 - 부분 성공: 일부 실패해도 나머지는 처리 계속 - 알림: 오류
읽기 → -
레거시 JSP 관리자 화면을 모바일 대응으로 개선
이메일 추가 및 기능 수정 JSP UI 작업은 레거시 환경에서 어떻게 사용성을 올릴 수 있는지 계속 고민하게 만듦. 테이블 레이아웃 개선 모바일에서 가로 스크롤 없이 보이게 하는 게 과제였음. 카드형 뷰로 폴백 처리함. jsp <%-- PC: 테이블 형태 --%> <div class="admin-table-wrapper d-none d-md-bl
읽기 → -
Apple OAuth 콜백 오류와 세션 유실 문제 해결
refactor: OAuth 연동 회원 조회 로직 변경 및 UI 개선 Apple OAuth가 구글/카카오랑 달리 까다로운 이유가 있음. form_post 방식을 강제하기 때문에 콜백이 POST로 들어오고, 이 과정에서 세션이 끊기거나 CORS 문제가 발생함. Apple OAuth 특이사항 - 콜백이 GET이 아닌 POST (form_post) -
읽기 → -
정산 수수료 단계별 누적 구조와 멱등성 처리 개선
feat: 정산 로직(수수료/마진) 및 Pay 정책 등급 기반 개선 정산 및 수수료 로직은 버그 하나가 금전 오류로 직결되는 영역이라 신중하게 접근해야 함. 수수료 계산 구조 유통 단계별로 수수료가 누적되는 구조임. 최하위 파트너가 가장 높은 요율을 부담하고, 상위로 갈수록 낮아지며 그 차액이 각 단계의 수익임. | 단계 | 요율 | 수익 | |
읽기 → -
이벤트 참여·회원 등급 배치 설계와 멱등 실행 구조 도입
feat: 이벤트 참여 및 회원 등급 기능 관련 다수 파일 추가 배치 작업은 운영 중에 터지면 치명적이라 스케줄링 설계를 꼼꼼히 해야 함. 배치 설계 원칙 - 멱등성: 동일 조건으로 여러 번 돌아도 같은 결과 - 실패 로그: 어떤 건이 실패했는지 추적 가능해야 함 - 부분 성공: 일부 실패해도 나머지는 처리 계속 - 알림: 오류 발생 시 담당자에게
읽기 →