
프리랜서 업무 시스템
자체 개발 업무 도구
- 기간
- 2026.02 – 현재
- 상태
- 실사용 중
- 형태
- 로컬 업무 관리 시스템
- 기여도
- 요구사항 정의 · 구조 설계 · 도메인/데이터 모델링 · 로컬 운영환경 구성
- SKILLS
- React
- TypeScript
- Tailwind CSS
- shadcn/ui
- TanStack Query
- React Hook Form
- @react-pdf/renderer
- Hono
- Drizzle ORM
- PostgreSQL
- Better Auth
- Claude Code
개요
Work Manager는 제 프리랜서 업무의 고객, 견적, 프로젝트, 일정, 수금, 파트너 정산을 정규화해 관리하기 위해 제작한 개인용 업무 시스템입니다. 1인 외주 업무에서 고객·견적·정산 데이터가 흩어지며 생기는 관리 비용을 줄이는 것이 목표였습니다.
직접 개발해둔 어드민 프레임워크를 기반으로 AI 에이전트를 활용해 구현했고, 현재 실제 업무에 사용하며 기능을 확장하고 있습니다.
작업범위
- 고객, 견적, 프로젝트, 일정, 정산 업무 흐름 정의
- 어드민 프레임워크 기반 관리 UI 구조 확장
- 워크플로 기반 데이터 모델 설계
- Docker PostgreSQL, LaunchAgent, 백업, 리빌드 스크립트 기반 로컬 운영환경 구성
주요기능
- 고객 정보 관리
- 버전 기반 견적서 관리, PDF 견적서 출력
- 프로젝트별 청구, 수금, 지출, 외주지급 장부
- 프로젝트 일정, 간트, 투두, 메모 위젯
- 프로젝트·고객별 파일 관리 드라이브
설계 포인트
로컬 상시 구동에 맞춘 스택 재구성
어드민 프레임워크를 활용해 Supabase와 Next.js 기반 프로토타입을 빠르게 제작했습니다. 실사용 과정에서 개인 PC에 상시 구동하는 업무 도구에 Supabase 풀패키지까지 계속 실행하는 것은 과하다고 판단했고, 필요한 만큼만 남겨 React 클라이언트, Hono API 서버, Drizzle ORM, PostgreSQL 구조로 재구성했습니다.
견적·프로젝트 중심 데이터 모델 설계
견적서는 고객 피드백에 따라 금액과 범위가 여러 번 바뀌기 때문에, 하나의 견적 번호 아래 여러 버전을 보존하고 계약 시점에 최종 버전을 지정하는 구조로 설계했습니다. 프로젝트로 전환한 뒤에는 청구, 수금, 지출, 외주지급을 분리해 정산 흐름을 추적하도록 했습니다.
실제 업무에서는 견적 없이 시작되는 프로젝트나 계약 후 범위 변경, 또는 한 건에 대해 여러 버전의 견적서를 보내고 그 중 하나가 채택되는 등 다양한 비즈니스 요구사항이 발생할 수 있었습니다. 서비스가 이러한 케이스들에 대응할 수 있도록 데이터 구조와 UI 및 워크플로우를 설계했습니다.
개인 PC 대상 로컬 운영환경 구성
외부 사용자가 없는 개인 업무 도구라 클라우드 배포 대신, 개인 PC에서 안정적으로 상시 실행되고 데이터와 파일이 로컬에 남는 구성을 택했습니다. Docker PostgreSQL로 데이터 저장소를 고정하고, Hono 서버가 API와 빌드된 React 정적 파일을 함께 서빙합니다. macOS LaunchAgent로 부팅 시 자동 실행되게 하고, 종료·재빌드·백업 스크립트로 운영 작업을 자동화하였습니다.