Files
2nd/01_Archive/2026-04-20/Turborepo 환경 구성.md

3.7 KiB

id, category, confidence_score, tags, last_reinforced, github_commit
id category confidence_score tags last_reinforced github_commit
P-REINFORCE-AUTO-C5884C 10_Wiki/💡 Topics/Programming & Language 0.90
auto-reinforced
2026-04-20 [P-Reinforce] Continuous Worker - Turborepo 환경 구성

Turborepo 환경 구성

📌 한 줄 통찰 (The Karpathy Summary)

Turborepo 모노레포 환경에서 ESLint, Prettier, lint-staged를 효율적으로 관리하기 위한 구성 방법입니다 [1]. 여러 패키지에 분산된 중복 설정과 규칙의 불일치 문제를 해결하기 위해 고안되었습니다 [1, 2]. 중앙 집중식 설정 패키지와 루트 오케스트레이션(Root Orchestration)을 결합하여, 각 패키지의 규칙을 존중하면서도 빠르고 확장 가능한 린팅 환경을 제공합니다 [3, 4].

📖 구조화된 지식 (Synthesized Content)

  • 중앙 집중식 구성 패키지 구축: 모노레포 내에 별도의 설정 패키지(예: @repo/eslint-config)를 생성하여 Base, Next.js, Library용으로 조합 가능한 프리셋(preset) 설정을 제공합니다 [5, 6]. 이 패키지는 ESLint 9의 평면 구성(flat config) 형식을 사용하며, 전체 모노레포의 린팅 규칙을 제어하는 단일 진실 공급원(Single source of truth) 역할을 합니다 [5, 7].
  • 패키지별 자율성 보장: 개별 패키지에는 최소한의 eslint.config.mjs 파일만 남겨두고 중앙 패키지의 프리셋을 임포트하여 사용합니다 [7]. 이를 통해 전체 코어 규칙을 일관되게 관리하면서도, 필요한 경우 특정 패키지에서 개별적인 규칙 오버라이드(override)를 수행할 수 있는 자율성을 얻을 수 있습니다 [7, 8].
  • 루트 오케스트레이션 (Root Orchestration): 모노레포 루트에 위치한 eslint.config.mjs에서 파일 패턴(glob 패턴)을 활용해 각 패키지를 적절한 설정에 매핑합니다 [9]. 이는 lint-staged와 Husky 같은 도구가 모노레포 루트에서 실행될 때 각 패키지의 경계와 고유 린팅 규칙을 정확하게 준수하도록 보장하는 핵심 설정입니다 [4, 9].
  • Husky 및 lint-staged 통합: 루트 package.json 파일과 Husky의 pre-commit 훅을 연동하여, 코드가 커밋될 때 루트 설정에 따라 변경된 파일만 효율적으로 린팅하도록 구성합니다 [10].
  • Turborepo 캐시 무효화 적용: turbo.json 설정 내 전역 의존성(globalDependencies)에 ESLint 설정 패키지를 등록합니다 [10]. 이를 통해 중앙의 린팅 설정이 변경될 때마다 Turborepo가 모든 관련 패키지의 캐시를 정확히 무효화(invalidate)하도록 처리합니다 [10].

⚠️ 모순 및 업데이트 (Contradictions & RL Update)

  • 과거 데이터와의 충돌: 자동화 엔진에 의해 매핑된 지식으로, 추후 정밀 검증 필요.
  • 정책 변화: Programming & Language 분야의 자동 자산화 수행.

🔗 지식 연결 (Graph)

  • Related Topics: ESLint, Prettier, lint-staged, Husky, Monorepo
  • Projects/Contexts: Turborepo 기반 다중 패키지 프로젝트의 린팅 및 코드 포매팅 자동화 파이프라인 구축
  • Contradictions/Notes: 소스는 ESLint 9의 평면 구성 형식을 기준으로 최적의 환경 구성법을 제안하고 있습니다. 만약 ESLint 8 환경을 이용할 경우에는 eslint.config.mjs 대신 .eslintrc.js를 사용하고 ES 모듈 대신 CommonJS를 사용해야 하는 등 이전 형식에 맞춘 구조적 조정이 별도로 필요합니다 [11].

Last updated: 2026-04-19

  • Raw Source: 00_Raw/2026-04-20/Turborepo 환경 구성.md