일과 기술 목록으로
서로 다른 웹 애플리케이션을 나타내는 깔끔한 UI 대시보드 세 개가 겹겹이 쌓여 있고, 그 위에 코딩 도구가 놓인 모던한 플랫 디자인
일과 기술

AI 시대의 속도: 몇 주 만에 제품 세 개를 만든 방법

예전에는 소프트웨어 제품 하나를 출시하려면 몇 달의 개발이 필요했다. AI로 디지털 제품 세 개를 몇 주 만에 설계하고 만들어 출시한 과정을 정리했다.

성장 중v1.0버전작성 2026년 6월 18일→ 갱신 2026년 6월 18일

오랫동안 제품 아이디어에서 실제 출시까지 가는 여정은 마라톤이었다. 1인 개발자라면 소프트웨어 제품 하나를 만들기 위해 몇 주에 걸친 보일러플레이트 설정을 각오해야 했다. 데이터베이스를 구성하고, 인증을 설정하고, API 라우팅 엔드포인트를 작성하고, 반응형 레이아웃을 만들고, 검증 스크립트를 작성하는 일이다.

제품만의 핵심 가치를 코딩하는 단계에 이를 즈음이면 이미 녹초가 되어 있었다.

하지만 2026년 중반, 무언가를 만드는 속도는 근본적으로 바뀌었다. 나는 4주 동안 서로 완전히 다른 웹 애플리케이션 세 개를 설계하고, 만들고, 출시했다.

  1. SentryPost: 오디언스 참여 로그를 바탕으로 발송 시간을 최적화하는 소셜 미디어 자동 예약 도구.
  2. Tabulate: PDF 영수증을 파싱해 항목을 구조화된 경비 시트에 바로 매핑하는 데이터베이스 유틸리티.
  3. DailyList: 매일 오는 이메일 업데이트를 하나의 대시보드로 요약해 주는 미니멀한 뉴스레터 애그리게이터.

나는 10x 개발자가 아니고, 주 100시간씩 일해서 이 소프트웨어를 만든 것도 아니다. 대신 표준화된 스택(Next.js, TailwindCSS, Supabase)을 사용하고, 보일러플레이트와 레이아웃, 연동 로직 전부를 AI 코딩 에이전트에게 맡겼다.

이 글은 생각의 속도로 무언가를 만들면서 얻은 워크플로, 아키텍처, 그리고 개발자로서의 교훈을 돌아본 회고다.


표준화된 스택: 속도를 위한 설계도

AI로 빠르게 만들려면 아키텍처의 다양성을 없애야 한다. 프로젝트마다 데이터베이스 제공업체나 백엔드 프레임워크, CSS 접근 방식을 바꾸면 AI 코딩 에이전트가 혼란에 빠진다. 컨벤션을 뒤섞게 되고, 그 결과 컴파일 오류가 크게 늘어난다.

나는 세 제품 모두에 하나의 깔끔한 스택을 표준으로 정했다.

  • 프레임워크: Next.js (App Router, TypeScript)
  • 스타일링: TailwindCSS (유틸리티 클래스로 빠르게 레이아웃을 잡기 위해)
  • 데이터베이스와 인증: Supabase (이메일 인증이 내장된 PostgreSQL)
  • 배포: Vercel (프리뷰 배포 자동화를 위해)
+-------------------------------------------------+
| Next.js App Router (TypeScript)                 |
|                                                 |
| [Frontend UI: Tailwind]  <-->  [Backend API]    |
|                                     |           |
|                               (Supabase Client) |
|                                     v           |
|                              [Supabase DB /     |
|                               Authentication]   |
+-------------------------------------------------+

스택을 똑같이 유지한 덕분에 모델의 컨텍스트가 모든 프로젝트에서 어긋나지 않았다. 데이터베이스 스키마, 클라이언트 래퍼, 인증 가드를 저장소에서 저장소로 재사용할 수 있었다. 새 프로젝트의 터미널을 열고 "Supabase 인증 클라이언트 래퍼를 설정해 줘"라고 말하면, AI는 이전 코드베이스의 컨벤션과 정확히 맞는 래퍼를 생성했다.


1단계: 스키마 초안 작성과 데이터베이스 설정

앱을 출시할 때 처음 부딪히는 병목은 데이터베이스 설계다. UI를 작성하기 전에 테이블, 키, 외래 관계를 정의해야 한다.

나는 SQL을 직접 작성하는 대신 간단한 마크다운 표로 데이터베이스 스키마를 설계했다. 예를 들어 SentryPost의 경우 다음과 같은 설명을 초안으로 작성했다.

테이블:
- users: id (uuid), email (text), tier (text)
- schedules: id (uuid), user_id (ref users), title (text), content (text), send_at (timestamp), status (enum)
- metrics: id (uuid), schedule_id (ref schedules), impressions (int), clicks (int)

이 표를 터미널 에이전트에 넘기고 다음 명령을 실행했다. claude -p "이 스키마 정의에 맞는 Supabase용 PostgreSQL 마이그레이션 스크립트를 생성해 줘. 사용자가 자기 데이터만 읽고 쓸 수 있도록 하는 행 수준 보안(RLS) 정책도 포함해 줘."

몇 초 만에 에이전트가 마이그레이션 SQL을 생성했다.

-- schedules 테이블 생성
CREATE TYPE schedule_status AS ENUM ('draft', 'scheduled', 'sent', 'failed');

CREATE TABLE public.schedules (
    id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
    user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE NOT NULL,
    title TEXT NOT NULL,
    content TEXT NOT NULL,
    send_at TIMESTAMP WITH TIME ZONE NOT NULL,
    status schedule_status DEFAULT 'draft'::schedule_status NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT timezone('utc'::text, now()) NOT NULL
);

-- 행 수준 보안 활성화
ALTER TABLE public.schedules ENABLE ROW LEVEL SECURITY;

-- SELECT 정책 생성
CREATE POLICY "Users can view their own schedules" 
    ON public.schedules FOR SELECT 
    USING (auth.uid() = user_id);

-- INSERT 정책 생성
CREATE POLICY "Users can insert their own schedules" 
    ON public.schedules FOR INSERT 
    WITH CHECK (auth.uid() = user_id);

마이그레이션 파일과 RLS 정책을 프롬프트 하나로 생성하면서 SQL을 손으로 작성하는 데 들었을 몇 시간을 줄였다. RLS는 문법 오류 없이 직접 작성하기 까다롭기로 악명이 높지만, 수천 개의 Supabase 설정으로 학습한 AI는 정책을 정확하게 처리했다.


2단계: Tailwind와 Flexbox로 빠르게 UI 디자인하기

데이터베이스가 준비되자 사용자 인터페이스로 넘어갔다. 레이아웃을 처음부터 디자인하는 것은 느린 작업이 될 수 있다. flex wrap, 패딩 비율, 다크 모드 클래스를 조정할 때는 더욱 그렇다.

나는 '레이아웃 초안' 방식을 사용했다. 인터페이스 레이아웃을 의미 중심으로 서술한 것이다.

SentryPost의 대시보드 셸 레이아웃을 만들어 줘.
- 사이드바: 내비게이션 항목(Dashboard, Schedules, Analytics, Settings). 하단에 프로필 카드.
- 메인 영역: 브레드크럼과 'Create New' 버튼이 있는 헤더.
- 그리드: 지표 카드 3개(Scheduled Posts, Sent Posts, Success Rate %).
- 목록: 예약된 게시물을 상태 배지와 함께 보여주는 깔끔한 데이터 목록.

이 레이아웃 요청을 AI에 넘기자 Tailwind 레이아웃 구조가 담긴, 잘 최적화된 React 컴포넌트가 돌아왔다. CSS 클래스를 어떻게 작성할지가 아니라 화면에 무엇이 나타나야 하는지를 설명함으로써 레이아웃 조정은 AI에게 맡길 수 있었다.

버튼 정렬이 어색해 보여도 CSS flexbox 규칙을 찾아보지 않았다. 에디터에서 해당 블록을 선택하고 "이 버튼을 카드의 맨 오른쪽, 세로 가운데에 정렬하고 옆 입력 필드와 높이를 맞춰 줘"라고 요청했을 뿐이다. AI는 Tailwind 유틸리티 클래스를 즉시 수정했다.


빠르게 만들기 위한 실전 전략

이 속도로 제품을 만들고 출시하고 싶다면 개발 습관을 바꿔야 한다.

  • 보일러플레이트 저장소를 사용한다: 프로젝트마다 create-next-app을 처음부터 실행하지 않는다. Supabase 인증 클라이언트 설정, 표준 내비게이션 컴포넌트, 결제 훅, 메타데이터 레이아웃이 이미 초기화된 비공개 템플릿 저장소를 유지한다.
  • 데이터베이스 작업을 일찍 테스트한다: UI를 작성하기 전에 더미 레코드를 넣고 읽는 로컬 스크립트를 작성한다. 화면의 폼을 만들기 전에 데이터베이스 제약 조건, 스키마, API 라우트가 제대로 동작하는지 확인한다.
  • 과도한 설계를 피한다: MVP에 복잡한 캐싱, 큐 시스템, 확장 가능한 클러스터를 구현하지 않는다. 고객 수요가 검증될 때까지는 기본적인 SQL 트리거, 간단한 크론 잡, 큐 저장용 기본 데이터베이스 행을 사용한다.
  • 기능 플래그로 반복한다: 마무리하기 어려운 기능은 기능 플래그로 감싸거나 UI 링크를 비활성화한다. 핵심 루프를 먼저 출시하는 데 집중한다.

앞으로의 전망: 1인 창업가의 스타트업

앞으로 소프트웨어 개발 비용은 계속해서 0에 가까워질 것이다.

시스템 아키텍처와 고객의 니즈를 이해하는 개발자 한 명이, 예전이라면 벤처 투자를 받은 스타트업이 필요했던 웹 애플리케이션 포트폴리오를 직접 만들고 운영할 수 있게 된다. 테크 업계의 경쟁 우위는 코딩 역량에서 시장 인사이트, 고객 검증, 유통 채널로 옮겨 갈 것이다.

미래에 성공하는 개발자는 손으로 가장 깔끔한 코드 루프를 작성하는 사람이 아니다. 문제를 찾아내고, 시스템을 설계하고, AI 에이전트를 지휘해 안정적인 솔루션을 기록적인 시간 안에 만들어 내는 사람이다.


함께 읽으면 좋은 글

외부 참고 자료

  • 데이터베이스 설정과 RLS 가이드라인은 Supabase Documentation Blog에서 확인할 수 있다.
  • 페이지 레이아웃과 배포 최적화는 Vercel Blog에서 살펴볼 수 있다.
  • 래피드 프로토타이핑과 소프트웨어 개발 속도에 관해서는 GitHub Blog에서 읽을 수 있다.

내 관점을 바꾼 것

예전의 나는 소프트웨어 회사를 시작하려면 공동 창업자와 시드 투자 라운드, 그리고 몇 달에 걸친 개발 반복이 필요하다고 믿었다. 2023년 한 해를 통째로 한 SaaS 아이디어의 설계 문서를 쓰고, 프레임워크를 두고 고민하고, 실제 사용자가 단 한 명도 써 보지 않은 로컬 데이터베이스 모델을 최적화하는 데 보냈다. 실행의 복잡함에 짓눌려 꼼짝도 못 하고 있었다.

4주간의 실험을 시작하면서 나는 미리 구성해 둔 스택으로만 만들고 코드는 코딩 에이전트가 작성하게 하기로 했다. 설정 페이지가 비어 있더라도 핵심 사용자 경로가 동작하는 즉시 각 앱을 출시하도록 스스로를 몰아붙였다.

개발을 시작한 지 겨우 6일 만에 첫 제품이 Vercel에 공개되는 것을 보고 내 세계관 전체가 바뀌었다. 실제 사용자가 가입하고, 피드백을 보내고, 기능을 요청하기 시작했다.

나는 에디터에서 작성하는 코드는 구현 세부 사항일 뿐이고, 가치는 사용자 피드백과 제품 업데이트 사이를 오가는 루프에 있다는 것을 깨달았다. 실행의 세부 사항을 AI에게 맡기자, 코드 줄을 다듬던 내가 프로덕트 오너처럼 일하기 시작했다. 한 달 동안 지난 2년보다 더 많은 코드를 출시했다. 만드는 대로 바로 사용자에게 내보낸 건 그때가 처음이었다.

연결된 글

같은 시리즈, 직접 링크, 주제 모음, 태그로 이 글과 이어진 글입니다.

수정 이력

v1.0

AI로 몇 주 만에 제품 세 개를 출시한 사례.

  • •여러 제품 출시 경험담 공개

DailySay에 묻기

이어서 읽기

업무 속 게이미피케이션의 중요성: 《호모 루덴스》로 다시 읽는 놀이와 일
일과 기술17 min

업무 속 게이미피케이션의 중요성: 《호모 루덴스》로 다시 읽는 놀이와 일

하위징아는 《호모 루덴스》에서 문화가 놀이 속에서, 놀이로서 생겨났다고 봤습니다. 놀이의 특징을 일과 온보딩에 겹쳐 보고, 포인트와 배지에 그치지 않는 게이미피케이션을 정리했습니다.

글 읽기

Jayden의 발자취가 궁금하신가요?

일과 제품, 여행, 그리고 지금 만들고 있는 이야기들을 가끔 보내드릴게요.

스팸 없이, 가끔만요. 개인정보 처리방침.