Naholosoft · 포트폴리오

만든 것이
곧 이력서입니다.

나홀로소프트. 실제 사업이 매일 돌아가는 B2B 백오피스를 기획부터 운영까지 혼자서 끝까지 만들었습니다.

그런데 코드는 한 줄도 직접 쓰지 않았습니다.

기획·설계·구현·배포·운영의 모든 단계를 AI 코딩 에이전트에게 자연어로 지시하는 ‘바이브 코딩’으로 끌고 갔습니다. 코드는 AI가 쓰고, 무엇을 어떻게 만들지에 대한 모든 결정과 검증은 제가 했습니다.

01 대표 작업 · FabricDesk

수입 원단 유통사를 위한 B2B 백오피스입니다. 주문 접수부터 재고와 가격, 거래명세서 발행, 은행 입금 대사, 매출 분석까지 원단 거래의 전 과정을 하나의 시스템으로 묶어, 실제 사업이 매일 굴러가는 살아 있는 시스템으로 운영하고 있습니다.

실제 FabricDesk 주문 화면을 가상 데이터로 재구성한 미리보기입니다. 아래 ‘라이브 데모 체험하기’에서 직접 클릭하며 둘러보실 수 있습니다.
0직접 작성한 코드 줄 657커밋 ~2개월개발 기간 70페이지 라우트 34데이터 모델 43DB 마이그레이션 53테스트 파일 200+운영·정합성 스크립트

내가 한 일

한 줄도 직접 코딩하지 않았습니다. 대신 요구사항과 데이터 모델, 화면과 가격 정책, 예외 상황까지 자연어로 정의하고 단계마다 AI에게 지시했습니다. 생성된 코드를 읽고 검증하고, 틀리면 다시 방향을 잡는 일을 수백 번 반복했습니다. 무엇을 만들지, 어떻게 동작해야 하는지, 데이터가 어긋나지 않는지 — 모든 결정과 책임은 제게 있었습니다. 기술 스택(Next.js 16, React 19, TypeScript, Prisma 7, PostgreSQL(Neon), NextAuth v5, Vercel)도 직접 고르고 방향을 정했습니다.

라이브 데모 체험하기 FabricDesk 제품 페이지

라이브 데모는 가상 데이터로 채워진 읽기 전용 환경입니다 — 계정 demo / demo2026 으로 마음껏 둘러보셔도 됩니다. 실제 고객 인스턴스는 매출과 재고 데이터가 들어 있어 비공개로 운영합니다.

02 어떻게 만들었나 · 바이브 코딩

‘AI가 다 만들어 줬다’가 아닙니다. 코드를 손으로 치는 대신, 시스템을 끝까지 운전하는 방식으로 일했습니다.

  1. 코드 대신 의도를 적습니다

    화면과 규칙, 데이터 모델, 예외 상황을 자연어로 정확히 기술해 AI에게 전달합니다. 좋은 결과물은 결국 명확한 정의에서 나옵니다 — 그 정의가 제 일이었습니다.

  2. 사람이 끝까지 운전합니다

    AI가 쓴 코드를 매번 읽고 검증한 뒤, 틀리면 다시 방향을 잡습니다. 아키텍처와 도메인 판단, 무엇을 받아들이고 무엇을 버릴지는 사람의 몫입니다. 마지막 책임도 사람에게 있습니다.

  3. 도메인이 곧 실력입니다

    원단 유통처럼 복잡한 업무를 직접 이해했기에 AI를 정확히 지시하고, 그 결과가 맞는지 가려낼 수 있었습니다. 모르는 업무는 지시할 수도, 검증할 수도 없습니다.

  4. 정합성으로 검증합니다

    AI가 쓴 코드일수록 더 엄격하게 확인합니다. 단위 테스트와 감사 로그, 200개가 넘는 정합성 점검 스크립트로 돈과 재고 데이터가 어긋나지 않는지 끊임없이 검증합니다.

  5. 그래서 빠릅니다

    약 두 달 만에 657개의 커밋과 70개의 화면을 운영 단계까지 끌어올렸습니다. 사람과 AI가 함께 달리면 결정과 구현 사이의 거리가 거의 사라집니다.

AI는 빠르고 지치지 않는 손이었고, 방향과 판단·책임은 사람의 몫이었습니다. 이 포트폴리오 사이트와 라이브 데모 역시 같은 방식으로 만들었습니다.

03 해결한 난제

제가 정의하고, AI를 운전해 끝까지 풀어낸 가장 어려운 부분들입니다.

  1. 3단계 프로모션 가격 해석 엔진

    고객별 프로모션가에서 원단 기본 프로모션가, 정상가 순으로 가격을 해석합니다. 브랜드별 적용 여부와 만료일, 시즌 고정, 지점의 본점 정책 상속, 웹 전환일 이전 주문 제외까지 하나의 규칙 안에서 일관되게 계산합니다.

  2. 은행 입금 자동 대사 엔진

    은행 입금 내역과 주문 결제를 상태 기계로 연결합니다. 입금자명을 고객에 자동으로 연결하는 학습형 별칭, 입금 내용(날짜와 금액, 입금자)을 기준으로 한 멱등 재가져오기, 이름 없는 분할 입금의 날짜별 묶음 처리까지 다룹니다.

  3. 감사 가능한 회계

    주문 시점의 원가와 환율을 동결해 본사 단가가 바뀌어도 과거 손익이 흔들리지 않게 했습니다. 미수금은 항상 파생 합계로 계산하고, 신뢰할 수 없는 과거 데이터는 손익에서 제외합니다.

  4. 거래명세서 생성

    Chromium 기반 PDF와 ExcelJS 양식 출력을 함께 제공합니다. 한국어와 영어 인쇄 화면을 제공하고, 월합과 이월, 통합 발행을 지원하며, 정정과 취소를 잇는 이력 체인까지 구현했습니다.

  5. 배송 동선 최적화

    카카오 지오코딩으로 배송지를 좌표로 바꾸고 중복을 정리한 뒤, 모바일 배송 화면에서 TSP 기반으로 방문 동선을 최적화합니다.

  6. 운영 환경 한계 대응

    Neon 서버리스의 짧은 트랜잭션 한계는 작업을 잘게 나눠 우회하고, Vercel 함수 용량 한계 안에서 Chromium을 런타임에 분리해 안정적으로 PDF를 렌더링합니다.

재무와 재고가 직접 걸린 시스템이라, 53개의 테스트와 감사 로그, 소프트 보이드(논리 삭제), 200개가 넘는 정합성 점검 스크립트로 데이터의 정확성을 꾸준히 검증합니다.

04 기술

제품 하나를 끝까지 만드는 데 필요한 전 영역을, AI를 지시해 다룹니다.

프론트엔드 Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS v4, shadcn/ui · Radix · Base UI, TanStack Table, 직접 설계한 차트
백엔드 · 데이터 Server Actions, Prisma 7, PostgreSQL (Neon serverless), NextAuth v5(역할 기반 권한), zod 검증, raw SQL 집계
인프라 · 출력 Vercel(serverless · cron), Vercel Blob, Puppeteer · Chromium PDF 렌더링, basePath 운영
연동 · 모바일 17Track 배송 추적, Kakao Local 지오코딩, Excel(ExcelJS · SheetJS) 입출력, Android, 온디바이스 OCR
품질 · 운영 Vitest 단위 테스트, 감사 로그, 한국어·영어 i18n, 데이터 정합성 스크립트
05 또 다른 제품 · BizCard

기기 안에서 모든 처리가 끝나는 Android 명함 스캐너입니다. 명함 데이터가 기기 밖으로 나가지 않도록 설계했고, 다국어 OCR과 선택적 Google 주소록 동기화를 제공합니다. 프라이버시를 우선한 설계가 핵심이며, 이 앱 역시 같은 바이브 코딩 방식으로 만들어 구글 플레이에 출시했습니다.

BizCard 제품 페이지 보기 →
06 문의

채용과 프리랜스 협업, 맞춤형 비즈니스 소프트웨어 문의를 환영합니다. 라이브 데모는 위에서 바로 둘러보실 수 있고, 전체 커밋 히스토리와 코드, 그리고 AI를 어떻게 지시했는지(작업 방식)도 요청하시면 보여드립니다. 만든 사람이 직접 읽고 답합니다.

support@naholosoft.com