# [[SCSS|SCSS]] ## πŸ“Œ Brief Summary SCSS(Sassy CSS)λŠ” 일반 CSS에 ν”„λ‘œκ·Έλž˜λ° κΈ°λŠ₯을 μΆ”κ°€ν•˜μ—¬ λŠ₯λ ₯을 ν™•μž₯ν•˜λŠ” CSS μ „μ²˜λ¦¬κΈ°(Preprocessor)인 Sass의 ν•œ ꡬ문(Syntax)μž…λ‹ˆλ‹€ [1, 2]. λ³€μˆ˜, 쀑첩(Nesting), 믹슀인(Mixins), ν•¨μˆ˜ λ“±μ˜ κΈ°λŠ₯을 μ œκ³΅ν•˜μ—¬ 보닀 효율적이고 μœ μ§€λ³΄μˆ˜κ°€ μš©μ΄ν•œ μŠ€νƒ€μΌμ‹œνŠΈλ₯Ό μž‘μ„±ν•  수 있게 ν•΄μ€λ‹ˆλ‹€ [1-3]. μ„Έλ°€ν•œ λ§žμΆ€ν˜• λ””μžμΈ μ‹œμŠ€ν…œκ³Ό λ³΅μž‘ν•œ μŠ€νƒ€μΌ 둜직이 ν•„μš”ν•œ λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ—μ„œ κ°•λ ₯ν•œ μ œμ–΄λ ₯을 μ œκ³΅ν•©λ‹ˆλ‹€ [4]. ## πŸ“– Core Content * **핡심 κΈ°λŠ₯ 및 μž₯점** * **λ³€μˆ˜(Variables) 및 믹슀인(Mixins):** 색상, 폰트 크기, 간격 λ“±μ˜ 값을 λ³€μˆ˜λ‘œ μ €μž₯ν•˜μ—¬ μž¬μ‚¬μš©ν•  수 있으며, 믹슀인과 ν•¨μˆ˜λ₯Ό 톡해 λ§€κ°œλ³€μˆ˜κ°€ μžˆλŠ” μ½”λ“œ μŠ€λ‹ˆνŽ«μ΄λ‚˜ 동적인 값을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€ [1, 3, 5]. * **μ½”λ“œ 쑰직화:** HTML ꡬ쑰λ₯Ό λ°˜μ˜ν•˜λŠ” 쀑첩(Nesting)을 μ§€μ›ν•˜λ©°, λΆ€λΆ„ 파일(partials)κ³Ό importλ₯Ό ν™œμš©ν•΄ μŠ€νƒ€μΌμ‹œνŠΈλ₯Ό μž‘κ³  κ΄€λ¦¬ν•˜κΈ° μ‰¬μš΄ λͺ¨λ“ˆλ‘œ λ‚˜λˆŒ 수 μžˆμ–΄ μ½”λ“œμ˜ 가독성과 μœ μ§€λ³΄μˆ˜μ„±μ΄ ν–₯μƒλ©λ‹ˆλ‹€ [1, 6]. BEM 넀이밍 μ»¨λ²€μ…˜κ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ κΈ΄ 클래슀 이름 μž‘μ„±μ„ λ‹¨μˆœν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [7]. * **μ„€κ³„μ˜ μœ μ—°μ„±:** ν”½μ…€ νΌνŽ™νŠΈ(pixel-perfect)ν•œ μš”κ΅¬μ‚¬ν•­μ„ μΆ©μ‘±ν•˜κ±°λ‚˜ μœ λ‹ˆν¬ν•œ λ§žμΆ€ν˜• λ””μžμΈ μ‹œμŠ€ν…œμ„ ꡬ좕해야 ν•  λ•Œ, κΉ¨λ—ν•œ HTML λ§ˆν¬μ—…(μœ ν‹Έλ¦¬ν‹° 클래슀 배제)을 μœ μ§€ν•˜λ©΄μ„œλ„ μ™„λ²½ν•œ λ””μžμΈ μ œμ–΄κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€ [4, 8]. * **단점 및 ν•œκ³„μ ** * **λΉŒλ“œ 쒅속성 및 μŠ€μ½”ν”„ 문제:** SCSSλŠ” μ»΄νŒŒμΌλŸ¬λ‚˜ λΉŒλ“œ 도ꡬ 섀정이 ν•„μš”ν•˜λ©° 컴파일 μ‹œκ°„μ΄ μΆ”κ°€λ©λ‹ˆλ‹€ [9, 10]. λͺ¨λ“  μ²˜λ¦¬κ°€ λΉŒλ“œ νƒ€μž„μ— λ°œμƒν•˜λ―€λ‘œ λŸ°νƒ€μž„ μƒνƒœ 변화에 λ™μ μœΌλ‘œ λ°˜μ‘ν•  수 μ—†μŠ΅λ‹ˆλ‹€ [11]. * **κΈ€λ‘œλ²Œ μŠ€μ½”ν”„(Global Scope):** 일반 CSS와 λ§ˆμ°¬κ°€μ§€λ‘œ μŠ€μ½”ν”„κ°€ μ „μ—­μ μ΄λ―€λ‘œ, 클래슀 이름 μΆ©λŒμ„ 막기 μœ„ν•΄μ„œλŠ” BEMκ³Ό 같은 넀이밍 κ·œμΉ™μ„ μ—„κ²©ν•˜κ²Œ μ§€ν‚€κ±°λ‚˜ [[CSS Modules|CSS Modules]]와 κ²°ν•©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [11-13]. * **λ³΅μž‘μ„± 증가:** ꡬ쑰λ₯Ό μ²΄κ³„μ μœΌλ‘œ μž‘μ§€ μ•ŠμœΌλ©΄ ν”„λ‘œμ νŠΈκ°€ 컀질수둝 μ½”λ“œλ₯Ό κ΄€λ¦¬ν•˜κΈ° νž˜λ“€μ–΄μ§€κ³  μ΅œμ ν™”ν•˜μ§€ μ•Šμ„ 경우 CSS 파일 크기가 λΉ„λŒ€ν•΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€ [9, 14]. 졜근 JS μƒνƒœκ³„μ—μ„œλŠ” 이런 이유둜 인기가 λ‹€μ†Œ ν•˜λ½ν•˜λŠ” 좔세도 μžˆμŠ΅λ‹ˆλ‹€ [11]. * **[[Tailwind CSS|Tailwind CSS]]μ™€μ˜ 비ꡐ 및 κ²°ν•©(Hybrid Approach)** * Tailwind CSSλŠ” μœ ν‹Έλ¦¬ν‹° 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ λΉ λ₯Έ 개발과 일관성을 보μž₯ν•˜μ§€λ§Œ HTML이 μ§€μ €λΆ„ν•΄μ§€λŠ” 단점이 μžˆλŠ” 반면, SCSSλŠ” μŠ€νƒ€μΌ μž‘μ„±μ— μ‹œκ°„μ€ 더 걸렀도 μ™„μ „ν•œ λ””μžμΈ μ œμ–΄μ™€ κΉ”λ”ν•œ λ§ˆν¬μ—…μ„ μ œκ³΅ν•©λ‹ˆλ‹€ [4, 8, 15]. * 두 κ°€μ§€μ˜ μž₯점을 μ·¨ν•˜κΈ° μœ„ν•΄ SCSS λ‚΄μ—μ„œ Tailwind의 `@apply` λ””λ ‰ν‹°λΈŒλ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ λ””μžμΈ 토큰(λ³€μˆ˜)을 κ³΅μœ ν•˜λŠ” ν•˜μ΄λΈŒλ¦¬λ“œ 방식을 채택할 수 μžˆμŠ΅λ‹ˆλ‹€ [9, 16]. * κ·ΈλŸ¬λ‚˜ 두 μ‹œμŠ€ν…œμ„ ν˜Όν•©ν•˜λ©΄ λΉŒλ“œ 섀정이 λ³΅μž‘ν•΄μ§€κ³ , ν•™μŠ΅ 곑선이 κ°€νŒŒλΌμ§€λ©°, λΆˆν•„μš”ν•œ λ²ˆλ“€ 크기 증가(Bloat)κ°€ λ°œμƒν•  수 μžˆλ‹€λŠ” 단점이 μžˆμŠ΅λ‹ˆλ‹€ [10, 16, 17]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Tailwind CSS|Tailwind CSS]], CSS Modules, [[BEM|BEM]] - **Projects/Contexts:** λŒ€κ·œλͺ¨ ν”„λ‘ νŠΈμ—”λ“œ μ½”λ“œλ² μ΄μŠ€, λ³΅μž‘ν•œ μ»€μŠ€ν…€ UI μ»΄ν¬λ„ŒνŠΈ 개발, ν”½μ…€ νΌνŽ™νŠΈ(pixel-perfect) λ””μžμΈ μš”κ΅¬μ‚¬ν•­μ΄ μžˆλŠ” ν”„λ‘œμ νŠΈ, λ ˆκ±°μ‹œ μŠ€νƒ€μΌ μ‹œμŠ€ν…œ 톡합 [4]. - **Contradictions/Notes:** SCSSλŠ” κ°•λ ₯ν•˜μ§€λ§Œ 본질적인 μ „μ—­ μŠ€μ½”ν”„(Global scope) 문제λ₯Ό κ°€μ§€κ³  μžˆμ–΄ 넀이밍 좩돌 μœ„ν—˜μ΄ μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ λ§Žμ€ 싀무 νŒ€λ“€μ€ SCSS 단독 μ‚¬μš©λ³΄λ‹€λŠ” `SCSS Modules`의 ν˜•νƒœλ‘œ CSS Modules κΈ°λŠ₯κ³Ό κ²°ν•©ν•˜μ—¬ μ»΄ν¬λ„ŒνŠΈ λ‹¨μœ„μ˜ 둜컬 μŠ€μ½”ν”„λ₯Ό ν™•λ³΄ν•˜λŠ” 방식을 μ„ ν˜Έν•©λ‹ˆλ‹€ [13, 18, 19]. --- *Last updated: 2026-04-26*