#refactor
-
파트너 레벨·수수료 설정을 시스템별로 동적 관리
feat: 시스템별 파트너 레벨 설정 기능 추가 파트너 관리 기능 정비 작업임. 계정 발급, 레벨 설정, 수수료 설정이 한 화면에서 유기적으로 동작해야 해서 꼼꼼히 짜야 했음. 파트너 등록 필수값 | 필드 | 필수 여부 | 검증 | |------|--------|------| | 상호명 | 필수 | NOT NULL | | 대표자명 | 필수 | NO
읽기 → -
결제 웹훅 이중 URL 디코딩 버그 수정으로 서명 검증 안정화
fix: 포인트소멸/사용자출금 Webhook도 이중 URL decode 버그 수정 Webhook 처리 로직에서 꽤 골치 아픈 이슈를 잡았음. 핵심은 이중 URL decode 문제임. 문제 발생 배경 결제대행사 Webhook은 POST body로 암호화된 필드를 넘겨주는데, 이 값이 URL-encoded 상태로 들어옴. 서버 프레임워크가 Conten
읽기 → -
결제 웹훅 이중 URL 디코딩으로 인한 시그니처 검증 오류 수정
fix: VBANK_CHARGE Webhook 시그니처 검증 시 URL-encoded trstnId를 primary로 변경 Webhook 처리 로직에서 꽤 골치 아픈 이슈를 잡았음. 핵심은 이중 URL decode 문제임. 문제 발생 배경 결제대행사 Webhook은 POST body로 암호화된 필드를 넘겨주는데, 이 값이 URL-encoded 상태
읽기 → -
서비스 계층을 정적 유틸로 전환해 패키지 구조 단순화
refactor: CSS 변수 재구성 및 새로운 상품 카테고리 스타일 추가 리팩토링은 기능 변경 없이 코드 품질을 올리는 작업임. 이번엔 패키지 구조 정리와 Service 계층을 Util 방식으로 전환하는 게 핵심이었음. 패키지 구조 재편 기존: 기능별 패키지 내 Controller/Service/Mapper 혼재 개선: Controller(we
읽기 → -
금융 핵심 서비스 3개를 정적 유틸로 전환 완료
refactor: 단계 Step 3 - 금융 핵심 Service 3개를 utl/ Util로 전환 리팩토링은 기능 변경 없이 코드 품질을 올리는 작업임. 이번엔 패키지 구조 정리와 Service 계층을 Util 방식으로 전환하는 게 핵심이었음. 패키지 구조 재편 기존: 기능별 패키지 내 Controller/Service/Mapper 혼재 개선: C
읽기 → -
서비스 4개를 Util 계층으로 전환해 패키지 구조 정리
refactor: 단계 Step 2 - 중간 의존성 Service 4개를 utl/ Util로 전환 리팩토링은 기능 변경 없이 코드 품질을 올리는 작업임. 이번엔 패키지 구조 정리와 Service 계층을 Util 방식으로 전환하는 게 핵심이었음. 패키지 구조 재편 기존: 기능별 패키지 내 Controller/Service/Mapper 혼재 개선:
읽기 → -
배치 스케줄링 안정성과 실행 이력 관리 체계 구축
refactor: 단계 Step 1 - 독립 Service 6개를 utl/ Util로 전환 배치 작업은 운영 중에 터지면 치명적이라 스케줄링 설계를 꼼꼼히 해야 함. 배치 설계 원칙 - 멱등성: 동일 조건으로 여러 번 돌아도 같은 결과 - 실패 로그: 어떤 건이 실패했는지 추적 가능해야 함 - 부분 성공: 일부 실패해도 나머지는 처리 계속 - 알림
읽기 → -
서비스 계층을 정적 유틸로 전환하고 패키지 구조 재편
refactor: JSP 파일 제거 및 예치금 관리 기능 구현 리팩토링은 기능 변경 없이 코드 품질을 올리는 작업임. 이번엔 패키지 구조 정리와 Service 계층을 Util 방식으로 전환하는 게 핵심이었음. 패키지 구조 재편 기존: 기능별 패키지 내 Controller/Service/Mapper 혼재 개선: Controller(web)와 Uti
읽기 → -
서비스 계층을 정적 유틸로 전환해 패키지 구조 개선
feat: 스킬 리팩토링 및 작업 프로세스 위임 로직 구현 리팩토링은 기능 변경 없이 코드 품질을 올리는 작업임. 이번엔 패키지 구조 정리와 Service 계층을 Util 방식으로 전환하는 게 핵심이었음. 패키지 구조 재편 기존: 기능별 패키지 내 Controller/Service/Mapper 혼재 개선: Controller(web)와 Util(
읽기 → -
파트너 정산 서비스 계층을 정적 유틸로 전환해 구조 단순화
refactor: 파트너 잔액 체크 로직 제거 및 관련 코드 정리 리팩토링은 기능 변경 없이 코드 품질을 올리는 작업임. 이번엔 패키지 구조 정리와 Service 계층을 Util 방식으로 전환하는 게 핵심이었음. 패키지 구조 재편 기존: 기능별 패키지 내 Controller/Service/Mapper 혼재 개선: Controller(web)와 U
읽기 → -
결제 알림 채널별 발송
fix: Welcome Payments 스펙 개선 및 PUSH NOTI 처리 기능 추가 알림 시스템 구현 작업임. 거래 이벤트마다 적절한 채널로 알림을 발송하는 구조를 잡았음. 알림 채널 | 채널 | 용도 | 특징 | |------|------|------| | 앱 PUSH | 실시간 거래 알림 | FCM 사용 | | SMS | 중요 인증/보안 |
읽기 → -
웰컴페이 회원 탈퇴 시 관리자 식별자 조회 로직 보완
fix: 웰컴페이 회원 탈퇴 로직 보완 (mgtId 조회 로직 추가) 이번 작업의 핵심은 기존 기능 안정화와 코드 일관성 확보였음. 변경 범위가 여러 레이어에 걸쳐있어서 영향 범위를 꼼꼼히 체크했음. 변경 영역 | 레이어 | 파일 수 | 주요 변경 | |--------|--------|---------| | 백엔드 로직 | 1개 | 핵심 처리 로직
읽기 → -
결제 웹훅 이중 URL 디코딩 버그 수정으로 시그니처 검증 안정화
fix: Welcomepay ci 필드 조회 로직 수정 및 회원 쿼리 기본 조건 변경 Webhook 처리 로직에서 꽤 골치 아픈 이슈를 잡았음. 핵심은 이중 URL decode 문제임. 문제 발생 배경 결제대행사 Webhook은 POST body로 암호화된 필드를 넘겨주는데, 이 값이 URL-encoded 상태로 들어옴. 서버 프레임워크가 Cont
읽기 → -
관심 카테고리·쿠폰 조회 기록 API 신규 추가
feat: 관심 카테고리 선택/저장 기능 및 쿠폰 조회 기록 API 추가 문서화 작업은 귀찮지만 나중을 위해 꼭 필요함. 특히 외부 API 연동 부분은 레퍼런스 없으면 매번 명세서 다시 뒤져야 함. 문서 구조 .claude/docs/ ├── api-reference.md 외부 API 엔드포인트 정리 ├── architecture.md
읽기 → -
JSP 관리자 화면 모바일 대응
fix: OG 이미지 기본 경로 수정 및 이미지 파일 추가 JSP UI 작업은 레거시 환경에서 어떻게 사용성을 올릴 수 있는지 계속 고민하게 만듦. 테이블 레이아웃 개선 모바일에서 가로 스크롤 없이 보이게 하는 게 과제였음. 카드형 뷰로 폴백 처리함. jsp <%-- PC: 테이블 형태 --%> <div class="admin-table-wrap
읽기 → -
Apple 소셜 로그인 콜백 세션 유실
fix(oauth): Apple 연동 후 로그인 세션 재설정 Apple OAuth가 구글/카카오랑 달리 까다로운 이유가 있음. form_post 방식을 강제하기 때문에 콜백이 POST로 들어오고, 이 과정에서 세션이 끊기거나 CORS 문제가 발생함. Apple OAuth 특이사항 - 콜백이 GET이 아닌 POST (form_post) - 봇 차단
읽기 → -
Apple OAuth 콜백 차단·세션 유실 문제 해결
fix(oauth): Apple OAuth 콜백 봇 차단 필터 예외 추가 Apple OAuth가 구글/카카오랑 달리 까다로운 이유가 있음. form_post 방식을 강제하기 때문에 콜백이 POST로 들어오고, 이 과정에서 세션이 끊기거나 CORS 문제가 발생함. Apple OAuth 특이사항 - 콜백이 GET이 아닌 POST (form_post)
읽기 → -
등급별 수수료 정책 조회와 정산 멱등성 처리 개선
refactor: 불필요한 pageTitle 속성 제거 및 등급별 수수료 정책 조회 쿼리 추가 정산 및 수수료 로직은 버그 하나가 금전 오류로 직결되는 영역이라 신중하게 접근해야 함. 수수료 계산 구조 유통 단계별로 수수료가 누적되는 구조임. 최하위 파트너가 가장 높은 요율을 부담하고, 상위로 갈수록 낮아지며 그 차액이 각 단계의 수익임. | 단
읽기 → -
레거시 JSP 관리자 화면을 모바일 대응으로 개선
fix: JSON 파싱 오류 원인 치환 문자열 수정 JSP UI 작업은 레거시 환경에서 어떻게 사용성을 올릴 수 있는지 계속 고민하게 만듦. 테이블 레이아웃 개선 모바일에서 가로 스크롤 없이 보이게 하는 게 과제였음. 카드형 뷰로 폴백 처리함. jsp <%-- PC: 테이블 형태 --%> <div class="admin-table-wrapper
읽기 → -
에러 레이어별 분리로 사용자 친화적 오류 메시지 제공
fix: 사용자 친화적 오류 메시지 처리 개선 에러 처리는 사용자 경험에 직결됨. 스택 트레이스 그대로 보여주거나, 의미 없는 "오류가 발생했습니다" 메시지는 지양함. 에러 레이어별 처리 BusinessException → 400/422 + 구체적 메시지 AuthException → 401/403 + 리다이렉트 NotFoundException →
읽기 →