AI 에이전트 기반으로 설계, 구현, 검증, 운영까지 밀어붙인 반려동물 커뮤니티 프로젝트
- 실행 코드와 명령의 소스 오브 트루스는
app/입니다. - 저장소 진입점은
AGENTS.md입니다. - 제품/정책 기준은
docs/제품_기술_개요.md,docs/policies/*,docs/security/*를 우선합니다. PLAN.md,PROGRESS.md는 저장소 구조 설명 문서가 아니라 현재 맡은 작업의 상태 문서입니다.
- 먼저
AGENTS.md,docs/제품_기술_개요.md,app/package.json을 읽습니다. - 그다음 코드는
app/prisma -> app/src/lib/validations -> app/src/server -> app/src/app -> app/src/components순서로 보는 편이 빠릅니다. - 특정 기능을 볼 때는 route/page보다 service/query와 validation을 먼저 읽는 편이 구조를 더 빨리 이해하게 해줍니다.
app/src/app- App Router 페이지와 API route
app/src/components- 화면 컴포넌트
app/src/lib- validation, presenter, policy, helper
app/src/server- service, query, auth, rate-limit, ops
app/prisma- schema와 migrations
docs- 제품/운영/보안 기준 문서
posts/feedapp/src/lib/validations/posts/post.tsapp/src/server/services/posts/post.service.tsapp/src/server/queries/posts/post.queries.tsapp/src/app/feedapp/src/components/posts
auth/sessionapp/src/lib/validations/auth/index.tsapp/src/server/services/auth/auth.service.tsapp/src/server/auth.tsapp/src/server/admin-page-access.tsapp/src/lib/auth.tsapp/src/lib/social-auth.tsapp/src/app/login,app/src/app/register,app/src/app/onboarding
notificationsapp/src/lib/notifications/notification-unread-sync.tsapp/src/server/services/notifications/notification.service.tsapp/src/server/queries/notifications/notification.queries.tsapp/src/server/actions/notifications/notification.tsapp/src/components/notificationsapp/src/app/notifications
moderation/opsapp/src/server/services/moderation/report.service.tsapp/src/server/services/moderation/sanction.service.tsapp/src/server/services/moderation/policy.service.tsapp/src/server/queries/moderation/report.queries.tsapp/src/server/queries/ops-overview.queries.tsapp/src/app/admin
- 기본 루틴은
corepack pnpm -C app dev,lint,typecheck,test,test:e2e,quality:check만 공용으로 봅니다. - 시드, 복구, 백필, 운영 점검 명령은 필요할 때만 쓰는 유지보수 루틴입니다.
- 세부 작업 규칙과 계층 경계는
AGENTS.md를 기준으로 봅니다.
- solo 운영에서 매일 기억할 명령은
corepack pnpm -C app quality:check,corepack pnpm -C app ops:check:health,corepack pnpm -C app db:restore:local세 개면 충분합니다. - CI/배포 mental model도
quality-gate.yml과ops-smoke-checks.yml두 개만 먼저 보면 됩니다. - 브라우저 smoke는 hot path에서 뺐고, 필요할 때
browser-smoke.yml이나 로컬test:e2e:smoke로만 확인합니다. - 나머지
db:*,ops:*,test:e2e:*, cleanup/backfill 스크립트는 평소 루틴이 아니라 필요할 때 찾는 유지보수 도구입니다.
TownPet은 단순 커뮤니티가 아니라, 반려인이 병원 · 입양 · 산책 · 거래 · 분실 같은 상황별 정보를 더 빨리 찾고 더 신뢰할 수 있게 만드는 로컬 반려 플랫폼을 목표로 한 프로젝트입니다.
AI Agent를 문제 분해 → 구현 → 테스트 → 배포 → 운영 개선까지 연결하는 개발 시스템으로 활용했습니다.
- 반려 정보는 병원 후기, 입양 공고, 산책 코스, 중고 거래처럼 맥락이 강한데, 대부분 한 채널 안에서 뒤섞여 있어 탐색 비용이 큽니다.
- TownPet은 이 문제를
지역 + 상황단위로 다시 쪼개서, 범용 게시판이 아니라 행동으로 이어지는 정보 화면을 만드는 방향으로 접근했습니다. - 그래서 자유글보다
구조화 게시판, 조회수보다신뢰 장치, 단순 피드보다운영 가능한 커뮤니티 구조를 먼저 설계했습니다.
지역 커뮤니티와상황별 정보 탐색을 한 제품 안에서 연결할 수 있습니다.- 한국의 유명 커뮤니티들 처럼 비로그인 회원도 정보를 열람하고 글작성, 댓글작성 기능을 사용할 수 있습니다.
- 입양, 병원, 산책, 거래처럼 intent가 분명한 카테고리는 이후 추천, 광고, 제휴, 거래 상태 머신으로 확장하기 좋습니다.
- 단순 콘텐츠 모음이 아니라, 구조화된 UGC와 운영 로그가 계속 쌓이는 형태라 서비스와 데이터가 함께 커집니다.
LOCAL / GLOBAL피드와 검색을 나눠 지역 커뮤니티 감각과 확장성을 같이 가져가도록 설계했습니다.- 병원 후기, 입양, 산책, 거래, 봉사처럼 서로 다른 맥락을 게시판과 구조화 필드로 분리했습니다.
- Kakao / Naver / Credentials 인증, 신고/차단/제재, 직접 모더레이션, 관리자 감사 로그를 제품 기본값으로 넣었습니다.
/admin/ops, health check, cleanup workflow까지 포함해 배포 후에도 운영 가능한 상태를 목표로 했습니다.
- 작업을 작은 사이클로 분해하고,
PLAN.md와PROGRESS.md로 계획/실행/검증 로그를 남겼습니다. - 기능 추가뿐 아니라 보안, migration chain, 운영 가드, 모바일 사용성까지 AI 에이전트와 함께 반복적으로 닫았습니다.
LOCAL / GLOBAL정책이 분리된 커뮤니티 피드와 검색- Kakao / Naver / Credentials 인증, 온보딩, 세션/권한 제어
- 신고, 차단, 제재, 직접 모더레이션, 관리자 감사 로그
- 검색 자동완성, 구조화 검색, zero-result 분석,
/admin/ops운영 대시보드 - Prisma migration, health check, retention cleanup, CI quality gate까지 포함한 운영형 구조
- Next.js App Router
- React 19
- TypeScript
- Prisma + PostgreSQL
- Zod
- NextAuth v5
- Upstash Redis
- Vitest + Playwright
- Vercel
- 문제를 기능 단위가 아니라
정합성,모더레이션,검색 품질,운영 가시성같은 축으로 나눴습니다. - AI 에이전트에게 구현을 맡길 때도 바로 머지하지 않고, 테스트/문서/운영 영향까지 같이 확인했습니다.
- 결과물 뒤에는 바로 확인 가능한 운영/문서 자산을 함께 남겼습니다.
- 제품/운영 문서: docs
- 계획/실행 로그: PLAN.md, PROGRESS.md
- 보안 트랙: 보안 계획, 보안 진행상황
docker compose up -d
cp app/.env.local app/.env
corepack pnpm -C app install
corepack pnpm -C app db:migrate
corepack pnpm -C app db:seed
corepack pnpm -C app devTownPet은 “AI로 빨리 만든 프로젝트”가 아니라, AI를 활용해 제품·운영·보안·품질까지 끝까지 밀어붙인 프로젝트입니다.





