--- id: [[P-Reinforce|P-Reinforce]]-AUTO-560F29 category: Dev confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - Prettier" --- # [[Prettier|Prettier]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > PrettierλŠ” κ°œλ°œμžκ°€ μž‘μ„±ν•œ μ†ŒμŠ€ μ½”λ“œλ₯Ό μΌκ΄€λœ μŠ€νƒ€μΌλ‘œ μžλ™ λ³€ν™˜ν•΄ μ£ΌλŠ” '의견이 반영된(opinionated)' μ½”λ“œ 포맷터(Formatter)μž…λ‹ˆλ‹€ [1, 2]. μ½”λ“œμ˜ λ‘œμ§μ΄λ‚˜ κ΅¬ν˜„ λ°©μ‹μ—λŠ” κ΄€μ—¬ν•˜μ§€ μ•Šκ³ , 쀄 λ°”κΏˆ, 곡백, λ“€μ—¬μ“°κΈ° λ“± μ‹œκ°μ μ΄κ³  ꡬ쑰적인 λ·°μ—λ§Œ μ΄ˆμ μ„ λ§žμΆ”μ–΄ μ½”λ“œλ₯Ό μž¬μž‘μ„±ν•©λ‹ˆλ‹€ [2-4]. 이λ₯Ό 톡해 νŒ€μ› κ°„μ˜ μ½”λ”© μ»¨λ²€μ…˜μ„ ν†΅μΌν•˜μ—¬ μ½”λ“œ 리뷰 μ‹œ λΆˆν•„μš”ν•œ μŠ€νƒ€μΌ λ…ΌμŸμ„ μ—†μ• κ³ , κ°œλ°œμžκ°€ μ½”λ“œμ˜ 핡심 λ‘œμ§μ— λ”μš± 집쀑할 수 μžˆλ„λ‘ λ•μŠ΅λ‹ˆλ‹€ [5, 6]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **μ£Όμš” μ—­ν•  및 νŠΉμ§•:** 2016년에 λ“±μž₯ν•œ PrettierλŠ” μ½”λ“œκ°€ 예쁘게 보이도둝 λ§Œλ“œλŠ” 데 쀑점을 λ‘” λ„κ΅¬λ‘œ, 변경이 ν•„μš”ν•œ λΆ€λΆ„λ§Œ μˆ˜μ •ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μ„€μ •λœ κ·œμΉ™μ— 따라 μ½”λ“œ μ „μ²΄μ˜ ꡬ쑰적 λ·°λ₯Ό μ™„μ „νžˆ μƒˆλ‘œ μž‘μ„±ν•©λ‹ˆλ‹€ [2, 4]. * **νŒ€ ν˜‘μ—… 및 생산성 ν–₯상:** Prettierλ₯Ό λ„μž…ν•˜λ©΄ κ°œλ°œμžκ°€ μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ μŠ€νƒ€μΌμ— λŒ€ν•œ 고민을 덜 수 있고, μ €μž₯ μ‹œ μžλ™μœΌλ‘œ μΌκ΄€λœ 포맷으둜 λ³€ν™˜λ©λ‹ˆλ‹€ [6]. μ΄λŠ” νŒ€μ› κ°„ μ½”λ“œ μŠ€νƒ€μΌ 차이둜 μΈν•œ ν˜Όλž€μ„ μ΅œμ†Œν™”ν•˜κ³ , 리뷰 κ³Όμ •μ˜ νš¨μœ¨μ„±μ„ 크게 μ¦κ°€μ‹œν‚΅λ‹ˆλ‹€ [6]. * **μ„€μ • 및 관리 방법:** 일반적으둜 ν”„λ‘œμ νŠΈ 루트 κ²½λ‘œμ— `.prettierrc` (λ˜λŠ” `.prettierrc.json`) νŒŒμΌμ„ μƒμ„±ν•˜μ—¬ κ·œμΉ™μ„ μ •μ˜ν•˜λ©°, ν¬λ§·νŒ…μ—μ„œ μ œμ™Έν•  νŒŒμΌμ€ `.prettierignore`에 μ§€μ •ν•©λ‹ˆλ‹€ [5, 7, 8]. μ£Όμš” μ„€μ • μ˜΅μ…˜μœΌλ‘œλŠ” ν•œ μ€„μ˜ μ΅œλŒ€ 길이λ₯Ό μ •ν•˜λŠ” `printWidth`, νƒ­ λ„ˆλΉ„λ₯Ό μ •ν•˜λŠ” `tabWidth`, μ„Έλ―Έμ½œλ‘  μ‚¬μš© μ—¬λΆ€λ₯Ό μ •ν•˜λŠ” `semi`, μž‘μ€λ”°μ˜΄ν‘œ μ‚¬μš©μ„ κ²°μ •ν•˜λŠ” `singleQuote` 등이 μžˆμŠ΅λ‹ˆλ‹€ [9, 10]. * **[[ESLint|ESLint]]μ™€μ˜ 톡합 및 좩돌 λ°©μ§€:** μ½”λ“œ 퀄리티λ₯Ό κ²€μ‚¬ν•˜λŠ” Linter 도ꡬ인 ESLint에도 일뢀 ν¬λ§·νŒ… κΈ°λŠ₯이 μ‘΄μž¬ν•˜μ—¬, Prettier와 ν•¨κ»˜ μ‚¬μš©ν•  경우 κ·œμΉ™ 좩돌이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€ [11]. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ `[[eslint-config-prettier|eslint-config-prettier]]` νŒ¨ν‚€μ§€λ₯Ό μ‚¬μš©ν•˜μ—¬ Prettier와 κ²ΉμΉ˜λŠ” ESLint의 ν¬λ§·νŒ… κ·œμΉ™μ„ λ„λŠ” 방법이 κ°€μž₯ κ°•λ ₯히 ꢌμž₯λ©λ‹ˆλ‹€ [11, 12]. μΆ”κ°€λ‘œ `[[eslint-plugin-prettier|eslint-plugin-prettier]]`λ₯Ό μ„€μΉ˜ν•˜μ—¬ Prettier의 ν¬λ§·νŒ… 였λ₯˜λ₯Ό ESLint의 였λ₯˜λ‘œ 톡합 좜λ ₯ν•˜κ²Œ λ§Œλ“€ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€ [11, 13]. * **λ³΄μ•ˆ 취약점 (곡급망 곡격) 사둀:** 2025λ…„ 7μ›”, Prettier와 ESLint의 μΆ©λŒμ„ λ°©μ§€ν•˜λŠ” ν•„μˆ˜ 라이브러리인 `eslint-config-prettier` νŒ¨ν‚€μ§€κ°€ 곡급망 곡격(CVE-2025-54313)의 ν‘œμ μ΄ λ˜μ—ˆμŠ΅λ‹ˆλ‹€ [14, 15]. κ΄€λ¦¬μžμ˜ νƒˆμ·¨λœ npm 토큰을 톡해 μ•…μ„± 버전이 λ°°ν¬λ˜μ—ˆμœΌλ©°, μ΄λŠ” 주둜 Windows μ‹œμŠ€ν…œμ˜ 개발자 κΈ°κΈ°λ‚˜ CI ν˜ΈμŠ€νŠΈμ—μ„œ 원격 μ½”λ“œ μ‹€ν–‰(RCE)을 μ‹œλ„ν•˜λ„λ‘ μ„€κ³„λœ μ•…μ„± μ„€μΉ˜ 슀크립트λ₯Ό ν¬ν•¨ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€ [16]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[ESLint|ESLint]], Formatter - **Projects/Contexts:** [[eslint-config-prettier|eslint-config-prettier]], eslint-plugin-prettier, husky, [[lint-staged|lint-staged]] - **Contradictions/Notes:** ESLint와 Prettierλ₯Ό 톡합할 λ•Œ μ‚¬μš©ν•˜λŠ” `eslint-plugin-prettier`에 λŒ€ν•΄ 의견이 κ°ˆλ¦½λ‹ˆλ‹€. μ†ŒμŠ€ [17]λŠ” ν•΄λ‹Ή ν”ŒλŸ¬κ·ΈμΈμ„ μ‚¬μš©ν•˜λ©΄ ν•˜λ‚˜μ˜ μ„€μ • νŒŒμΌμ—μ„œ 관리할 수 있고 μžλ™ μˆ˜μ •(`--fix`)이 νŽΈλ¦¬ν•˜μ—¬ μ„ ν˜Έν•œλ‹€κ³  λ°νžˆμ§€λ§Œ, μ†ŒμŠ€ [18]μ—μ„œλŠ” 에디터에 λΆˆν•„μš”ν•œ λΉ¨κ°„ 밑쀄이 κ³Όλ„ν•˜κ²Œ 생기고 단독 μ‚¬μš©λ³΄λ‹€ 속도가 λŠλ €μ§„λ‹€λŠ” 이유둜 곡식 λ¬Έμ„œμ—μ„œλ„ ꢌμž₯ν•˜μ§€ μ•ŠλŠ”λ‹€λ©° ν”ŒλŸ¬κ·ΈμΈ μ‚¬μš©μ„ λ°°μ œν•˜λŠ” 방식을 μ±„νƒν•©λ‹ˆλ‹€. --- *Last updated: 2026-04-18* ---