Internal Dev Guide — 2026.04

FASSTO Herald 개발기 Claude Code 바이브코딩으로 9일 만에 프로덕션 서비스 만들기

JIRA Release Note URL을 입력하면 비개발자용 업데이트 공지를 자동 생성하는 풀스택 서비스를 Claude Code + Speckit 워크플로우로 개발한 과정을 공유합니다.

9일 개발 기간
22 커밋 수
47 구현 태스크
6 화면 수
1

왜 만들었는가

해결하려는 문제

기존 업데이트 공지 프로세스에는 여러 문제가 있었습니다:

  1. 개발팀이 릴리즈 내용을 간단히 정리하여 Slack 채널에 공지하는 방식이었고, 별도로 이메일을 보내지 않았습니다.
  2. 정리된 내용이 상세하지 않아, 배경을 모르는 비개발자는 어떤 업데이트인지 파악하기 어려웠습니다.
  3. 지나간 Slack 공지는 다시 찾아보기 어려워 업데이트 여부가 잘 인지되지 않았습니다.
  4. 기능 개선을 요청했던 담당자도 본인의 요청이 반영되었는지 알기 어려웠습니다.
해결 방향: 이메일로 발송하여 히스토리를 쌓아 언제든 다시 찾아볼 수 있게 하고, 요청자의 Slack 글에 배포 완료 댓글을 자동으로 달아 변경사항이 잘 인지되도록 합니다.

도구를 직접 만든 이유

솔직히 말하면, 이런 용도에 딱 맞는 SaaS 도구는 찾지 못했습니다. JIRA Release Note 파싱 + AI 변환 + Slack 연동 + 이메일 발송이라는 조합은 우리 조직의 워크플로우에 특화된 것이었고, 범용 도구로는 해결이 안 되는 영역이었습니다.

Claude Code를 사용하면 이 정도 규모의 내부 도구는 충분히 빠르게 만들 수 있다는 것을 직접 확인하고 싶었습니다. 결과적으로 기획부터 프로덕션 배포까지 9일이 걸렸습니다.
2

Speckit 워크플로우: 체계적인 바이브코딩

"그냥 코딩해줘"가 아니라 "설계부터 구현까지"

바이브코딩의 가장 큰 함정은 방향 없이 코드만 생성하는 것입니다. 이 프로젝트에서는 Speckit이라는 Claude Code 커스텀 슬래시 커맨드 세트를 활용하여 기획 → 설계 → 구현을 체계적으로 진행했습니다.

/speckit.specify기능명세서 작성
/speckit.clarify요구사항 명확화
/speckit.plan기술 설계
/speckit.tasks태스크 분해
/speckit.implement순차 구현
/simplify코드 리팩토링

각 단계가 하는 일

커맨드 역할 산출물
/speckit.specify 자연어 설명을 구조화된 기능명세서로 변환. User Story, 수용 기준, 엣지 케이스 자동 생성 spec.md
/speckit.clarify 명세서의 모호한 부분을 최대 5개 질문으로 구체화. 답변을 spec에 반영 spec.md 갱신
/speckit.plan 기술 스택 선정, 프로젝트 구조 설계, 데이터 모델 정의, API 계약 작성 plan.md, data-model.md, contracts/
/speckit.tasks User Story 기반으로 병렬/순차 태스크를 Phase별로 분해. 의존 관계 명시 tasks.md (47개 태스크)
/speckit.implement tasks.md를 순서대로 읽으며 코드 구현. Phase별 체크포인트 검증 전체 소스코드
/simplify 구현 완료된 코드를 리팩토링. 중복 제거, 코드 품질/효율성 개선 리팩토링된 코드
핵심 포인트: 이 워크플로우의 장점은 각 단계의 산출물이 다음 단계의 입력이 된다는 것입니다. Claude가 앞 단계에서 만든 문서를 다시 읽고 맥락을 유지하므로, 코드와 설계 사이의 일관성이 자연스럽게 보장됩니다. 마지막 /simplify를 통해 구현 과정에서 쌓인 코드 부채도 정리합니다.
3

개발 타임라인 (9일)

Day 1 — 4/1 (화)
기획 & 설계 + MVP 구현
/speckit.specify/speckit.plan/speckit.tasks/speckit.implement로 feature-spec.md 작성부터 전체 6화면 + 10개 API 초판 구현까지 완료.
첫 커밋: feat: JIRA Release Note 기반 비개발자용 업데이트 공지 서비스
Day 1~2 — 4/1 ~ 4/2
기능 고도화 & Slack 연동
사용자 피드백 기반 세부 조정 (45개+ 항목). Slack 배포 알림, 이메일 인증, Slack 요청자 자동 추출, AI 프롬프트 튜닝 등. TODO.md에 요청사항을 적고 하나씩 처리.
Day 4 — 4/4 (토)
Google SSO 전환
이메일/비밀번호 인증 → Google OAuth SSO로 전환. @fassto.com 도메인 제한. Gmail API를 통한 이메일 발송으로 변경 (사용자 본인 계정으로 발송).
Day 6 — 4/6 (월)
인프라 1차 변경: SQLite → RDS MySQL + S3
운영 환경을 고려하여 DB를 MySQL(RDS), 파일 스토리지를 S3로 마이그레이션. EKS 배포를 염두에 둔 구성.
Day 7 — 4/7 (화)
인프라 2차 변경: AWS → Vercel 전환 & 운영 배포
EKS 운영 부담을 줄이기 위해 Vercel로 전면 전환. Neon PostgreSQL + Vercel Blob + Vercel Functions (서울 리전). herald.fassto.ai 도메인 연결 및 프로덕션 배포 완료.
프로덕션 Go-Live
Day 8 — 4/8 (수)
성능 최적화 & 사용자 매뉴얼
Neon serverless 드라이버 적용, 대시보드 SSR 전환, 페이지네이션 추가. Vercel Functions 리전을 서울(icn1)로 고정. 사용자 매뉴얼 페이지 추가.
Day 9 — 4/9 (목)
운영 피드백 반영
실제 사용자 피드백: 기본 수신자 설정, OAuth 토큰 갱신 문제 해결, 발송 이력 공유 범위 확대, 업로드 에러 로깅.
4

인프라 변천사: 3번의 변화

왜 인프라가 3번이나 바뀌었을까?

바이브코딩의 장점 중 하나는 인프라 마이그레이션도 빠르게 할 수 있다는 것입니다. 각 전환은 Claude Code에게 "DB를 MySQL로 바꾸고 S3 업로드로 교체해줘" 같은 지시로 진행했고, 각각 1~2시간 내에 완료되었습니다.

v1. 로컬 개발

SQLite + 로컬 FS
UploadThing 업로드
Resend 이메일

Day 1~5

v2. AWS 구성

RDS MySQL + S3
EKS 배포 고려
Gmail API 발송

Day 6

v3. Vercel (최종)

Neon PostgreSQL + Vercel Blob
Vercel Functions (서울)
Gmail API 발송

Day 7~

왜 최종적으로 Vercel을 선택했는가

  • 빠른 배포 편의성: git push origin main 한 번이면 프로덕션 배포 완료. EKS 대비 운영 부담이 제로.
  • 간단한 서비스 특성: 소규모 내부 도구(사용자 <100명)로, EKS 클러스터를 운영할 필요가 없었음.
  • 내부 시스템 조작 불필요: DB 조회만 하고 내부 운영 시스템에 쓰기 작업이 없어, VPN/내부망 접근이 필요 없었음.
  • DevOps 요청 최소화: 가장 마지막에 herald.fassto.ai 도메인의 DNS만 Vercel로 연결해달라고 DevOps에 요청. 나머지는 모두 셀프 서비스.

최종 아키텍처

herald.fassto.ai | +----------v-----------+ | Vercel (icn1) | | Next.js 16 | | Fluid Compute | +--+--------+------+--+ | | | +-------v--+ +---v----+ +--v---------+ | Neon | | Vercel | | External | | Postgres | | Blob | | APIs | | | | (image)| | - JIRA | +----------+ +--------+ | - Slack | | - Gmail | | - Claude | +-----------+
구성 요소선택근거
호스팅Vercel (서울 리전)Next.js 네이티브, zero-config 배포, main push 시 자동 배포
DBNeon PostgreSQL (Marketplace)Serverless, 자동 스케일링, Prisma 호환
파일Vercel Blob스크린샷 업로드, public access, 환경변수 자동 주입
AIAnthropic Claude (LiteLLM 경유)기술 용어 → 비개발자 관점 변환에 우수
이메일Gmail API (사용자 OAuth)사용자 본인 이름으로 발송, 조직 신뢰도 향상
인증Auth.js v5 + Google SSO@fassto.com 도메인 제한, 별도 비밀번호 불필요
5

프롬프트 실전 기법

1단계: 클로드 채팅으로 PRD 다듬기

프로젝트의 시작은 코드가 아니라 요구사항 정리입니다. Claude 채팅(claude.ai)에서 만들고 싶은 서비스에 대해 여러 번 대화하며 요구사항을 다듬었습니다. "이런 도구가 필요해", "사용자 흐름은 이렇게", "이런 기능도 있으면 좋겠어" 같은 대화를 반복하며 어느 정도 정리되면 Markdown으로 다운로드하여 feature-spec.md로 저장합니다.

Tip: 코딩을 시작하기 전에 "뭘 만들 것인지"를 충분히 정리하세요. Claude 채팅에서 대화하며 PRD(제품 요구사항 문서)를 만드는 데 30분~1시간을 투자하면, 이후 개발 과정에서 방향을 잃지 않습니다.

2단계: Speckit으로 구조화된 스펙 생성

1단계에서 다운로드한 feature-spec.md를 프로젝트에 넣고, Claude Code에서 /speckit.specify를 실행합니다. 이 문서를 참조하여 User Story, 수용 기준, 엣지 케이스가 자동 생성됩니다.

Claude Code 입력
/speckit.specify JIRA Release Note 기반 비개발자용 업데이트 공지 자동 생성 서비스. feature-spec.md 및 user-flow.md 기반 전체 구현.

3단계: 구현 중 피드백 — TODO.md 패턴

초판 구현 후에는 실제 사용하면서 발견한 문제와 요청을 TODO.md에 적고, Claude Code에게 한 번에 또는 하나씩 처리하도록 요청했습니다.

실제 사용한 프롬프트 패턴
// 패턴 1: 구체적인 문제 해결 요청 재발송 시 재로그인 오류 발생 -> 매번 로그인 시마다 동의화면이 뜨는데, OAuth 토큰을 매 로그인마다 갱신하도록 수정해줘 // 패턴 2: 사용자 관점의 요구사항 다른 사람이 보낸 업데이트 공지도 발송 이력에 보이도록 설정해줘 // 패턴 3: 인프라 마이그레이션 AWS(RDS/S3/EKS)에서 Vercel(Neon/Blob)로 인프라 마이그레이션 해줘 // 패턴 4: AI 프롬프트 튜닝 티켓 요약 설명을 지금보다 2배 분량으로 늘려주는데, 청자 입장에서의 효용성을 더 구체적으로 설명해주고, 핵심적인 효과를 서식으로 강조해줘요.

효과적인 프롬프트의 공통점

원칙좋은 예나쁜 예
문제를 설명 "재발송 시 OAuth 토큰이 만료되어 재로그인이 필요함" "재발송 안 됨"
사용자 관점 "비개발자가 이해할 수 있게 기술 용어를 풀어서" "텍스트 변환해줘"
범위를 명시 "Slack의 #ask_system, #collabo_product 채널만" "Slack 연동해줘"
참조 문서 지정 "feature-spec.md 및 user-flow.md 기반" "알아서 설계해줘"
6

CLAUDE.md: 프로젝트의 "성격 설정"

CLAUDE.md가 중요한 이유

CLAUDE.md는 Claude Code가 프로젝트를 이해하는 영구 컨텍스트입니다. 대화가 길어져도, 새 세션을 열어도, 이 파일의 내용은 항상 유지됩니다. 이 프로젝트에서는 CLAUDE.md에 다음을 담았습니다:

실제 CLAUDE.md 구성 (149줄)

1

Project Overview

프로젝트의 한 줄 정의와 현재 상태. Claude가 맥락을 즉시 파악합니다.

2

Tech Stack

사용 중인 기술과 버전. "Next.js 16, React 19, Prisma 5..." 등을 명시하여 잘못된 버전의 API를 사용하는 것을 방지합니다.

3

Commands

pnpm dev, pnpm build 등 주요 명령어. Claude가 빌드/테스트를 직접 실행할 수 있습니다.

4

Design System (MANDATORY)

가장 핵심적인 부분. 색상 팔레트, 타이포그래피, 컴포넌트 패턴, Glassmorphism 스타일 등을 구체적인 Tailwind 클래스로 명시. Claude가 새 화면을 만들 때 일관된 디자인을 유지합니다.

5

Figma Design Reference

Figma fileKey를 포함하여 MCP로 디자인을 직접 참조할 수 있도록 합니다.

Design System 섹션 예시

## Design System (MANDATORY)

### Color Palette
Primary Gradient:  from-blue-600 to-purple-600
Background:        from-slate-50 via-blue-50/30 to-purple-50/30
Card:              bg-white/80 backdrop-blur-sm

### Category Colors
| 카테고리 | Badge Gradient |
| 기능 개선 | from-blue-100 to-blue-200 text-blue-700 |
| 버그 수정 | from-red-100 to-red-200 text-red-700   |

### Glassmorphism Pattern
bg-white/80 backdrop-blur-sm rounded-3xl shadow-xl border border-white/60

### Icons (lucide-react)
인증: Mail, Lock, User, CheckCircle, AlertCircle
편집: Edit2, Trash2, GripVertical, Merge
실전 Tip: Design System을 CLAUDE.md에 넣으면 새 화면을 만들 때마다 "이 색상 쓰고, 저 패턴 따르고..." 를 반복할 필요가 없습니다. Claude가 자동으로 일관된 스타일을 적용합니다.
7

Figma MCP 연동: 디자인 1:1 구현

Figma Make 프롬프트도 Claude Code로 생성

Figma의 AI 기능(Make)으로 화면 디자인을 빠르게 만들었는데, 이때 Figma Make에 넣을 프롬프트 자체도 Claude Code로 생성했습니다. 서비스의 기능 명세와 브랜딩 가이드를 참조하여 각 화면에 맞는 디자인 프롬프트를 만들어주므로, 일관된 디자인 언어를 유지할 수 있었습니다.

Figma Make 프롬프트 생성 요청 예시
Figma Make에서 Herald 서비스의 '이메일 발송 준비' 화면을 만들려고 해. feature-spec.md의 기능 3 내용과 현재 디자인 시스템(CLAUDE.md의 Design System)을 참고해서 Figma Make에 넣을 프롬프트를 만들어줘.

1:1 구현: 화면별로 Figma와 비교

단순히 "Figma 디자인을 참고해서 구현해줘"라고 하면 디자인이 온전히 반영되지 않습니다. 화면 하나하나를 Figma와 1:1로 비교하여 동일하게 구현하도록 명시적으로 지시했습니다.

Figma 1:1 구현 지시 프롬프트
Figma 디자인을 화면별로 1:1로 비교하여 충실히 구현할 것! 각 화면에 대해 Figma MCP로 디자인을 로드하고, 레이아웃/간격/색상/타이포그래피/아이콘을 모두 동일하게 맞춰줘. shadcn/ui 기본 스타일보다 Figma 디자인 코드의 스타일을 우선해.
Design System 자동 추출: 이렇게 구현한 뒤, 새로운 화면을 추가할 때 디자인 일관성을 유지하기 위해 기존 구현 코드에서 Design System(색상, 타이포, 컴포넌트 패턴)을 추출하여 CLAUDE.md에 기록하도록 지시했습니다. 이후 Figma 디자인이 없는 화면도 동일한 톤앤매너로 생성됩니다.

작동 흐름

1

Figma Make 프롬프트 생성 (Claude Code)

기능 명세 + 디자인 시스템을 참고하여 Figma Make에 넣을 프롬프트를 Claude Code가 작성.

2

Figma Make로 디자인 생성

생성된 프롬프트를 Figma Make에 붙여넣어 화면 디자인을 빠르게 생성.

3

MCP로 디자인 컨텍스트 로드

Claude Code가 Figma MCP의 get_design_context(fileKey)를 호출하여 디자인 스펙을 읽음.

4

화면별 1:1 비교 구현

각 화면을 Figma와 비교하며 Tailwind CSS로 충실히 재현. Design System을 CLAUDE.md에 기록.

8

QA 사이클: Playwright + 수동 테스트

가장 중요한 단계

구현이 끝났다고 바로 사용할 수 있는 것이 아닙니다. Playwright를 이용한 자동 테스트로 기본적인 런타임 오류를 먼저 잡고, 그 다음에 직접 개발 서버를 실행하여 수동으로 테스트하는 2단계 QA 사이클을 반복했습니다.

Playwright
자동 테스트Claude Code가 실행
오류 수정Claude Code가 즉시 수정
수동 테스트직접 브라우저에서 확인
TODO.md 정리수기로 이슈 기록
Claude Code
개발 요청TODO 기반 수정

Playwright 테스트 프롬프트

구현 완료 후 Claude Code에게 Playwright E2E 테스트를 실행하도록 요청합니다. 오류가 발견되면 바로 수정하게 하여 기본적인 런타임 에러를 제거합니다.

Playwright 테스트 실행 프롬프트
// 패턴 1: 전체 흐름 E2E 테스트 Playwright로 전체 사용자 플로우를 테스트해줘: 1. 로그인 페이지 접근 및 Google SSO 버튼 노출 확인 2. 대시보드 페이지 렌더링 확인 3. JIRA URL 입력 화면에서 URL 필드 추가/삭제 동작 4. 초안 편집 화면에서 항목 삭제, 카테고리 선택, 드래그앤드롭 동작 5. 이메일 발송 준비 화면에서 수신자 입력, 미리보기 렌더링 오류가 발생하면 원인을 분석하고 바로 수정해줘. // 패턴 2: 특정 화면 집중 테스트 초안 편집 페이지(/notice/draft/edit)에 대해 Playwright 테스트를 작성하고 실행해줘. 특히 항목 병합 기능과 스크린샷 업로드 기능을 중점적으로 테스트해. 실패하는 테스트가 있으면 코드를 수정하고 다시 실행해서 통과시켜줘. // 패턴 3: 빌드 + 테스트 통합 검증 pnpm build로 프로덕션 빌드가 정상적으로 완료되는지 확인하고, pnpm test:e2e로 E2E 테스트를 실행해줘. 빌드 오류나 테스트 실패가 있으면 모두 수정해.

수동 테스트 → TODO.md → 개발 요청

Playwright 테스트가 통과하면, 그제서야 직접 개발 서버(pnpm dev)를 실행하고 브라우저에서 수동으로 테스트합니다. 이 과정에서 발견한 UI 이슈, UX 개선점, 기능 변경사항을 TODO.md에 수기로 정리하고, 다시 Claude Code에 개발을 요청합니다.

실전 Tip: Playwright는 "페이지가 렌더링되는가", "버튼이 동작하는가" 같은 기본 검증에 효과적입니다. 하지만 "이 간격이 어색하다", "이 워딩이 부자연스럽다" 같은 판단은 직접 눈으로 봐야 합니다. 자동 테스트 → 수동 테스트의 순서를 지키면 수동 테스트 시간을 크게 줄일 수 있습니다.

Playwright로 사용자 매뉴얼 자동 생성

모든 개발과 QA가 완료된 후, Playwright를 테스트가 아닌 스크린샷 캡처 도구로 활용하여 사용자 매뉴얼을 자동으로 생성했습니다. 각 화면을 순서대로 캡처하고, 캡처된 이미지를 기반으로 HTML 매뉴얼 페이지까지 Claude Code가 작성합니다.

사용자 매뉴얼 자동 생성 프롬프트
// Playwright로 각 화면 스크린샷 캡처 + 매뉴얼 HTML 생성 Playwright를 사용해서 사용자 매뉴얼을 만들어줘. 1. 다음 화면들을 순서대로 캡처해: - 로그인 화면 - 대시보드 (발송 이력 목록) - JIRA URL 입력 화면 - 초안 편집 화면 - 이메일 발송 준비 + 미리보기 화면 2. 캡처한 스크린샷을 public/manual/ 폴더에 저장 3. 스크린샷을 포함한 사용자 매뉴얼 HTML 페이지를 만들어줘 - 각 화면별 주요 기능 설명 - 단계별 사용 가이드 (1. 로그인 → 2. URL 입력 → 3. 편집 → 4. 발송) - 비개발자가 이해할 수 있는 쉬운 용어로 작성
결과: 이렇게 만들어진 매뉴얼이 바로 로그인 화면의 "사용자 매뉴얼" 링크로 연결되어 있습니다. 화면이 변경되면 Playwright를 다시 실행하여 스크린샷과 매뉴얼을 갱신할 수 있습니다.
9

배운 점과 실전 팁

잘 된 것

  • Speckit 워크플로우가 방향을 잡아줬습니다. specify → plan → tasks → implement → simplify 순서를 따르니 "이제 뭘 해야 하지?"라는 막막함이 사라졌습니다.
  • CLAUDE.md의 디자인 시스템이 일관성을 유지했습니다. 6개 화면 모두 같은 색상/타이포/패턴을 사용하여 통일된 UI를 확보했습니다.
  • TODO.md 기반의 반복적 피드백이 효율적이었습니다. 실사용 중 발견한 45개+ 이슈를 체계적으로 추적하고 해결했습니다.
  • 인프라 마이그레이션이 빠르게 진행되었습니다. 3번의 인프라 변경(SQLite → MySQL → Neon)을 각 1~2시간 안에 완료. 코드 변경은 Claude가 처리하므로 의사결정에 집중할 수 있었습니다.
  • Playwright + 수동 테스트 사이클이 품질을 보장했습니다. 자동 테스트로 기본 오류를 빠르게 잡고, 수동 테스트로 UX를 다듬는 2단계 접근이 효과적이었습니다.

주의할 점

  • 초기 기술 스택 결정을 신중하게. 인프라를 3번 바꿨는데, 처음부터 배포 환경을 확정했으면 2일을 절약했을 것입니다. plan 단계에서 "실제 운영은 어디에?"를 반드시 결정하세요.
  • AI 변환 프롬프트는 반복 튜닝이 필요합니다. JIRA 티켓을 비개발자용으로 바꾸는 프롬프트는 5~6번 수정했습니다. "분량을 2배로", "효용성을 더 구체적으로" 같은 피드백을 반복했습니다.
  • 외부 API 인증 문제는 Claude가 해결하기 어렵습니다. Google OAuth 설정, JIRA API 토큰 발급 등은 직접 콘솔에서 작업해야 합니다. Claude는 코드만 작성해 줄 수 있으므로, 인증 설정 가이드를 따로 준비하세요.
  • 보안 정보 관리에 주의. TODO.md에 실수로 Client Secret을 기록한 적이 있습니다. 민감 정보는 .env에만, .gitignore에 반드시 포함하세요.

프로젝트 규모 대비 생산성 지표

47
구현 태스크
10
API 엔드포인트
6
주요 화면
5
외부 API 연동

JIRA, Slack, Gmail, Anthropic Claude, Vercel Blob — 5개의 외부 서비스 연동을 포함한 풀스택 서비스

10

여러분의 도구 만들기

이런 도구를 만들어 보세요

업무에서 "이거 왜 매번 수동으로 해야 하지?" 라고 느끼는 순간이 있다면, 그것이 자동화 도구의 후보입니다. 몇 가지 예시:

반복 업무 자동화 아이디어 핵심 연동
장애 보고서 작성 Slack 타임라인 + Grafana 메트릭 → 장애 보고서 초안 자동 생성 Slack API, Grafana API, Claude
주간 보고 작성 JIRA 완료 티켓 + GitHub PR → 주간 보고 초안 JIRA API, GitHub API, Claude
코드 리뷰 요약 GitHub PR diff → 비개발자용 변경 영향도 요약 GitHub API, Claude
고객 문의 분류 CS 채널 메시지 → 카테고리 분류 + 담당자 자동 배정 Slack API, Claude, Notion API

시작하기 체크리스트

1

Claude 채팅으로 PRD 작성 (30분~1시간)

Claude 채팅에서 요구사항을 여러 번 다듬으며 PRD 문서를 만듭니다. 어느 정도 정리되면 Markdown으로 다운로드.

2

CLAUDE.md 초기화

Tech Stack, Commands, Design System을 먼저 정의합니다. 이것이 전체 프로젝트의 일관성을 결정합니다.

3

Speckit 워크플로우 실행

/speckit.specify/speckit.plan/speckit.tasks/speckit.implement/simplify. 한 단계씩 검토하며 진행합니다.

4

QA 사이클: Playwright → 수동 테스트 → TODO.md

Playwright로 기본 오류를 잡고, 직접 사용하며 피드백을 TODO.md에 기록. Claude Code로 수정 요청 후 반복.

5

Vercel 배포 & 운영

Vercel에 배포하고 실사용합니다. 운영 피드백을 받아 지속적으로 개선합니다.

"완벽한 설계보다 빠른 피드백이 더 좋은 도구를 만든다." Claude Code와 함께라면 시작의 부담은 줄이고, 반복의 속도는 높일 수 있습니다.
여러분이 매일 겪는 불편함을 해결하는 도구를 직접 만들어 보세요.