← 모든 프로젝트
02 / 결제 연동·장애 분석2022.02 – 2023.11 · 개발·운영 완료

스카이탭 결제·Apple 환불 연동

1:1 태블릿 과외 · 독립 결제 서버와 Spring AOP 오류 수정

기술 스택이 다른 결제 기능을 독립 서버로 개발하고, 호출 주체별로 인증 경로를 나눴습니다.

담당 역할

플랫비: 결제·환불 연동 / 교육지대: 회원·결제·모니터링

활용 기술
Java · SpringInicis · Apple APISpring RetryPinpointPostgreSQL
문제

Apple 환불 검증에서 재시도가 실행되지 않아 호출 구조를 확인해야 했습니다.

설계와 구현
  1. Internal·External 인증 경로 분리
  2. @Retryable이 실행되지 않는 원인 추적
  3. 회원 연동과 운영 모니터링
성과

Apple 환불 검증 재시도 복구

검증 로직을 별도 Bean으로 분리해 AOP 프록시 경유 호출로 변경

스카이탭 결제Apple 환불 검증 재시도
호출 Bean
AOP Proxy
검증 Bean

검증 로직을 별도 Bean으로 분리해 프록시 경유 호출

핵심 흐름 · 이해를 돕기 위해 단순화한 개념도

스카이탭 학생·선생님 수업 화면
서비스 맥락 · 학생과 선생님이 사용하는 스카이탭 수업 화면
01 / CHALLENGE

문제와 제약

기존 서비스와 기술 스택이 다른 결제 기능을 개발해야 했습니다. 서버 간 요청과 사용자 요청의 인증을 분리하고, Apple 환불 결과를 서비스 DB에 반영해야 했습니다.

02 / DECISIONS

설계와 구현

01

Internal·External 인증 경로 분리

플랫비에서 독립 결제 서버를 개발했습니다(2022.02~11). 서버 간 요청은 헤더 토큰으로, 사용자 요청은 통합회원 서버를 통해 검증하고 Inicis·Apple 결제를 연동했습니다.

02

@Retryable이 실행되지 않는 원인 추적

Apple Verify API 재시도가 같은 객체 내부 호출로 Spring AOP 프록시를 거치지 않는 문제를 테스트 코드로 재현해 확인했습니다(2022.06~08). 검증 로직을 별도 Bean으로 분리해 프록시 경유 호출로 바꾸고 재시도와 환불 상태 동기화가 동작하도록 수정했습니다.

호출 구조 전후 · 이해를 돕기 위한 개념도

이전

AOP Proxy거치지 않음
동일 Bean
호출 메서드this.검증 메서드 @Retryable

✕ 재시도 미실행

같은 객체 내부 호출로 Spring AOP 프록시를 거치지 않는 문제

변경 후

호출 BeanAOP Proxy검증 Bean @Retryable

✓ 재시도 동작

검증 로직을 별도 Bean으로 분리해 프록시 경유 호출로 바꾸고 재시도와 환불 상태 동기화가 동작하도록 수정했습니다.

03

회원 연동과 운영 모니터링

교육지대에서는 족보닷컴 통합회원 체계에 맞춰 스카이탭 가입·로그인·결제를 연결했습니다(2023.02~06). Actuator·Micrometer·Prometheus·Grafana로 지표를 수집·시각화하고 Pinpoint로 호출 경로와 병목을 추적하도록 구성했습니다(2023.03~05).

환불 Webhook
호출 Bean
AOP Proxy
검증 Bean
DB 반영
이해를 돕기 위해 단순화한 개념 흐름입니다.
03 / RESULT

Apple 환불 검증 재시도 복구

검증 로직을 별도 Bean으로 분리해 AOP 프록시 경유 호출로 변경

서비스 본체와 API로 연동하는 결제 서버를 운영하며, Spring AOP 자기 호출로 동작하지 않던 Apple 환불 검증 재시도를 복구했습니다. 이후 교육지대에서는 회원 연동과 운영 모니터링을 추가로 담당했습니다.

다음 프로젝트전동공구 A/S 관리 플랫폼
← 모든 프로젝트 보기

채용·프로젝트 문의

dohoon321@gmail.com
도훈의 AIPORTFOLIO ASSISTANT
PORTFOLIO Q&A

안녕하세요.
경력과 프로젝트를 질문해 주세요.

공개된 포트폴리오를 바탕으로 답변합니다.

AI 답변은 오류가 있을 수 있습니다. 이용 안내(새 탭)
질문은 OpenAI로 전송됩니다. 개인정보는 입력하지 마세요.