Skip to content

πŸ“ chore: 제좜 μ „ μ½”λ“œ 정리 μž‘μ—… λͺ©λ‘ - #8

Open
za0012 wants to merge 1 commit into
Nextsfrom
chore/pre-submit-checklist
Open

πŸ“ chore: 제좜 μ „ μ½”λ“œ 정리 μž‘μ—… λͺ©λ‘#8
za0012 wants to merge 1 commit into
Nextsfrom
chore/pre-submit-checklist

Conversation

@za0012

@za0012 za0012 commented Jul 31, 2026

Copy link
Copy Markdown
Owner

이λ ₯μ„œ 제좜 전에 μ €μž₯μ†Œλ₯Ό "μ±„μš© λ‹΄λ‹Ήμžκ°€ 열어봐도 λ˜λŠ” μƒνƒœ"둜 λ§Œλ“œλŠ” μž‘μ—…μ„ 이 PR에 λͺ¨μλ‹ˆλ‹€.

ν˜„μž¬ κΈ°λ³Έ λΈŒλžœμΉ˜λŠ” bun run build, tsc --noEmit, bun testκ°€ λͺ¨λ‘ μ‹€νŒ¨ν•©λ‹ˆλ‹€. 이λ ₯μ„œμ— GitHub URL을 μ λŠ” 이상 이 μ„Έ κ°€μ§€ 톡과가 μ΅œμ†Œ μ‘°κ±΄μž…λ‹ˆλ‹€.

상세 λ‚΄μš©μ€ docs/pre-submit-checklist.md μ°Έκ³ .

μˆœμ„œ

PR #7 νŒŒμΌλ³„ 처리

AIκ°€ μƒμ„±ν•œ PRμž…λ‹ˆλ‹€. μ „λΆ€ 받아듀이지 말고 μ•„λž˜ κΈ°μ€€μœΌλ‘œ λ‚˜λˆ•λ‹ˆλ‹€.

νŒλ‹¨ κΈ°μ€€: λ©΄μ ‘μ—μ„œ "이걸 μ™œ μ΄λ ‡κ²Œ 고쳀냐"κ³  물으면 λ‹΅ν•  수 μžˆλŠ”κ°€?

파일 처리 이유
Heatmap/hook.test.ts κ·ΈλŒ€λ‘œ νƒ€μž„μ‘΄ κ³ μ • + 적용 확인 ν…ŒμŠ€νŠΈκΉŒμ§€ 잘 μž‘μ„±λ¨
LineChart/hook.test.ts κ·ΈλŒ€λ‘œ 동일
Heatmap/hook.ts κ·ΈλŒ€λ‘œ format() 적용. 검증 μ™„λ£Œ
LineChart/hook.ts κ·ΈλŒ€λ‘œ format() + λ²”μœ„ -5~0. 검증 μ™„λ£Œ
MakeStudy.tsx κ·ΈλŒ€λ‘œ 주석 ν•΄μ œ. νŒλ‹¨ν•  것 μ—†μŒ
Sidebar.tsx κ·ΈλŒ€λ‘œ study?.id guard ν•œ 쀄
calendar.tsx κ·ΈλŒ€λ‘œ react-day-picker 버전 νƒ€μž… 문제
TagSection.tsx 직접 λ‹€μ‹œ μž‘μ„± 였λ₯˜λ§Œ μ§€μš΄ 우회 μˆ˜μ •
studyStore.ts 섀계 κ²°μ • 두 μ•ˆ 쀑 선택
tsconfig.json νŒλ‹¨ λΆ€μž‘μš© μΈμ§€ν•˜κ³  μœ μ§€ μ—¬λΆ€ κ²°μ •
.github/workflows/automated-code-review.yml 읽고 κ²€ν†  57쀄 μΆ”κ°€. λ‚΄μš© 확인 ν•„μš”
problems/page.tsx 확인 13쀄 λ³€κ²½λΆ„ 확인

직접 μž‘μ„±ν•΄μ•Ό ν•˜λŠ” 것

TagSection.tsx

// PR μƒνƒœ β€” 였λ₯˜λ§Œ 사라지고 νƒ€μž… μ•ˆμ •μ„±μ€ κ·ΈλŒ€λ‘œ
const selectedTags: string[] = useWatch({ control, name: "tags" }) ?? [];
//                  ^^^^^^^^ any 에 μ΄λ¦„ν‘œλ§Œ 뢙인 것

ProblemFormValuesλ₯Ό 곡용 νƒ€μž…μœΌλ‘œ λΆ„λ¦¬ν•˜κ³  useFormContext<ProblemFormValues>()둜 μ œλ„€λ¦­μ„ μ—°κ²°ν•˜λ©΄ νƒ€μž…μ΄ μžλ™μœΌλ‘œ string[]이 λ©λ‹ˆλ‹€.

studyStore.ts

  • Aμ•ˆ(ν˜„μž¬ PR): StoredStudy β€” ν•„λ“œλ§ˆλ‹€ nullable. μ‚¬μš©ν•˜λŠ” μͺ½μ—μ„œ ν•„λ“œλ§ˆλ‹€ null 체크
  • Bμ•ˆ: atomWithStorage<Study | null> β€” ν•œ 번만 μ²΄ν¬ν•˜λ©΄ 이후 ν•„λ“œλŠ” νƒ€μž… 보μž₯

Bμ•ˆμ΄ λ‚«μ§€λ§Œ μ°Έμ‘°ν•˜λŠ” 곳을 ν•¨κ»˜ 손봐야 ν•©λ‹ˆλ‹€. Aμ•ˆ μœ μ§€ μ‹œ μ™œ κ³¨λžλŠ”μ§€ μ„€λͺ…ν•  수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

tsconfig.json

"exclude": ["node_modules", "**/*.test.ts"] β€” λΉŒλ“œ νƒ€μž… κ²€μ‚¬μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό λΉΌλŠ” 건 ν•©λ¦¬μ μ΄μ§€λ§Œ, ν…ŒμŠ€νŠΈ 파일이 νƒ€μž… 검사λ₯Ό μ „ν˜€ μ•ˆ λ°›κ²Œ λ˜λŠ” λΆ€μž‘μš©μ΄ μžˆμŠ΅λ‹ˆλ‹€.

μ™œ 4번이 ν•„μš”ν•œκ°€

ν˜„μž¬ 브랜치 보호 κ·œμΉ™μ΄ μ—†μ–΄ 체크가 μ‹€νŒ¨ν•΄λ„ λ¨Έμ§€λ©λ‹ˆλ‹€. PR #5κ°€ fail μƒνƒœλ‘œ λ¨Έμ§€λœ 사둀가 μžˆμŠ΅λ‹ˆλ‹€. 이 섀정을 λ§ˆμ³μ•Ό 이λ ₯μ„œμ˜ "P1 발견 μ‹œ 병합을 μ°¨λ‹¨ν•˜λŠ”" 문ꡬ가 사싀이 λ©λ‹ˆλ‹€.

6번 β€” μ—¬μœ  μ‹œ

  • api/extension/_shared.ts CORS * β†’ allowlist
  • problems/page.tsx queryKeyμ—μ„œ λͺ¨λ‹¬ μƒνƒœ 제거 + invalidateQueries
  • History.tsx, MonthlySolve.tsx μ‚­μ œ (쀑볡)
  • biome 70 errors / 28 warnings 정리
  • getAuthedMember discriminated union λ°˜ν™˜μœΌλ‘œ λ³€κ²½

Related: #6, #7

@github-actions

Copy link
Copy Markdown

μžλ™ PR μ½”λ“œ 리뷰

  • μ‹€ν–‰ μœ ν˜•: PR 리뷰
  • 생성 μ‹œκ°: 2026-07-31T02:12:50.629Z
  • κΈ°μ€€ 컀밋: 8d4c24d6bb349045140caf41872afae0d8c24e0a
  • λŒ€μƒ 컀밋: 5eb2073fae1644fbc1f3a03dfbad8054b600bdcd
  • λ³€κ²½ 파일 수: 1
  • 발견 ν•­λͺ© 수: 4
  • 이번 PR 영ν–₯ κ°€λŠ₯ ν•­λͺ©: 0
  • κΈ°μ‘΄ μ‹€νŒ¨ μΆ”μ • ν•­λͺ©: 4

검증 κ²°κ³Ό

  • Lint: μ‹€νŒ¨ (1) - bun biome check .
  • TypeScript νƒ€μž… 검사: μ‹€νŒ¨ (2) - "/home/runner/.bun/bin/bun" "/home/runner/work/codeTest/codeTest/node_modules/typescript/bin/tsc" --noEmit --pretty false
  • ν…ŒμŠ€νŠΈ: μ‹€νŒ¨ (1) - bun run test
  • λΉŒλ“œ: μ‹€νŒ¨ (1) - bun run build

이번 PR 영ν–₯ κ°€λŠ₯ ν•­λͺ©

이번 PR λ³€κ²½ νŒŒμΌμ—μ„œ 직접 λ°œμƒν•œ κ²ƒμœΌλ‘œ λ³΄μ΄λŠ” ν•­λͺ©μ€ μ—†μŠ΅λ‹ˆλ‹€.

κΈ°μ‘΄ μ‹€νŒ¨λ‘œ μΆ”μ •λ˜λŠ” ν•­λͺ©

P1 λΉŒλ“œ μ‹€νŒ¨

  • μœ„μΉ˜: package.json
  • 좜처: harness
  • λΆ„λ₯˜: κΈ°μ‘΄ μ‹€νŒ¨ μΆ”μ •
  • 영ν–₯: λΉŒλ“œ 검증이 μ‹€νŒ¨ν–ˆμ§€λ§Œ, 좜λ ₯에 λ‚˜νƒ€λ‚œ 파일이 이번 PR λ³€κ²½ 파일 밖에 μžˆμ–΄ κΈ°μ‘΄ μ‹€νŒ¨μΌ κ°€λŠ₯성이 ν½λ‹ˆλ‹€.
  • μ œμ•ˆ μˆ˜μ •: λ‘œμ»¬μ—μ„œ bun run buildλ₯Ό μ‹€ν–‰ν•œ λ’€ μ•„λž˜ 첫 좜λ ₯λΆ€ν„° μˆ˜μ •ν•˜μ„Έμš”.
    $ bun next build
    Failed to type check.

./src/app/(with-sidebar)/problems/components/problem-add/TagSection.tsx:83:31
Type error: Parameter 'tag' implicitly has an 'any' type.

81 |


82 | {selectedTags.length > 0 ? (

83 | selectedTags.map((tag) => (
| ^
84 | <span
85 | key={tag}
86 | className="text-[12px] text-[#8b95a1] font-medium"
Next.js build worker exited with code: 1 and signal: null
error: "next" exited with code 1
error: script "build" exited with code 1
⚠ No build cache found. Please configure build caching for faster rebuilds. Read more: https://nextjs.org/docs/messages/no-cache
β–² Next.js 16.2.4 (Turbopack)

Creating an optimized production build ...
βœ“ Compiled successfully in 11.0s
Running TypeScript ...

  • 확인 방법: bun run buildκ°€ exit code 0으둜 μ’…λ£Œλ˜λ©΄ ν•΄κ²°λœ κ²ƒμž…λ‹ˆλ‹€.

P1 ν…ŒμŠ€νŠΈ μ‹€νŒ¨

  • μœ„μΉ˜: src/**/*.test.ts
  • 좜처: harness
  • λΆ„λ₯˜: κΈ°μ‘΄ μ‹€νŒ¨ μΆ”μ •
  • 영ν–₯: ν…ŒμŠ€νŠΈ 검증이 μ‹€νŒ¨ν–ˆμ§€λ§Œ, 좜λ ₯에 λ‚˜νƒ€λ‚œ 파일이 이번 PR λ³€κ²½ 파일 밖에 μžˆμ–΄ κΈ°μ‘΄ μ‹€νŒ¨μΌ κ°€λŠ₯성이 ν½λ‹ˆλ‹€.
  • μ œμ•ˆ μˆ˜μ •: λ‘œμ»¬μ—μ„œ bun run testλ₯Ό μ‹€ν–‰ν•œ λ’€ μ•„λž˜ 첫 좜λ ₯λΆ€ν„° μˆ˜μ •ν•˜μ„Έμš”.
    $ bun test ./src//*.test.ts
    Test filter "./src/
    /*.test.ts" had no matches
    error: script "test" exited with code 1
    bun test v1.3.14 (0d9b296a)
  • 확인 방법: bun run testκ°€ exit code 0으둜 μ’…λ£Œλ˜λ©΄ ν•΄κ²°λœ κ²ƒμž…λ‹ˆλ‹€.

P1 TypeScript νƒ€μž… 검사 μ‹€νŒ¨

  • μœ„μΉ˜: src/components/Sidebar.tsx
  • 좜처: harness
  • λΆ„λ₯˜: κΈ°μ‘΄ μ‹€νŒ¨ μΆ”μ •
  • 영ν–₯: TypeScript νƒ€μž… 검사 검증이 μ‹€νŒ¨ν–ˆμ§€λ§Œ, 좜λ ₯에 λ‚˜νƒ€λ‚œ 파일이 이번 PR λ³€κ²½ 파일 밖에 μžˆμ–΄ κΈ°μ‘΄ μ‹€νŒ¨μΌ κ°€λŠ₯성이 ν½λ‹ˆλ‹€.
  • μ œμ•ˆ μˆ˜μ •: λ‘œμ»¬μ—μ„œ "/home/runner/.bun/bin/bun" "/home/runner/work/codeTest/codeTest/node_modules/typescript/bin/tsc" --noEmit --pretty falseλ₯Ό μ‹€ν–‰ν•œ λ’€ μ•„λž˜ 첫 좜λ ₯λΆ€ν„° μˆ˜μ •ν•˜μ„Έμš”.
    src/app/(with-sidebar)/problems/components/problem-add/TagSection.tsx(83,31): error TS7006: Parameter 'tag' implicitly has an 'any' type.
    src/app/(with-sidebar)/problems/page.tsx(135,15): error TS2322: Type 'any[] | undefined' is not assignable to type 'string[]'.
    Type 'undefined' is not assignable to type 'string[]'.
    src/app/(without-sidebar)/find/page.tsx(7,23): error TS2306: File '/home/runner/work/codeTest/codeTest/src/app/(without-sidebar)/find/component/MakeStudy.tsx' is not a module.
    src/components/Sidebar.tsx(49,36): error TS18048: 'study' is possibly 'undefined'.
    src/components/ui/Logo.tsx(2,21): error TS2307: Cannot find module '../../../public/Logo.png' or its corresponding type declarations.
    src/components/ui/calendar.tsx(94,9): error TS2353: Object literal may only specify known properties, and 'table' does not exist in type 'Partial'.
    src/lib/store/studyStore.ts(6,3): error TS2322: Type 'null' is not assignable to type 'string'.
    src/lib/store/studyStore.ts(7
    [output truncated]
  • 확인 방법: "/home/runner/.bun/bin/bun" "/home/runner/work/codeTest/codeTest/node_modules/typescript/bin/tsc" --noEmit --pretty falseκ°€ exit code 0으둜 μ’…λ£Œλ˜λ©΄ ν•΄κ²°λœ κ²ƒμž…λ‹ˆλ‹€.

P2 Lint μ‹€νŒ¨

  • μœ„μΉ˜: package.json

  • 좜처: harness

  • λΆ„λ₯˜: κΈ°μ‘΄ μ‹€νŒ¨ μΆ”μ •

  • 영ν–₯: Lint 검증이 μ‹€νŒ¨ν–ˆμ§€λ§Œ, 좜λ ₯에 λ‚˜νƒ€λ‚œ 파일이 이번 PR λ³€κ²½ 파일 밖에 μžˆμ–΄ κΈ°μ‘΄ μ‹€νŒ¨μΌ κ°€λŠ₯성이 ν½λ‹ˆλ‹€.

  • μ œμ•ˆ μˆ˜μ •: λ‘œμ»¬μ—μ„œ bun biome check .λ₯Ό μ‹€ν–‰ν•œ λ’€ μ•„λž˜ 첫 좜λ ₯λΆ€ν„° μˆ˜μ •ν•˜μ„Έμš”.
    src/app/(with-sidebar)/mypage/components/BarChart/view.tsx:8:3 lint/correctness/noUnusedImports FIXABLE ━━━━━━━━━━

    ! Several of these imports are unused.

    6 β”‚ CartesianGrid,
    7 β”‚ Label,

    8 β”‚ LabelList,
    β”‚ ^^^^^^^^^
    9 β”‚ type LabelProps,
    10 β”‚ ResponsiveContainer,

    i Unused imports might be the result of an incomplete refactoring.

    i Unsafe fix: Remove the unused imports.

    6   6 β”‚     CartesianGrid,
    7   7 β”‚     Label,
    8     β”‚ -   LabelList,
    9   8 β”‚     type LabelProps,
    

    10 9 β”‚ ResponsiveContainer,

src/app/(with-sidebar)/mypage/components/BarChart/view.tsx:34:7 lint/correctness/noUnusedVariables FIXABLE ━━━━━━━━━━

! This variable CustomColorLabel is unused.

32 β”‚ };
33 β”‚ 

34 β”‚ const CustomColorLabel = (props: LabelProps) => {
β”‚ ^^^^^^^^^^^^^^^^
35 β”‚ const fill = COLORS[(props.index ?? 0) % COLORS.length];
36 β”‚ return <Label {...props} fill={fill} />;

[output truncated]

  • 확인 방법: bun biome check .κ°€ exit code 0으둜 μ’…λ£Œλ˜λ©΄ ν•΄κ²°λœ κ²ƒμž…λ‹ˆλ‹€.

κ²½κ³ 

  • Lint μ‹€νŒ¨: exit code 1.
  • TypeScript νƒ€μž… 검사 μ‹€νŒ¨: exit code 2.
  • ν…ŒμŠ€νŠΈ μ‹€νŒ¨: exit code 1.
  • λΉŒλ“œ μ‹€νŒ¨: exit code 1.
  • OpenAI review skipped because OPENAI_API_KEY is missing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant