--- id: P-REINFORCE-AUTO-796BD7 category: "[[10_Wiki/πŸ’‘ Topics/Programming & Language]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - λͺ¨λ…Έλ ˆν¬(Monorepo) 기반 ꡬ성 쀑앙화" --- # [[λͺ¨λ…Έλ ˆν¬(Monorepo) 기반 ꡬ성 쀑앙화]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > λͺ¨λ…Έλ ˆν¬(Monorepo) 기반 ꡬ성 μ€‘μ•™ν™”λž€ λ‹€μˆ˜μ˜ μ• ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ‘΄μž¬ν•˜λŠ” λŒ€κ·œλͺ¨ μ €μž₯μ†Œμ—μ„œ ESLintλ‚˜ Prettier와 같은 λ„κ΅¬μ˜ μ„€μ • 파일 쀑볡을 μ œκ±°ν•˜κ³  단일 μ§„μ‹€ 곡급원(Single source of truth)을 λ§ˆλ ¨ν•˜λŠ” μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μž…λ‹ˆλ‹€ [1], [2]. μ€‘μ•™ν™”λœ μ„€μ • νŒ¨ν‚€μ§€λ₯Ό κ΅¬μΆ•ν•˜κ³  이λ₯Ό 루트 λ ˆλ²¨μ—μ„œ μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ν•˜μ—¬ 곡톡 κ·œμΉ™μ„ μ „μ—­μ μœΌλ‘œ 관리함과 λ™μ‹œμ— νŒ¨ν‚€μ§€ 고유의 μžμœ¨μ„±μ„ μœ μ§€ν•©λ‹ˆλ‹€ [3]. 이λ₯Ό 톡해 μ½”λ“œμ˜ μœ μ§€λ³΄μˆ˜μ„±μ„ κ·ΉλŒ€ν™”ν•˜κ³  개발 ν™˜κ²½μ˜ 일관성 및 검사 속도λ₯Ό 크게 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€ [4]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **문제점 (μ„€μ • κ΄€λ¦¬μ˜ μ•…λͺ½):** λŒ€κ·œλͺ¨ λͺ¨λ…Έλ ˆν¬ ν™˜κ²½μ—μ„œλŠ” Next.js μ•±, 라이브러리 νŒ¨ν‚€μ§€, 곡유 μ½”λ“œ λ“± 각 νŒ¨ν‚€μ§€λ§ˆλ‹€ `.eslintrc.json`κ³Ό `.eslintignore` 같은 μ„€μ • 파일이 μ€‘λ³΅λ˜μ–΄ μ‘΄μž¬ν•˜κΈ° μ‰½μŠ΅λ‹ˆλ‹€ [1], [5]. μ΄λŸ¬ν•œ μ„€μ •μ˜ νŒŒνŽΈν™”μ™€ λ³΅μ œλŠ” νŒ¨ν‚€μ§€ κ°„ κ·œμΉ™μ˜ 뢈일치λ₯Ό μ΄ˆλž˜ν•˜κ³  일괄적인 μ—…λ°μ΄νŠΈλ₯Ό μ–΄λ ΅κ²Œ λ§Œλ“€λ©°, 특히 λͺ¨λ…Έλ ˆν¬ λ£¨νŠΈμ—μ„œ `lint-staged`λ₯Ό μ‹€ν–‰ν•΄ λ³€κ²½λœ 파일만 κ²€μ‚¬ν•˜κ³ μž ν•  λ•Œ κ°œλ³„ νŒ¨ν‚€μ§€μ˜ κ·œμΉ™μ„ μ‘΄μ€‘ν•˜κΈ° μ–΄λ ΅κ²Œ λ§Œλ“œλŠ” 큰 단점이 μžˆμŠ΅λ‹ˆλ‹€ [1], [5]. - **해결을 μœ„ν•œ 3단계 μ•„ν‚€ν…μ²˜:** 1. **μ€‘μ•™ν™”λœ μ„€μ • νŒ¨ν‚€μ§€ (Centralised Config Package):** λͺ¨λ…Έλ ˆν¬ 내뢀에 λ³„λ„μ˜ νŒ¨ν‚€μ§€(예: `@repo/eslint-config`)λ₯Ό μƒμ„±ν•˜μ—¬ κΈ°λ³Έ(Base), Next.js, 라이브러리 μš©λ„μ˜ μ‘°ν•© κ°€λŠ₯ν•œ 사전 μ„€μ •(Preset)을 κ΅¬μ„±ν•©λ‹ˆλ‹€ [3], [6], [7]. 이λ₯Ό 톡해 핡심 κ·œμΉ™μ— λŒ€ν•œ 단일 μ§„μ‹€ 곡급원을 μ œκ³΅ν•˜λ©°, 이 νŒ¨ν‚€μ§€μ˜ κ·œμΉ™μ„ λ³€κ²½ν•˜λ©΄ λͺ¨λ“  νŒ¨ν‚€μ§€κ°€ μΌκ΄€λ˜κ²Œ ν˜œνƒμ„ λ°›μŠ΅λ‹ˆλ‹€ [2]. 2. **νŒ¨ν‚€μ§€ 레벨 μ„€μ •μ˜ μžμœ¨μ„±:** 각 νŒ¨ν‚€μ§€λŠ” μ΅œμ†Œν•œμ˜ μ„€μ • 파일(`eslint.config.mjs`)λ§Œμ„ κ°€μ Έ 쀑앙 νŒ¨ν‚€μ§€μ˜ 사전 섀정을 μž„ν¬νŠΈν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€ [2]. λ™μ‹œμ— νŒ¨ν‚€μ§€ νŠΉμ • μ˜€λ²„λΌμ΄λ“œ(override) κ·œμΉ™μ„ μΆ”κ°€ν•  수 μžˆμ–΄ 각 νŒ¨ν‚€μ§€μ˜ μžμœ¨μ„±μ„ 보μž₯ν•©λ‹ˆλ‹€ [2], [4]. 3. **루트 μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ μ„€μ • (Root Orchestration Config):** λͺ¨λ…Έλ ˆν¬ λ£¨νŠΈμ— 파일 κΈ€λ‘œλΈŒ νŒ¨ν„΄μ„ 기반으둜 μ μ ˆν•œ 사전 섀정에 λ§€ν•‘ν•˜λŠ” μ΅œμƒμœ„(root) μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ 섀정을 μƒμ„±ν•©λ‹ˆλ‹€ [8]. 이 계측은 νŒ¨ν‚€μ§€μ˜ 경계λ₯Ό μ‘΄μ€‘ν•˜μ—¬ κ°œλ³„ νŒ¨ν‚€μ§€μ— μ˜¬λ°”λ₯Έ κ·œμΉ™μ΄ ν• λ‹Ήλ˜λ„λ‘ μ œμ–΄ν•˜λŠ” 핡심 λΉ„κ²°(Secret Sauce)μž…λ‹ˆλ‹€ [8]. - **도ꡬ 톡합 및 κΈ°λŒ€ 효과:** - **λΉ λ₯΄κ³  μ •κ΅ν•œ 검사:** 루트 섀정이 λ„μž…λœ μƒνƒœμ—μ„œ Husky와 `lint-staged`λ₯Ό μ—°λ™ν•˜λ©΄, 컀밋 μ‹œ λ³€κ²½λœ νŒŒμΌλ§Œμ„ 식별해 루트 섀정이 ν•΄λ‹Ή νŒŒμΌμ„ μ μ ˆν•œ νŒ¨ν‚€μ§€ νŠΉμ • κ·œμΉ™μ— λ§€ν•‘ν•˜μ—¬ 검사(Linting)λ₯Ό μˆ˜ν–‰ν•©λ‹ˆλ‹€ [9]. - **캐싱을 ν†΅ν•œ μ„±λŠ₯ μ΅œμ ν™”:** Turborepo μ „μ—­ μ˜μ‘΄μ„±μœΌλ‘œ 쀑앙 ESLint ꡬ성 νŒ¨ν‚€μ§€λ₯Ό μ„€μ •ν•˜λ©΄ 섀정이 변경될 λ•Œλ§ˆλ‹€ μΊμ‹œλ₯Ό λ¬΄νš¨ν™”ν•˜κ³  린트 κ²°κ³Όλ₯Ό 효과적으둜 μΊμ‹±ν•˜μ—¬ 속도λ₯Ό 높일 수 μžˆμŠ΅λ‹ˆλ‹€ [9], [4]. - **μ½”λ“œλ² μ΄μŠ€ μ •ν™” 효과:** 쀑볡 μ„€μ • 파일 및 쒅속성을 μ‚­μ œν•¨μœΌλ‘œμ¨ `package.json` 라인 μˆ˜μ™€ 락(lock) 파일 크기가 ν˜„μ €νžˆ 쀄어듀고, 전체 λͺ¨λ…Έλ ˆν¬μ—μ„œ μ½”λ“œ 라인이 크게 κ°μ†Œν•˜λŠ” 순효과λ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€ [10]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[ESLint]], [[Prettier]], [[lint-staged]], [[Turborepo]] - **Projects/Contexts:** [[λŒ€κ·œλͺ¨ λͺ¨λ…Έλ ˆν¬ ν™˜κ²½μ˜ λ¦°νŒ… 및 ν¬λ§€νŒ… μ„€μ • ν˜„λŒ€ν™” ν”„λ‘œμ νŠΈ]] - **Contradictions/Notes:** 곡식적인 `lint-staged` λͺ¨λ…Έλ ˆν¬ κ°€μ΄λ“œμ—μ„œλŠ” μ΅œμƒμœ„μ— `lint-staged`λ₯Ό μ„€μΉ˜ν•˜κ³  각 νŒ¨ν‚€μ§€λ§ˆλ‹€ λ³„λ„μ˜ ꡬ성 νŒŒμΌμ„ 두어 고립되게 μ²˜λ¦¬ν•˜λΌκ³  μ•ˆλ‚΄ν•˜λ©° 루트 섀정이 ν•˜μœ„ 섀정을 μžλ™μœΌλ‘œ μ±„μ›Œμ£Όμ§€ μ•ŠλŠ”λ‹€κ³  λͺ…μ‹œν•˜μ§€λ§Œ [11], 루트 μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ ꡬ성을 λ„μž…ν•˜λ©΄ μ΅œμƒμœ„μ—μ„œ μ‹€ν–‰ν•˜λ©΄μ„œλ„ νŒ¨ν„΄ 맀핑을 톡해 각 νŒ¨ν‚€μ§€μ˜ κ·œμΉ™μ„ μ„±κ³΅μ μœΌλ‘œ λ³‘ν•©Β·μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [8], [12]. --- *Last updated: 2026-04-19* - Raw Source: [[00_Raw/2026-04-20/λͺ¨λ…Έλ ˆν¬(Monorepo) 기반 ꡬ성 쀑앙화.md]] ---