AI와 함께 법원 자산매각 정보 서비스 MVP 만들고 결제 기능까지 붙여보기

이번에는 머릿속에만 있던 서비스 아이디어를 실제로 작동하는 MVP로 만들고, 토스페이먼츠 결제 기능까지 연결해봤습니다.

제가 만든 서비스의 이름은 파공(PAGONG)입니다.

한국어로 된 웹사이트의 홈페이지

대법원 회생·파산 게시판에 올라오는 자산매각 공고를 자동으로 모으고, 복잡한 첨부파일을 AI가 읽어서 어떤 물건인지, 가격은 얼마인지, 입찰은 언제 끝나는지를 보기 쉽게 보여주는 서비스입니다.

회사 다니면서 짬짬이 AI와 함께 만들고 있는데, 이번에도 역시 처음 생각한 것처럼 한 번에 완성되지는 않았습니다. 😃

처음에는 이렇게 생각했습니다.

“공고를 모아서 보기 좋게 보여주고 결제 버튼만 붙이면 MVP가 되는 것 아닐까?”

그런데 실제로 만들어보니 목록 화면 하나보다 그 뒤에서 연결돼야 하는 일이 훨씬 많았습니다.

제가 사용한 구성은 대략 이렇습니다.

- 웹앱: Next.js + TypeScript

- 회원 인증 / DB / 파일 저장: Supabase

- 공고 수집: 대법원 회생·파산 자산매각 공고게시판

- 첨부 분석: Python + Claude AI

- 결제: 토스페이먼츠

- 자동화: GitHub Actions

- 배포 준비: Vercel

## 🚀 1. 먼저 ‘완벽한 서비스’가 아니라 MVP부터 만들었다

처음부터 모든 기능을 넣으려고 하면 끝이 없을 것 같았습니다.

그래서 사용자가 파공에 들어왔을 때 꼭 필요할 것 같은 흐름부터 정했습니다.

1. 대법원에 새 공고가 올라온다.

2. 파공이 공고와 첨부파일을 자동으로 가져온다.

3. AI가 첨부파일을 읽고 물건과 가격을 정리한다.

4. 사용자는 목록에서 관심 있는 물건을 찾는다.

5. 상세보기에서 가격, 사진, 첨부 원문을 확인한다.

제가 AI에게 처음 요청한 방향도 단순했습니다.

```

대법원 회생·파산 자산매각 공고를 자동으로 모으고,

첨부파일을 AI가 분석해서 물건과 가격을 쉽게 볼 수 있는 서비스를 만들고 싶다.

```

AI는 이 요청을 바탕으로 공고 수집기, 데이터베이스, 목록 화면, 상세 화면을 하나씩 연결했습니다.

처음에는 화면에 공고 제목만 잘 나오면 어느 정도 된 줄 알았습니다.

하지만 실제 공고 제목은 대부분 ‘자산 매각공고’, ‘비품 매각공고’처럼 너무 일반적이었습니다. 사용자가 정말 궁금한 것은 제목이 아니라 그 안에 있는 물건이었습니다.

그래서 첨부파일의 표를 읽어

- 데스크탑 컴퓨터 외 4개 품목

같은 식으로 대표 품목을 보여주도록 개선했습니다.

여기서 MVP에 대해 새롭게 느낀 점이 있었습니다.

MVP는 기능이 적은 서비스가 아니라, 사용자가 핵심 가치를 실제로 경험할 수 있는 최소한의 완성품에 더 가까웠습니다.

파공의 핵심은 공고를 모으는 것이 아니라, 복잡한 공고 속에서 ‘살 만한 자산’을 빨리 발견하게 해주는 것이었습니다.

## 🔍 2. 실제 데이터를 붙이니 예상하지 못한 문제가 보였다

샘플 데이터에서는 화면이 꽤 그럴듯했습니다.

하지만 실제 대법원 공고 150여 건을 연결하자 문제가 하나씩 나타났습니다.

사진처럼 보였던 이미지가 사실은 공고문이나 가격표였고, 차량 사진은 옆으로 돌아가 있었으며, 동일한 제목의 공고 두 건이 중복처럼 보이기도 했습니다.

저는 화면을 보면서 AI에게 계속 구체적으로 요청했습니다.

```

문서 사진은 썸네일에서 빼고 실제 제품·차량·부동산 사진만 보여줘.

차량 사진은 정면으로 나온 대표사진 한 장만 방향을 바로 잡아서 보여줘.

```

AI는 문서 이미지와 실제 사진을 구별하는 규칙을 만들고, PDF 안에서 보이는 방향을 기준으로 사진을 다시 추출했습니다.

같은 제목의 공고가 실제로는 대법원에 별도 번호로 올라온 서로 다른 차량이라는 것도 확인했습니다. 그래서 화면에 ‘별도 공고 1/2’, ‘별도 공고 2/2’라고 표시해 사용자가 중복으로 오해하지 않도록 했습니다.

이 과정에서 느낀 것은 명확했습니다.

AI가 처음 만든 결과물이 곧 최종 결과물은 아니었습니다.

직접 써보고, 이상한 장면을 캡처하고, “이건 왜 이렇게 보이지?”라고 다시 질문하는 과정에서 서비스가 점점 실제 사용자에게 맞게 바뀌었습니다.

## 👤 3. 회원 기능을 붙이니 서비스의 구조가 달라졌다

목록과 상세보기만 있을 때는 정보 사이트에 가까웠습니다.

하지만 서비스를 지속적으로 운영하려면 회원마다 무료체험 기간과 유료 이용기간을 구분해야 했습니다.

그래서 Supabase를 이용해 이메일·비밀번호 로그인을 붙이고, 가입하면 10일 무료체험이 자동으로 시작되도록 구성했습니다.

회원 상태도 단순히 ‘로그인함/안 함’으로 나누지 않았습니다.

- 무료체험 중

- Pro 이용 중

- 체험 또는 이용기간 종료

세 가지 상태에 따라 접근할 수 있는 기능이 달라지도록 만들었습니다.

여기까지 만들고 나니 파공이 단순한 공고 모음이 아니라 실제 구독형 서비스의 형태를 갖추기 시작했습니다.

## 💳 4. 결제 버튼 하나 뒤에 이렇게 많은 과정이 있을 줄 몰랐다

이번 작업에서 두 번째로 집중한 부분은 결제 기능이었습니다.

제가 원한 요금제는 자동결제가 아니라 기간을 구매하는 방식이었습니다.

- 월간 이용권: 9,900원 / 30일

- 연간 이용권: 79,000원 / 365일

기존 이용기간이 남아 있으면 오늘부터 다시 계산하지 않고, 남은 기간 뒤에 새 이용기간이 이어서 붙도록 만들었습니다.

예를 들어 Pro 이용기간이 9월 30일까지 남아 있는 사용자가 월간 이용권을 다시 결제하면 10월 30일까지 연장되는 방식입니다.

여기서 가장 중요했던 부분은 결제 금액을 화면이 아니라 서버에서 결정하는 것이었습니다.

화면에서 전달된 금액을 그대로 믿으면 누군가 값을 바꿔 결제를 시도할 수 있기 때문입니다.

그래서 서버가 요금제별 금액을 확정하고, 토스 결제 승인 단계에서 주문 금액이 같은지 다시 확인하도록 만들었습니다.

이번에는 토스의 테스트 키를 사용했기 때문에 실제 돈이 청구되지는 않았습니다.

하지만 주문 생성 → 결제창 → 승인 → 이용권 연장까지 전체 흐름을 끝까지 연결해봤다는 점에서 의미가 있었습니다.

사업자등록과 토스 가맹 심사가 끝나면 테스트 키를 라이브 키로 교체해 실제 결제로 전환할 수 있는 구조입니다.

## ⚙️ 5. 자동화는 ‘설정했다’보다 ‘실제로 돌았는지’가 중요했다

공고 수집은 처음에 하루 한 번 실행하도록 만들었습니다.

그런데 오전 수집 이후 대법원에 새 공고가 올라오면 사이트에는 ‘오늘 신규 0건’으로 보이는 문제가 생겼습니다.

그래서 자동 수집 주기를 3시간 간격으로 바꿨습니다.

그런데 다음 날에도 신규 공고가 들어오지 않았습니다.

확인해보니 대법원 서버가 자동화 서버의 연결을 일시적으로 끊으면서 전체 작업이 실패한 것이 원인이었습니다.

결국 한 번 실패하면 끝나는 방식에서, 일정 시간 간격으로 최대 네 번 다시 시도하는 방식으로 바꿨습니다.

이때 배운 점은 단순했습니다.

자동화는 스케줄을 등록했다고 완성되는 것이 아니었습니다.

실패했을 때 다시 시도하는 방법과, 실제 최신 공고 번호가 데이터베이스에 들어왔는지 확인하는 방법까지 있어야 자동화라고 부를 수 있었습니다.

## ✅ 결과

몇 번의 수정과 시행착오 끝에 현재까지 다음 기능을 만들었습니다.

- 대법원 자산매각 공고 자동 수집

- 첨부 PDF AI 분석

- 자산 유형과 대표 품목 분류

- 회차별 최저입찰가와 마감일 표시

- 실제 물건 대표사진 표시

- 오늘 신규·자산 유형·법원·검색 필터

- 회원가입과 10일 무료체험

- 관리자 검수 화면

- 토스 테스트 결제

- 결제 완료 후 Pro 이용기간 자동 연장

- 3시간 간격 자동 수집

- 상세보기에서 대법원 첨부파일 바로 미리보기

이번 작업에서 가장 크게 느낀 점은 MVP를 만든다는 것이 단순히 화면을 빨리 만드는 일이 아니라는 것이었습니다.

사용자가 서비스의 핵심 가치를 처음부터 끝까지 경험할 수 있어야 했습니다.

파공에서는 공고를 발견하고, 물건과 가격을 이해하고, 상세 자료를 확인하고, 필요하면 결제해 계속 사용하는 흐름이 그것이었습니다.

또 결제 기능은 결제창을 여는 것보다 결제 전후의 상태를 정확하게 관리하는 일이 더 중요했습니다.

누가 어떤 요금제를 결제했는지, 금액이 맞는지, 이용기간을 어디에서부터 연장할지를 모두 연결해야 비로소 하나의 기능이 됐습니다.

아직 실제 서비스 배포와 라이브 결제 전환이라는 단계가 남아 있습니다.

다음에는 Vercel에 운영 환경을 배포하고, 사업자등록과 토스 가맹 절차가 완료되면 실제 결제로 전환해볼 예정입니다.

저처럼 비개발자이지만 아이디어를 실제 서비스로 만들어보고 싶은 분들에게 이번 시행착오가 조금이나마 도움이 되었으면 합니다. 🙂

2
1개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.