Skip to content

ramido99/agentic-company

Repository files navigation

πŸ€– Agentic Company

AI μ—μ΄μ „νŠΈκ°€ λ‹Ήμ‹ μ˜ νšŒμ‚¬λ₯Ό λŒ€μ‹  μΌν•©λ‹ˆλ‹€

λΉ„μ¦ˆλ‹ˆμŠ€ λͺ©ν‘œλ₯Ό μž…λ ₯ν•˜λ©΄, AI μ—μ΄μ „νŠΈ νŒ€μ΄ μ „λž΅ μˆ˜λ¦½λΆ€ν„° μ‹€ν–‰Β·κ²€ν† κΉŒμ§€ μžλ™μœΌλ‘œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.


Next.js TypeScript Prisma Supabase Vercel


πŸ“Œ μ„œλΉ„μŠ€ μ†Œκ°œ

Agentic CompanyλŠ” AI μ—μ΄μ „νŠΈλ₯Ό μ§μ›μ²˜λŸΌ μ±„μš©ν•˜κ³ , λΉ„μ¦ˆλ‹ˆμŠ€ λͺ©ν‘œλ₯Ό μžλ™μœΌλ‘œ μ‹€ν–‰ν•˜λŠ” ν”Œλž«νΌμž…λ‹ˆλ‹€.

κΈ°μ‘΄ AI 도ꡬ듀이 λ‹¨μˆœ μ§ˆμ˜μ‘λ‹΅μ— λ¨Έλ¬΄λŠ” 것과 달리, Agentic CompanyλŠ” μ „λž΅ β†’ μ‹€ν–‰ β†’ κ²€ν†  3단계 μ—­ν•  뢄리 ꡬ쑰둜 μ‹€μ œ 업무 μ›Œν¬ν”Œλ‘œμš°λ₯Ό μžλ™ν™”ν•©λ‹ˆλ‹€.

νšŒμ‚¬ 등둝 β†’ μ—μ΄μ „νŠΈ μ±„μš© β†’ λͺ©ν‘œ μž…λ ₯ β†’ AI μžλ™ μ‹€ν–‰ β†’ μ‚°μΆœλ¬Ό 생성

✨ μ£Όμš” κΈ°λŠ₯

κΈ°λŠ₯ μ„€λͺ…
🏒 νšŒμ‚¬ 관리 νšŒμ‚¬λ₯Ό λ“±λ‘ν•˜κ³  AI μ—μ΄μ „νŠΈ νŒ€μ„ ꡬ성
πŸ€– μ—μ΄μ „νŠΈ μ±„μš© 24μ’… μ „λ¬Έ μ—μ΄μ „νŠΈλ₯Ό μ—­ν• λ³„λ‘œ μ±„μš© (μ „λž΅Β·μ‹€ν–‰Β·κ²€ν† )
🎯 λͺ©ν‘œ μ„€μ • λΉ„μ¦ˆλ‹ˆμŠ€ λͺ©ν‘œλ₯Ό λ“±λ‘ν•˜λ©΄ AIκ°€ μ‹€ν–‰ κ³„νš 수립
⚑ μ›Œν¬ν”Œλ‘œμš° μžλ™ μ‹€ν–‰ μ—μ΄μ „νŠΈκ°€ 31개 μŠ€ν‚¬λ‘œ 업무λ₯Ό μžλ™ 처리
πŸ“„ μ‚°μΆœλ¬Ό μžλ™ 생성 PPTXΒ·MarkdownΒ·XLSXΒ·PDF ν˜•μ‹μœΌλ‘œ κ²°κ³Όλ¬Ό μ €μž₯
πŸ“Š λŒ€μ‹œλ³΄λ“œ KPI λ©”νŠΈλ¦­, μ‹€ν–‰ 이λ ₯, μ—μ΄μ „νŠΈ μ„±κ³Ό ν•œλˆˆμ— 확인
πŸ’³ ꡬ독 과금 Starter Β· Growth Β· Enterprise ν”Œλžœ (TossPayments 연동)

πŸ€– μ—μ΄μ „νŠΈ ꡬ쑰

3κ°€μ§€ μ—­ν• μ˜ 24μ’… AI μ—μ΄μ „νŠΈμ™€ 31개 μ „λ¬Έ μŠ€ν‚¬λ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   AI μ—μ΄μ „νŠΈ νŒ€                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  🧠 μ „λž΅κ°€   β”‚    ⚑ μ‹€ν–‰κ°€       β”‚    πŸ” κ²€ν† μž        β”‚
β”‚  STRATEGIST β”‚    OPERATOR       β”‚    REVIEWER        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ μ‹œμž₯ 뢄석    β”‚ 캠페인 λΈŒλ¦¬ν”„ μž‘μ„±  β”‚ 법무 리슀크 체크     β”‚
β”‚ λΈŒλžœλ“œ μ „λž΅  β”‚ μ½˜ν…μΈ  μΊ˜λ¦°λ” 관리  β”‚ μ»΄ν”ŒλΌμ΄μ–ΈμŠ€ 감사    β”‚
β”‚ 고객 λ¦¬μ„œμΉ˜  β”‚ μ„±μž₯ μ‹€ν—˜ 섀계     β”‚ 재무 타당성 κ²€ν†      β”‚
β”‚ IR ν”ΌμΉ˜ 섀계 β”‚ μ˜μ—… μ‹œν€€μŠ€ μžλ™ν™”  β”‚ KPI λŒ€μ‹œλ³΄λ“œ 뢄석   β”‚
β”‚ ...8μ’…       β”‚ ...8μ’…             β”‚ ...8μ’…             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ›  기술 μŠ€νƒ

λ ˆμ΄μ–΄ 기술
Framework Next.js 15 (App Router, Server Components)
Language TypeScript 5 (strict mode)
Styling Tailwind CSS v4 + shadcn/ui
Database PostgreSQL (Supabase ν˜ΈμŠ€νŒ…)
ORM Prisma 6
Auth NextAuth.js v4 (Google OAuth)
Storage Supabase Storage (μ‚°μΆœλ¬Ό 파일 μ €μž₯)
AI Azure OpenAI GPT-4o / Claude API
Search Tavily API / Serper.dev
Payment TossPayments
Deploy Vercel

πŸ“‚ ν”„λ‘œμ νŠΈ ꡬ쑰

agentic-company/
β”œβ”€β”€ app/                        # Next.js App Router νŽ˜μ΄μ§€
β”‚   β”œβ”€β”€ api/                    # API Routes (λ°±μ—”λ“œ μ—”λ“œν¬μΈνŠΈ)
β”‚   β”‚   β”œβ”€β”€ companies/          # νšŒμ‚¬ CRUD
β”‚   β”‚   β”œβ”€β”€ agents/             # μ—μ΄μ „νŠΈ μ±„μš©/ν•΄κ³ 
β”‚   β”‚   β”œβ”€β”€ goals/              # λͺ©ν‘œ 관리
β”‚   β”‚   β”œβ”€β”€ workflows/          # μ›Œν¬ν”Œλ‘œμš° μ‹€ν–‰
β”‚   β”‚   └── payments/           # 결제 처리
β”‚   β”œβ”€β”€ companies/              # νšŒμ‚¬ λͺ©λ‘Β·μƒμ„Έ νŽ˜μ΄μ§€
β”‚   β”œβ”€β”€ agents/                 # μ—μ΄μ „νŠΈ μΉ΄νƒˆλ‘œκ·Έ
β”‚   β”œβ”€β”€ goals/                  # λͺ©ν‘œ 관리 νŽ˜μ΄μ§€
β”‚   β”œβ”€β”€ workflows/              # μ›Œν¬ν”Œλ‘œμš° μ‹€ν–‰ 이λ ₯
β”‚   └── dashboard/              # 메인 λŒ€μ‹œλ³΄λ“œ
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/             # μž¬μ‚¬μš© UI μ»΄ν¬λ„ŒνŠΈ
β”‚   β”‚   └── ui/                 # shadcn/ui 기반 κΈ°λ³Έ μ»΄ν¬λ„ŒνŠΈ
β”‚   └── lib/
β”‚       β”œβ”€β”€ agents/             # μ—μ΄μ „νŠΈ 둜직 (μ „λž΅/μ‹€ν–‰/κ²€ν† )
β”‚       β”œβ”€β”€ mock/               # μ—μ΄μ „νŠΈΒ·μŠ€ν‚¬ μΉ΄νƒˆλ‘œκ·Έ (24μ’… / 31개)
β”‚       β”œβ”€β”€ repositories/       # DB μ ‘κ·Ό λ ˆμ΄μ–΄ (Prisma)
β”‚       β”œβ”€β”€ workflows/          # μ›Œν¬ν”Œλ‘œμš° μ‹€ν–‰ μ—”μ§„
β”‚       β”œβ”€β”€ storage/            # Supabase Storage 연동
β”‚       └── auth/               # NextAuth μ„€μ •
β”‚
β”œβ”€β”€ prisma/
β”‚   └── schema.prisma           # DB μŠ€ν‚€λ§ˆ (11개 λͺ¨λΈ)
β”‚
└── CONTRIBUTING.md             # 개발 μž‘μ—… μ§€μΉ¨ (필독)

πŸš€ 둜컬 μ‹€ν–‰ κ°€μ΄λ“œ

사전 μ€€λΉ„

  • Node.js 18.17 이상
  • PostgreSQL DB (Supabase ν”„λ‘œμ νŠΈ ꢌμž₯)
  • Google OAuth μ•± (Google Cloud Console)

1. λ ˆν¬μ§€ν† λ¦¬ 클둠

git clone https://github.com/ramido99/agentic-company.git
cd agentic-company

2. μ˜μ‘΄μ„± μ„€μΉ˜

npm install

3. ν™˜κ²½λ³€μˆ˜ μ„€μ •

cp .env.example .env

.env νŒŒμΌμ„ μ—΄κ³  μ•„λž˜ ν•­λͺ©μ„ μ±„μ›Œμ£Όμ„Έμš”:

# ν•„μˆ˜
DATABASE_URL="postgresql://..."        # Supabase DB μ—°κ²° λ¬Έμžμ—΄
NEXTAUTH_SECRET="..."                  # openssl rand -base64 32 으둜 생성
AUTH_GOOGLE_ID="..."                   # Google OAuth ν΄λΌμ΄μ–ΈνŠΈ ID
AUTH_GOOGLE_SECRET="..."               # Google OAuth ν΄λΌμ΄μ–ΈνŠΈ μ‹œν¬λ¦Ώ
SUPABASE_URL="https://..."            # Supabase ν”„λ‘œμ νŠΈ URL
SUPABASE_SERVICE_ROLE_KEY="..."       # Supabase Service Role ν‚€

# AI (ν•˜λ‚˜ 이상 ν•„μš”)
AZURE_OPENAI_API_KEY="..."
AZURE_OPENAI_ENDPOINT="..."
AZURE_OPENAI_DEPLOYMENT="..."

각 ν•­λͺ© λ°œκΈ‰ 방법은 .env.example 주석을 μ°Έκ³ ν•˜μ„Έμš”.

4. λ°μ΄ν„°λ² μ΄μŠ€ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜

# Prisma ν΄λΌμ΄μ–ΈνŠΈ 생성
npx prisma generate

# DB μŠ€ν‚€λ§ˆ 적용
npx prisma db push

5. 개발 μ„œλ²„ μ‹€ν–‰

npm run dev

λΈŒλΌμš°μ €μ—μ„œ http://localhost:3000 접속


Supabase Storage 버킷 μ„€μ • (μ‚°μΆœλ¬Ό 파일 μ €μž₯용)

Supabase λŒ€μ‹œλ³΄λ“œ β†’ Storage β†’ New Bucket 생성:

ν•­λͺ© κ°’
Bucket name workflow-artifacts
Public bucket OFF (λΉ„κ³΅κ°œ)

Supabase DB μˆ˜λ™ μ΄ˆκΈ°ν™” (Prisma 없이 μ„€μ •ν•  경우)

sqlinit/ ν΄λ”μ˜ SQL νŒŒμΌμ„ Supabase SQL Editorμ—μ„œ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰ν•˜μ„Έμš”.

sqlinit/
β”œβ”€β”€ 01_schema.sql               # 전체 ν…Œμ΄λΈ” 생성
β”œβ”€β”€ 02_indexes.sql              # μ„±λŠ₯ 인덱슀
β”œβ”€β”€ 03_storage.sql              # Storage 버킷 + μ •μ±…
β”œβ”€β”€ 04_agent_skill_assignment.sql  # μ—μ΄μ „νŠΈ μŠ€ν‚¬ λ°°μ • ν…Œμ΄λΈ”
└── 05_rls_policies.sql         # Row Level Security μ„€μ •

μΌλ°˜μ μœΌλ‘œλŠ” npx prisma db push 둜 μŠ€ν‚€λ§ˆ 적용이 더 κ°„νŽΈν•©λ‹ˆλ‹€. SQL νŒŒμΌμ€ Prisma 없이 직접 DBλ₯Ό μ΄ˆκΈ°ν™”ν•˜κ±°λ‚˜ λ°±μ—… 볡원 μ‹œ μ‚¬μš©ν•©λ‹ˆλ‹€.


πŸ“‹ μ£Όμš” λͺ…λ Ήμ–΄

npm run dev              # 개발 μ„œλ²„ μ‹€ν–‰ (Turbopack)
npm run build            # ν”„λ‘œλ•μ…˜ λΉŒλ“œ
npm run lint             # ESLint 검사
npx tsc --noEmit         # TypeScript νƒ€μž… 체크
npx prisma studio        # DB GUI λΈŒλΌμš°μ € μ—΄κΈ°
npx prisma db push       # μŠ€ν‚€λ§ˆ 변경사항 DB 반영

πŸ—„ λ°μ΄ν„°λ² μ΄μŠ€ ꡬ쑰

User ──── Membership ──── Workspace
                              β”‚
                         β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                         β”‚               β”‚
                      Company          Goal
                         β”‚               β”‚
                         └──── WorkflowRun ────── Artifact
                                    β”‚
                               UsageRecord

μ£Όμš” λͺ¨λΈ: User Β· Workspace Β· Company Β· Goal Β· WorkflowRun Β· Artifact


🌐 배포 (Vercel)

  1. Vercel β†’ Add New Project β†’ GitHub agentic-company import
  2. Environment Variables νƒ­μ—μ„œ .env κ°’ 전체 등둝
  3. Deploy 클릭 β†’ main 브랜치 push μ‹œ μžλ™ 배포

Google OAuth μ½˜μ†”μ—μ„œ 승인된 λ¦¬λ””λ ‰μ…˜ URI에 배포 URL μΆ”κ°€ ν•„μš”: https://your-domain.vercel.app/api/auth/callback/google


πŸ“– 개발 μ°Έμ—¬

μ½”λ“œ κΈ°μ—¬ μ „ CONTRIBUTING.md λ₯Ό λ¨Όμ € μ½μ–΄μ£Όμ„Έμš”.

λͺ¨λ“  μž‘μ—…μ€ GitHub Issue β†’ Branch β†’ Commit β†’ PR μˆœμ„œλ‘œ μ§„ν–‰ν•©λ‹ˆλ‹€.


2026λ…„ 6μ›” 10일 κΈ°μ€€ 아직 μ—…λ°μ΄νŠΈ 된 것이 μ—†μŠ΅λ‹ˆλ‹€.

Built with ❀️ using Next.js 15 + AI

About

AI Agent SaaS Service

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors