feat: 웹 React Compiler 도입#536
Conversation
Walkthrough이 PR은 React Compiler 롤아웃과 Next.js 15 마이그레이션을 핵심으로 하는 종합적인 프레임워크 업그레이드입니다. 다음과 같이 진행됩니다:
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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 |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
apps/web/src/app/(home)/_ui/PopularUniversitySection/index.tsx (1)
27-27: 💤 Low value코멘트가 실제 동작과 일치하지 않습니다.
"동적 렌더링으로 위임"이라는 주석이 있지만, 이제
next/dynamic이 제거되어 정적 렌더링으로 변경되었습니다. 주석을 현재 동작에 맞게 수정하시는 것이 좋겠습니다.✏️ 주석 수정 제안
- {/* 나머지는 동적 렌더링으로 위임 */} + {/* 나머지는 lazy loading으로 처리 */}🤖 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 `@apps/web/src/app/`(home)/_ui/PopularUniversitySection/index.tsx at line 27, The inline comment in PopularUniversitySection (index.tsx) saying "나머지는 동적 렌더링으로 위임" is outdated because next/dynamic was removed and the component now renders statically; update that comment in the PopularUniversitySection file to accurately state that the component is statically rendered (or remove the comment) so the comment matches the current behavior of the PopularUniversitySection component.
🤖 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 `@apps/web/src/app/university/score/submit/language-test/_lib/schema.ts`:
- Around line 17-20: The validation error message for file type in the refine
chain (in the schema using isFileList, ACCEPTED_FILE_TYPES and MAX_FILE_SIZE) is
out of sync with allowed MIME types: update the string passed to the last
.refine(...) so it lists the actual accepted types (including .webp) to match
ACCEPTED_FILE_TYPES (e.g., ".jpeg, .png, .webp, .pdf 파일만 지원합니다."). Ensure you
edit the message in the same refine call that checks ACCEPTED_FILE_TYPES.
---
Nitpick comments:
In `@apps/web/src/app/`(home)/_ui/PopularUniversitySection/index.tsx:
- Line 27: The inline comment in PopularUniversitySection (index.tsx) saying
"나머지는 동적 렌더링으로 위임" is outdated because next/dynamic was removed and the
component now renders statically; update that comment in the
PopularUniversitySection file to accurately state that the component is
statically rendered (or remove the comment) so the comment matches the current
behavior of the PopularUniversitySection component.
🪄 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: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 7b61a6e6-fd5e-4e3b-9f45-49604dbde6f4
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (25)
apps/web/REACT_COMPILER.mdapps/web/next.config.mjsapps/web/package.jsonapps/web/src/app/(home)/_ui/PopularUniversitySection/index.tsxapps/web/src/app/(home)/page.tsxapps/web/src/app/community/[boardCode]/[postId]/modify/page.tsxapps/web/src/app/community/[boardCode]/[postId]/page.tsxapps/web/src/app/community/[boardCode]/create/page.tsxapps/web/src/app/community/[boardCode]/page.tsxapps/web/src/app/layout.tsxapps/web/src/app/login/page.tsxapps/web/src/app/mentor/[id]/page.tsxapps/web/src/app/mentor/chat/[chatId]/page.tsxapps/web/src/app/university/[homeUniversity]/page.tsxapps/web/src/app/university/application/apply/page.tsxapps/web/src/app/university/score/page.tsxapps/web/src/app/university/score/submit/gpa/_lib/schema.tsapps/web/src/app/university/score/submit/gpa/page.tsxapps/web/src/app/university/score/submit/language-test/_lib/schema.tsapps/web/src/app/university/score/submit/language-test/page.tsxapps/web/src/app/university/search/page.tsxapps/web/src/components/layout/GlobalLayout/index.tsxapps/web/src/components/ui/ChannelBadge.tsxapps/web/src/utils/isServerStateLogin.tsapps/web/tsconfig.json
| .custom<FileList>(isFileList, "증명서 파일을 첨부해주세요.") | ||
| .refine((files) => files?.length === 1, "증명서 파일을 첨부해주세요.") | ||
| .refine((files) => files?.[0]?.size <= MAX_FILE_SIZE, `파일 크기는 5MB를 초과할 수 없습니다.`) | ||
| .refine((files) => ACCEPTED_FILE_TYPES.includes(files?.[0]?.type), ".jpeg, .png, .pdf 파일만 지원합니다."), |
There was a problem hiding this comment.
1) 파일 타입 안내 문구를 실제 허용 타입과 맞춰주세요.
- Line 20 에러 메시지에서 `.webp`가 누락되어 있습니다. 현재 검증은 `image/webp`를 허용하므로 문구를 일치시키는 게 좋습니다.
🤖 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 `@apps/web/src/app/university/score/submit/language-test/_lib/schema.ts` around
lines 17 - 20, The validation error message for file type in the refine chain
(in the schema using isFileList, ACCEPTED_FILE_TYPES and MAX_FILE_SIZE) is out
of sync with allowed MIME types: update the string passed to the last
.refine(...) so it lists the actual accepted types (including .webp) to match
ACCEPTED_FILE_TYPES (e.g., ".jpeg, .png, .webp, .pdf 파일만 지원합니다."). Ensure you
edit the message in the same refine call that checks ACCEPTED_FILE_TYPES.
|
@codex review |
|
Codex Review: Didn't find any major issues. What shall we delve into next? ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
관련 이슈
작업 내용
apps/web에 React Compiler를 annotation mode로 도입했습니다.react-compiler-runtime을 추가하고 compiler target을18로 설정했습니다.ChannelBadge에 첫"use memo"annotation을 적용했습니다.apps/web의 Next 관련 패키지를 15.5.18로 올리고, Next 15의 asyncparams/searchParams/cookies()요구사항을 반영했습니다.dynamic(..., { ssr: false })사용을 제거하고, 대상 컴포넌트의 client boundary/SSR 안전성을REACT_COMPILER.md에 정리했습니다.검증
pnpm --filter @solid-connect/web ci:checkpnpm --filter @solid-connect/web buildreact-compiler-runtime참조 확인참고
onRequestError/instrumentation-client경고와metadataBase경고는 남아 있습니다. 이번 React Compiler 도입과 직접 관련된 실패는 아닙니다.compilationMode: annotation으로 제한했습니다. 전체 컴파일 확대 전에는 React Compiler lint/audit 경로를 먼저 마련하는 것을 권장합니다.