
.
├── apps
│ ├── blog
│ │ ├── components.json
│ │ ├── docker-compose.test.yml
│ │ ├── package.json
│ │ ├── postcss.config.mjs
│ │ ├── prisma
│ │ │ └── schema.prisma
│ │ ├── public
│ │ │ ├── content
│ │ │ │ ├── query-1.png
│ │ │ │ └── query-2.png
│ │ │ └── logo
│ │ │ ├── logo.svg
│ │ │ └── logo.webp
│ │ ├── src
│ │ │ ├── __tests__
│ │ │ │ ├── lib
│ │ │ │ ├── server
│ │ │ │ │ └── trpc
│ │ │ │ │ └── routers
│ │ │ │ └── services
│ │ │ │ └── post
│ │ │ ├── app
│ │ │ │ ├── (auth)
│ │ │ │ │ └── login
│ │ │ │ ├── (root)
│ │ │ │ │ └── about
│ │ │ │ ├── admin
│ │ │ │ ├── api
│ │ │ │ │ ├── revalidate
│ │ │ │ │ ├── trpc
│ │ │ │ │ │ └── [trpc]
│ │ │ │ │ └── upload
│ │ │ │ ├── blog
│ │ │ │ └── post
│ │ │ │ └── [slug]
│ │ │ ├── components
│ │ │ │ ├── about
│ │ │ │ ├── admin
│ │ │ │ ├── blog
│ │ │ │ ├── home
│ │ │ │ ├── layouts
│ │ │ │ ├── loading
│ │ │ │ ├── post
│ │ │ │ └── ui
│ │ │ ├── constants
│ │ │ ├── hooks
│ │ │ ├── lib
│ │ │ │ └── auth
│ │ │ ├── mdx
│ │ │ │ └── components
│ │ │ │ ├── cache
│ │ │ │ ├── fiber
│ │ │ │ ├── react-query
│ │ │ │ ├── sonner
│ │ │ │ └── suspense
│ │ │ ├── meta
│ │ │ ├── providers
│ │ │ ├── schemas
│ │ │ ├── server
│ │ │ │ └── trpc
│ │ │ │ └── routers
│ │ │ ├── services
│ │ │ │ └── post
│ │ │ ├── test
│ │ │ └── types
│ │ ├── tsconfig.json
│ │ └── tsconfig.tsbuildinfo
│ └── planner
│ ├── app
│ │ ├── components
│ │ │ └── layout
│ │ ├── constants
│ │ ├── lib
│ │ └── routes
│ ├── components.json
│ ├── package.json
│ ├── prisma
│ │ └── schema.prisma
│ ├── public
│ ├── README.md
│ └── tsconfig.json
├── eslint.config.mjs
├── package.json
├── packages
│ └── ui
│ ├── components
│ ├── components.json
│ ├── lib
│ ├── package.json
│ ├── styles
│ │ └── globals.css
│ └── tsconfig.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
├── prettier.config.mjs
├── README.md
└── turbo.json
# 빌드
pnpm build
# 실행
pnpm dev
# blog(next.js): localhost:3000
# planner(react-router): localhost:5173
# 체크
pnpm lint:fix
pnpm format
pnpm type-check
# DB
pnpm db:gen
# main .env
APP_ENV=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
CLOUDINARY_CLOUD_NAME=
VERCEL_ENV=
DATABASE_URL= #psql
# test .env
NEXT_PUBLIC_APP_ENV=
DATABASE_URL=
JWT_SECRET=
VERCEL_ENV=
Email: [email protected]