Square 사내 프론트엔드 프로젝트를 만드는 템플릿 CLI입니다.
npx create-square-app my-app
cd my-app
pnpm dev- Next.js 16 + React 19 + TypeScript
- WDS, Tailwind, React Query, Axios, Zod
app/shared/features중심의 최소 폴더 구조- Accounts 로그인으로 이동하는
/signin - 특정 페이지만 보호하는
src/proxy.ts - 서버에서만 downstream token을 다루는 BFF route handler
생성된 프로젝트의 .env.example을 기준으로 설정합니다.
NEXT_PUBLIC_ACCOUNTS_URL=http://localhost:5173
NEXT_PUBLIC_SERVICE_ID=my-service
AUTH_SERVICE_BASE_URL=http://localhost:3001
SERVICE_API_BASE_URL=http://localhost:8080/api/v1src/features/auth/protected-routes.ts에 보호할 페이지를 추가합니다.
export const PROTECTED_ROUTES = [
{ path: "/protected", match: "exact" },
{ path: "/admin", match: "prefix" },
];브라우저 코드는 /api/service/*를 호출하고, BFF가 auth service에서 downstream
token을 받아 실제 서비스 API로 전달합니다. 브라우저에는 access token을 노출하지
않습니다.
- Node.js 20 LTS 이상
- pnpm