결제·정산·주문 백엔드를 직접 만들어본 경험으로,
사용자가 불편을 느끼는 지점을 찾고 실현 가능한 개선을 제안합니다.
프론트엔드 개발자와 2인 팀으로 실서비스를 출시하며, 백엔드 전체와 QA를 맡아 만든 결과입니다.
요구사항을 기능으로 옮기고, 설계·구현부터 QA·배포까지 참여한 프로젝트입니다.
팔로우 기반 소셜 피드와 미디어 접근 제어 구조를 설계·구현했습니다. 누가 어떤 콘텐츠를 볼 수 있는지를 정책으로 정의하고, 그 정책을 DB와 API에 반영했습니다.
월정액 구독 자동 갱신, 포인트 결제, 유료 콘텐츠 접근 제어까지 결제 흐름 전체를 구축했습니다. 운영자가 매번 확인하지 않아도 갱신과 정산이 돌아가도록 자동화했습니다.
장바구니, 주문, 결제, 정산으로 이어지는 이커머스 백엔드를 구축했습니다. 장바구니 도입으로 기존 주문 구조가 한계에 부딪히자, 운영 중인 서비스를 멈추지 않고 테이블을 재설계했습니다.
AI를 서비스에 붙이려면 모델이 어떻게 학습되는지부터 알아야 한다고 생각해 LLM 파인튜닝을 독학하고 실습했습니다.
맡은 역할 밖이라도 사용자가 불편을 겪는 지점을 찾아 근거와 함께 제안했습니다.
운영 중 발생한 버그와 설계 이슈를 직접 발견하고 원인을 찾아 해결한 사례입니다.
published_at 기준 커서 페이지네이션으로 전환. WHERE published_at < :cursor로 삽입 영향 차단status = 'active'만 확인. Cron이 돌기 전 시간차를 고려하지 않음status = 'active' AND expired_at > NOW() 이중 검증으로 실시간 만료 판정chatRoomId가 null이 되며 알림 블록 전체가 건너뛰어짐. 오류는 로그에만 남고 결과는 성공으로 기록results.errors에 명시 기록해 응답만 보고도 부분 실패를 파악하도록 개선store_orders 단일 테이블로는 한 주문에 여러 상품을 담을 수 없음store_orders / store_order_items / store_shipments / store_shipment_items로 분리. FK 의존 순서대로 옮기며 기존 API 하위 호환 유지distribution_rate가 비어 있는 상품에서 잘못된 기본값 사용. 상품 유형별 우선순위 규칙 부재product_source를 최우선 판단 기준으로 정하고, 빈 값 처리 순서를 명시반복 작업은 AI에 맡기고, 요구사항 정의와 예외 상황 검증은 직접 했습니다.
deno check로 정적 검증서비스가 어떻게 만들어지고 돌아가는지 이해하는 데 쓰는 도구들입니다.
개발하며 배운 것과 문제를 해결한 과정을 기록합니다.