[CHORE] 프론트엔드 개발환경 세팅#2
Conversation
📝 WalkthroughWalkthroughThe PR establishes a complete Next.js frontend development environment within a pnpm monorepo, configuring build tooling (TypeScript, ESLint, Prettier, PostCSS), git automation (Husky, lint-staged), GitHub collaboration templates, and minimal app scaffolding for ticket booking and booth reservation features. ChangesFrontend Development Environment
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.github/ISSUE_TEMPLATE/feature.md (1)
4-6: ⚡ Quick winRemove empty front-matter defaults for
title/labels.Empty-string values add noise and can cause inconsistent issue initialization. Prefer deleting these keys or setting real defaults.
Suggested cleanup
--- name: Feature about: 기능 개발 및 세팅 작업에 사용하는 이슈입니다. -title: "" -labels: "" assignees: chaeyoungwon ---🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/ISSUE_TEMPLATE/feature.md around lines 4 - 6, Remove the empty front-matter defaults for title and labels in the ISSUE_TEMPLATE by deleting the keys title: "" and labels: "" (or replace them with meaningful defaults) so the template does not include empty-string values; update the YAML front-matter section in .github/ISSUE_TEMPLATE/feature.md to either omit title and labels entirely or set real defaults instead of "".
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.gitignore:
- Around line 16-18: The current .gitignore entry ".env*" unintentionally
excludes ".env.example"; update the .gitignore so example files are committed by
either replacing ".env*" with explicit runtime ignores like ".env" and
".env.local" (and any other runtime-only variants you need) or add an explicit
allow rule "! .env.example". Reference the existing pattern ".env*" and the file
name ".env.example" when making the change.
In `@frontend/.gitignore`:
- Around line 33-35: Update the .gitignore rule that currently matches ".env*"
so it does not exclude example env templates: change the pattern handling to
explicitly ignore secret env files (e.g., ".env", ".env.local",
".env.production") while allowing ".env.example" to be tracked; locate the
existing ".env*" entry in the frontend .gitignore and replace it with specific
ignore patterns and/or an explicit negation for ".env.example" to ensure example
files remain in Git.
---
Nitpick comments:
In @.github/ISSUE_TEMPLATE/feature.md:
- Around line 4-6: Remove the empty front-matter defaults for title and labels
in the ISSUE_TEMPLATE by deleting the keys title: "" and labels: "" (or replace
them with meaningful defaults) so the template does not include empty-string
values; update the YAML front-matter section in
.github/ISSUE_TEMPLATE/feature.md to either omit title and labels entirely or
set real defaults instead of "".
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: ccf9bd12-1353-439f-9be2-af8098231d29
⛔ Files ignored due to path filters (2)
frontend/src/app/favicon.icois excluded by!**/*.icopnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (20)
.github/ISSUE_TEMPLATE/bug.md.github/ISSUE_TEMPLATE/feature.md.github/pull_request_template.md.gitignore.husky/pre-commit.vscode/settings.jsonfrontend/.gitignorefrontend/.prettierignorefrontend/.prettierrcfrontend/README.mdfrontend/eslint.config.mjsfrontend/next.config.tsfrontend/package.jsonfrontend/postcss.config.mjsfrontend/src/app/globals.cssfrontend/src/app/layout.tsxfrontend/src/app/page.tsxfrontend/tsconfig.jsonpackage.jsonpnpm-workspace.yaml
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
festival-app/frontend/tsconfig.json (1)
3-3: ⚡ Quick winConsider updating the TypeScript target to a modern ES version.
The
targetis set toES2017, which is quite dated for a project starting in 2026. Modern Next.js projects typically targetES2020or later, which enables:
- Newer language features (optional chaining, nullish coalescing, etc.)
- Better performance characteristics
- Alignment with current browser support
Next.js handles transpilation for older browsers automatically, so a modern target is safe.
⚡ Recommended modern target
- "target": "ES2017", + "target": "ES2020",Or even
ES2022if you want to use the latest stable ECMAScript features.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@festival-app/frontend/tsconfig.json` at line 3, Update the TypeScript compilation target in tsconfig.json by changing the "target" setting (the "target" key currently set to "ES2017") to a modern ES version such as "ES2020" or "ES2022"; ensure you run the project build and tests after the change to verify there are no unexpected issues and that Next.js transpilation behaves as expected.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@festival-app/frontend/package.json`:
- Line 17: Package.json pins Next.js 16.2.6 which introduces breaking changes;
update code to match the new APIs by auditing and modifying any server or app
routes that use request helpers (await use of params, searchParams, cookies,
headers, draftMode), rename middleware.ts to proxy.ts if present, adjust
next/image usage to include localPatterns and new defaults, move any
experimental.turbopack settings to top-level config, remove or replace usages of
serverRuntimeConfig/publicRuntimeConfig and unstable_rootParams(), update any
single-argument revalidateTag() calls to the new signature, and change metadata
function signatures to accept async params—search the codebase for symbols like
params, searchParams, cookies, headers, draftMode, middleware.ts, next/image,
experimental.turbopack, serverRuntimeConfig, publicRuntimeConfig,
unstable_rootParams, revalidateTag, and metadata to make the required edits per
the Next.js 16 upgrade guide.
In `@festival-app/package.json`:
- Line 14: The prepare script in package.json currently runs "cd .. && husky",
which moves out of festival-app (where husky is declared) and misinitializes
hooks; change the prepare script to just run "husky" inside this package.json
(remove the "cd ..") if festival-app is the repo root, otherwise move the
"husky" dependency and the prepare script into the repository root package.json
so husky runs from the root .husky/ directory; update the "prepare" entry and
dependency placement accordingly to ensure husky initializes in the correct
location.
---
Nitpick comments:
In `@festival-app/frontend/tsconfig.json`:
- Line 3: Update the TypeScript compilation target in tsconfig.json by changing
the "target" setting (the "target" key currently set to "ES2017") to a modern ES
version such as "ES2020" or "ES2022"; ensure you run the project build and tests
after the change to verify there are no unexpected issues and that Next.js
transpilation behaves as expected.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 3d31f5bd-d351-4579-a7d7-dba48f4d9413
⛔ Files ignored due to path filters (2)
festival-app/frontend/src/app/favicon.icois excluded by!**/*.icofestival-app/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (16)
.husky/pre-commit.vscode/settings.jsonfestival-app/frontend/.gitignorefestival-app/frontend/.prettierignorefestival-app/frontend/.prettierrcfestival-app/frontend/README.mdfestival-app/frontend/eslint.config.mjsfestival-app/frontend/next.config.tsfestival-app/frontend/package.jsonfestival-app/frontend/postcss.config.mjsfestival-app/frontend/src/app/globals.cssfestival-app/frontend/src/app/layout.tsxfestival-app/frontend/src/app/page.tsxfestival-app/frontend/tsconfig.jsonfestival-app/package.jsonfestival-app/pnpm-workspace.yaml
✅ Files skipped from review due to trivial changes (10)
- festival-app/frontend/src/app/page.tsx
- festival-app/frontend/.prettierignore
- .vscode/settings.json
- festival-app/frontend/postcss.config.mjs
- festival-app/frontend/.prettierrc
- festival-app/frontend/src/app/layout.tsx
- festival-app/frontend/src/app/globals.css
- festival-app/frontend/.gitignore
- festival-app/frontend/README.md
- .husky/pre-commit
| "format:check": "prettier . --check" | ||
| }, | ||
| "dependencies": { | ||
| "next": "16.2.6", |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
What is the latest stable version of Next.js as of May 2026, and is Next.js 16.2.6 available?
💡 Result:
Latest stable Next.js version as of 2026-05-19: 16.2.6 [1][2]. Yes—Next.js 16.2.6 is available. It has a published release in the vercel/next.js GitHub releases and is published on npm as 16.2.6 [1][2].
Citations:
🌐 Web query:
React 19.2.4 compatibility with Next.js 16.2.6 requirements
💡 Result:
React 19.2.4 is compatible with Next.js 16.2.6, provided you run the React and ReactDOM packages at the matching 19.2.x minor (and, for best results, update Next.js to the 16.2.6 security/bugfix release). Next.js 16 (App Router) is explicitly aligned with React 19.2; Next.js 16’s release notes state that it uses the latest React Canary release including newly released React 19.2 features [1]. Additionally, the Next.js 16.2 line was released alongside React 19.2.4 updates (documented in a React docs repository change upgrading Next.js to 16.2 and React to 19.2.4) [2]. For the specific pairing and patch level you asked about, Next.js 16.2.6 is a patched release (security/backported bug fixes) [3][4], and Netlify’s guidance notes that Next.js apps should upgrade to the patched minor and that Next.js bundles the patched React Server Components dependency (so you generally don’t separately upgrade react-server-dom-* when using Next.js) [5]. Practical checklist for compatibility: 1) Use Next.js 16.2.6 (not an earlier 16.2.x) [3]. 2) Use react and react-dom at 19.2.4 (or at least the same 19.2.x minor) [2]. If you do this, you should not see React/Next.js peer dependency incompatibility issues caused purely by using React 19.2.4 with Next.js 16.2.6 (the two are intentionally brought together in the 16.2 upgrade to React 19.2.4) [2].
Citations:
- 1: https://nextjs.org/blog/next-16
- 2: Update to Next.js 16.2 and React 19.2 reactjs/react.dev#8367
- 3: https://github.com/vercel/next.js/releases/latest
- 4: https://x.com/nextjs/status/2052489312944759202
- 5: https://www.netlify.com/changelog/tag/next-js/
🌐 Web query:
Next.js 16 breaking changes from Next.js 15 migration guide
💡 Result:
Next.js 16 breaking changes you’ll hit when migrating from Next.js 15 (App Router-focused), per the official v16 upgrade guide and release notes: 1) Async Request APIs: must be awaited (params, searchParams, cookies/headers/draftMode) - In Next.js 16, synchronous access is fully removed; the async Request APIs can only be accessed asynchronously.[1] - The upgrade guide calls out params, searchParams (in layouts/pages metadata-generating functions), plus cookies(), headers(), and draftMode() as breaking: code that reads them synchronously must change to await.[1] 2) Async parameters for Image metadata routes - Starting with Next.js 16, the image generating function receives params and id as promises (to align with the async Request APIs change).[1] 3) Async id parameter for sitemap generation - Starting with Next.js 16, the sitemap generating function receives id as a promise.[1] 4) middleware.ts renamed to proxy.ts - The middleware filename is deprecated and has been renamed to proxy to clarify the network boundary.[1] 5) next/image breaking behavior and defaults - Local images with query strings: now requires images.localPatterns to prevent enumeration attacks.[2][1] - Several next/image configuration defaults changed (breaking changes are listed in the v16 upgrade guide under “next/image changes”, including defaults like minimumCacheTTL, imageSizes, and qualities, plus other behavioral constraints).[1] 6) Turbopack is default (and earlier experimental location changes) - The Next.js 16 release notes state “Turbopack by default.”[2] - If you were using experimental.turbopack, that config location changed: it’s now top-level turbopack (and the old experimental location is removed).[2] 7) Config/runtime removals and related renames - Removed runtime config entries: serverRuntimeConfig and publicRuntimeConfig (use environment variables instead).[2] - experimental.dynamicIO flag renamed to cacheComponents.[2] - PPR flags removed/renamed as the feature evolves into the “Cache Components” programming model (including removal of experimental.ppr and route-level export const experimental_ppr).[2] 8) Removed/changed router metadata behavior (scroll behavior) - Automatic scroll-behavior: smooth was removed; to opt back in, add data-scroll-behavior="smooth" to the HTML document.[2] 9) Other removals called out in the release notes - Removal of unstable_rootParams() (with note that an alternative API is planned for a future minor).[2] - revalidateTag() single-argument form removed (use revalidateTag(tag, profile) for SWR, or updateTag(tag) in Actions for read-your-writes).[2] If you want, paste your key Next.js 15 versions/config (next.config.js, whether you use middleware/proxy, any custom Image domains/patterns, and whether you use generateImageMetadata/sitemap routes). I can map these breaking items directly to the exact code/config changes you’ll need.
Citations:
Next.js 16.2.6 and React 19.2.4 are confirmed compatible and currently stable.
The versions specified are valid—Next.js 16.2.6 is the latest stable release and is explicitly paired with React 19.2.4. However, Next.js 16 introduces multiple breaking changes from version 15:
- Async Request APIs (
params,searchParams,cookies,headers,draftMode) must be awaited middleware.tsrenamed toproxy.tsnext/imagedefaults andlocalPatternsrequirements changed- Turbopack is now default;
experimental.turbopackconfig moved to top-level - Removed:
serverRuntimeConfig,publicRuntimeConfig,unstable_rootParams(), single-argumentrevalidateTag() - Various metadata function signatures now receive async parameters
Ensure the codebase has been updated to handle these breaking changes before deployment. Review the Next.js 16 upgrade guide for detailed migration steps.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@festival-app/frontend/package.json` at line 17, Package.json pins Next.js
16.2.6 which introduces breaking changes; update code to match the new APIs by
auditing and modifying any server or app routes that use request helpers (await
use of params, searchParams, cookies, headers, draftMode), rename middleware.ts
to proxy.ts if present, adjust next/image usage to include localPatterns and new
defaults, move any experimental.turbopack settings to top-level config, remove
or replace usages of serverRuntimeConfig/publicRuntimeConfig and
unstable_rootParams(), update any single-argument revalidateTag() calls to the
new signature, and change metadata function signatures to accept async
params—search the codebase for symbols like params, searchParams, cookies,
headers, draftMode, middleware.ts, next/image, experimental.turbopack,
serverRuntimeConfig, publicRuntimeConfig, unstable_rootParams, revalidateTag,
and metadata to make the required edits per the Next.js 16 upgrade guide.
| "lint:fix": "pnpm --filter frontend lint:fix", | ||
| "format": "pnpm --filter frontend format", | ||
| "format:check": "pnpm --filter frontend format:check", | ||
| "prepare": "cd .. && husky" |
There was a problem hiding this comment.
Fix the Husky prepare script path navigation.
The prepare script performs cd .. before running husky, which navigates out of festival-app/ to the parent directory. This is problematic because:
- Husky is declared as a dependency in this
package.json, not the parent - Husky expects to initialize hooks in the repository root's
.husky/directory - If
festival-app/is a subdirectory of the repo, this creates confusion about where hooks should live - This pattern can fail in CI/CD or when installing from a clean state
🔧 Recommended fix
If festival-app/ is the repository root, remove the cd ..:
- "prepare": "cd .. && husky"
+ "prepare": "husky"If the repository root is the parent directory, move the husky dependency and prepare script to the root package.json instead.
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| "prepare": "cd .. && husky" | |
| "prepare": "husky" |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@festival-app/package.json` at line 14, The prepare script in package.json
currently runs "cd .. && husky", which moves out of festival-app (where husky is
declared) and misinitializes hooks; change the prepare script to just run
"husky" inside this package.json (remove the "cd ..") if festival-app is the
repo root, otherwise move the "husky" dependency and the prepare script into the
repository root package.json so husky runs from the root .husky/ directory;
update the "prepare" entry and dependency placement accordingly to ensure husky
initializes in the correct location.
close #1
🔎 개요
프론트엔드 개발환경 초기 세팅 및 협업 환경 구성을 진행했습니다.
📝 작업 내용
.gitignore설정👀 변경 사항
frontend디렉토리 내부에서 실행됩니다.pnpm을 사용합니다.Summary by CodeRabbit
Chores
Documentation