Backend Engineer
Make Non Polynomial Polynomial.
어떤 문제든 충분히 작게 쪼개면, 결국 풀어본 적 있는 문제였습니다.
Summary
복잡한 문제도 책임과 경계를 충분히 작게 나누면, 예측 가능하고 안전하게 풀 수 있는 문제로 바뀐다고 믿습니다.
음원 정산·지분율·계약처럼 오류 허용치가 낮은 도메인에서 트랜잭션 안정성, 동시성 제어, 분산 락, 대량 처리 구조를 직접 설계해 왔습니다.
경쟁 상태를 분석하고 락과 정합성 모델을 재설계하는 등, 담당 영역의 아키텍처를 끝까지 책임지는 데 강점이 있습니다. 퇴사 후에는 이 경험을 개인 프로젝트(ParityPay)에서 결제·원장 동시성 실측으로 이어가고 있습니다.
Career
유통사로부터 입수한 음원의 앨범·곡 메타데이터와 라이선스·계약 정보를 관리해 서비스 노출과 정산으로 연결하는 사내 백오피스 플랫폼입니다.
백엔드 리딩(3인 팀) — 화면 단위로 쪼개진 API, Map 기반 동적 입력, 조회·변경이 혼재된 MyBatis, row-level 락이 걸리는 시퀀스 채번 위에서 운영되던 JSP 레거시를 도메인 중심 아키텍처로 다시 세웠습니다.
글로벌 파트너사 앨범을 등록·검수해 DDEX 규격으로 국내외 음원 플랫폼에 자동 전송하는 유통·정산 시스템을 리뉴얼했습니다.
콘텐츠(앨범·트랙)·라이선스 관리 API 개발, 이후 계약관리 영역까지 단독 담당 — 정산 중 메타데이터 수정이 그대로 반영돼 재정산이 필요해지거나, 폴링 기반 단일 스레드 배치가 요청 급증 시 적체될 수 있는 리스크를 설계로 먼저 막았습니다.
대용량 데이터를 배치로 처리하고 조회 결과를 Excel로 생성해 내려주는 기능입니다.
단독 수행 — Tasklet 기반 단일 트랜잭션에 대량 엔티티가 영속성 컨텍스트에 누적되고, 조회 결과를 한 번에 메모리에 올려 Excel을 만들다 Full GC·OOM이 반복되던 구조를 청크 기반 트랜잭션과 스트리밍 방식으로 다시 설계했습니다.
유통사별 저작권·실연권 지분율 데이터를 등록·관리해 월 단위 정산의 기준 데이터로 제공하는 시스템입니다.
단독 설계·구현 — 기간 겹침 조건이 OR 기반이라 인덱스가 활용되지 않아 삭제 배치가 2시간을 넘겼고, 소유자 개념 없는 Redis 락으로 삭제·등록이 교차 실행되는 Race Condition이 있던 구조를 인덱스 재설계와 소유권 기반 분산락으로 다시 설계했습니다.
누구나 오디오 콘텐츠를 제작해 FLO에 배포할 수 있게 하는 B2C 크리에이터 플랫폼입니다.
초기 구축(3인 팀) 참여 후 외부 연동·인증·감사 대응 단독 전담 — "누가/언제/무엇을 했는가"를 추적할 로그 체계가 없었고, 외부 연동이 도메인 트랜잭션 안에서 수행돼 장애가 핵심 데이터로 전파될 수 있던 구조를 감사 로그 체계와 이벤트 기반 연동 구조로 다시 세웠습니다.
@TransactionalEventListener 기반 Post-Commit 이벤트로 분리 ⇒ 장애 전파 차단, 인증·KMS 암호화 연동도 함께 처리플랫폼 내장형 페이머니(선불 지갑) 결제·원장 시스템을 이중부기 불변 원장 구조로 설계한 개인 프로젝트입니다.
1인 개발 — 동시 잔액 차감, 외부기관 응답 유실, 이벤트 중복 전달처럼 실제 장애 상황에서도 절대 불변조건 10개가 깨지지 않는지 실측으로 검증하고자 했습니다.
Education
Awards
Certifications