Skip to content

Latest commit

 

History

History
49 lines (36 loc) · 1.24 KB

File metadata and controls

49 lines (36 loc) · 1.24 KB

create-square-app

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/v1

보호 페이지 추가

src/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