Join the Agent Deck Discord Server!
Discord에서 Agent Deck 커뮤니티 확인, 357명과 자유 음성·텍스트 채팅 이용
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기[GAK] 모여서 각자 작업 서비스
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗
링크 하나로 빠르게 모여서, 제한된 시간 동안 각자 작업에 몰입하는 협업 플랫폼
| 분류 | 기술 |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | React 19, Tailwind CSS v4, Storybook |
| Language | TypeScript |
| Data/State | TanStack Query, Zustand |
| Validation/Form | Zod, React Hook Form |
| Realtime | SSE (Server-Sent Events) |
| Test | Jest, Vitest, Testing Library |
| CI/CD | GitHub Actions, Chromatic, Vercel |
src/app에서 구성하고, 서버/클라이언트 컴포넌트를 역할에 따라 분리src/app/api/**/route.ts에서 프런트 전용 API 경계를 제공src/lib/api/api-route-forwarder.ts를 통해 인증 쿠키 전달, 에러 응답 형식, 백엔드 요청 처리를 일관되게 관리src/proxy.ts에서 공개/보호 경로 분기, 토큰 만료 임박 시 리프레시 자동 시도src/app/api/sse/** + 클라이언트 훅으로 구독이 프로젝트는 기능 구현뿐 아니라, 프런트엔드에서 반복적으로 발생하는 API 호출/캐시 관리 문제를 일관된 규칙으로 다루는 데 초점을 맞췄습니다.
22.21.1 (.nvmrc)10.27.0 (packageManager)# 1. 저장소 클론
git clone https://github.com/dnd-side-project/dnd-14th-9-frontend.git
cd dnd-14th-9-frontend
# 2. pnpm 활성화
corepack enable
# 3. 의존성 설치
pnpm install
# 4. Git hooks 설정 (최초 1회)
pnpm prepare
# 5. 개발 서버 실행 (토큰 빌드 watch + Next dev 동시 실행)
pnpm dev
| 명령어 | 설명 |
|---|---|
pnpm dev | 토큰 watch + Next 개발 서버 실행 |
pnpm build | 디자인 토큰 생성 후 프로덕션 빌드 |
pnpm start | 프로덕션 서버 실행 |
pnpm storybook | Storybook 로컬 실행 (:6006) |
pnpm build-storybook | Storybook 정적 빌드 |
pnpm test | Jest 테스트 실행 |
pnpm test:auth-concurrency | 빌드 후 Refresh Token 다중 인스턴스 통합 검증 |
pnpm test:coverage | 커버리지 포함 테스트 |
pnpm lint | ESLint 검사 |
pnpm typecheck | TypeScript 타입 검사 |
pnpm codegen | Orval 기반 API 클라이언트 코드 생성 |
pnpm tokens | Style Dictionary 기반 디자인 토큰 생성 |
.env.local)이 프로젝트는 .env.example 대신 실제 사용 키를 기준으로 환경을 구성합니다.
아래 키를 .env.local에 설정하세요.
보안 원칙
- 실제 토큰/시크릿 값은 절대 저장소에 커밋하지 않습니다.
NEXT_PUBLIC_*변수는 브라우저에 노출되므로 비밀값을 넣지 않습니다..env*는 기본적으로.gitignore에 포함되어 있습니다.
| 키 | 필수 | 예시 | 용도 |
|---|---|---|---|
BACKEND_API_BASE | 필수 | https://<backend-api-origin> | 서버 측 API 호출 기본 URL, 프록시 토큰 재발급 호출 |
BACKEND_ORIGIN | 필수 | https://<backend-origin> | OAuth 인가 URL 생성 기준 origin |
FRONTEND_ORIGIN | 필수 | http://localhost:3000 | 서버 측 프런트 오리진 참조 |
NEXT_PUBLIC_BACKEND_API_BASE | 필수 | https://<backend-api-origin> | 클라이언트/API 호출 및 sitemap 데이터 소스 |
NEXT_PUBLIC_BACKEND_ORIGIN | 필수 | https://<backend-origin> | 백엔드 origin 공개값 (OAuth fallback) |
NEXT_PUBLIC_FRONTEND_ORIGIN | 필수 | https://<frontend-origin> | SEO canonical, metadata base URL |
NEXT_PUBLIC_ENABLE_DEVTOOLS | 선택 | true | 개발 환경 React Query Devtools 노출 제어 |
NEXT_PUBLIC_GOOGLE_ANALYTICS | 선택 | G-XXXXXXXXXX | Google Analytics 스크립트 주입 |
NEXT_PUBLIC_GOOGLE_VERIFICATION | 선택 | <google-verification-token> | Google Search Console 검증 |
NEXT_PUBLIC_NAVER_VERIFICATION | 선택 | <naver-verification-token> | 네이버 웹마스터 검증 |
NEXT_PUBLIC_WS_URL | 선택 | ws://localhost:8080 | 웹소켓 클라이언트 기본 주소 |
BACKEND_URL | 선택 | https://<backend-origin> | BACKEND_ORIGIN 미지정 시 fallback |
NEXT_PUBLIC_BACKEND_URL | 선택 | https://<backend-origin> | NEXT_PUBLIC_BACKEND_ORIGIN 미지정 시 fallback |
NEXT_PUBLIC_API_URL | 선택 | https://<backend-api-origin> | API URL 호환용 fallback |
.github/workflows/ci.yml)
main 대상 PR 생성 및 업데이트 시 lint -> 기존 Jest 단계 -> 어댑터 빌드 회귀 검사 -> build -> 인증 동시성 통합 검증 실행pnpm test:coverage --ci --coverageProvider=v8를 사용scripts/test-next-adapter-build.mjs)
onBuildComplete 어댑터를 연결해 실제 앱을 clean build하고, 어댑터와 출력 설정의 호환성을 검증.next를 정리하므로 개발 서버나 다른 빌드와 병렬 실행하지 않으며, 이후 pnpm build로 일반 실행 결과물을 생성scripts/auth-refresh-concurrency.mjs)
next start 프로세스 2개에서 회전형 Refresh Token 경합과 백엔드 멱등 계약을 로컬 가짜 백엔드로 검증.github/workflows/chromatic.yml)
27개 (src/test/**)24개 (src/stories/**/*.stories.tsx|ts)| 역할 | 이름 | GitHub |
|---|---|---|
| FE | 장근호 | Rootjang92 |
| FE | 이경환 | tnemnorivnelee |
| BE | 이소정 | Sojeong0430 |
| BE | 박용현 | yonghyeonpark |
| Design | 김시라 | - |
| Design | 임세원 | - |
MIT License. 자세한 내용은 LICENSE를 참고하세요.
NEXT_PUBLIC_APP_URL |
| 선택 |
http://localhost:3000 |
| URL 유틸 함수 fallback |