# [[SCSS (Sass)]] ## πŸ“Œ Brief Summary SCSS(Sassy CSS)λŠ” 일반적인 CSS에 ν”„λ‘œκ·Έλž˜λ° κΈ°λŠ₯을 μΆ”κ°€ν•˜μ—¬ ν™•μž₯ν•œ CSS μ „μ²˜λ¦¬κΈ°(Preprocessor) 언어인 Sass의 문법 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€. λ³€μˆ˜, 쀑첩, 믹슀인 λ“±μ˜ κ°•λ ₯ν•œ κΈ°λŠ₯을 μ œκ³΅ν•˜μ—¬ λ³΅μž‘ν•œ μŠ€νƒ€μΌμ„ λͺ¨λ“ˆν™”ν•˜κ³  μž¬μ‚¬μš© κ°€λŠ₯ν•˜κ²Œ λ§Œλ“€μ–΄ μœ μ§€λ³΄μˆ˜μ„±μ„ 크게 ν–₯μƒμ‹œν‚΅λ‹ˆλ‹€. λŒ€κ·œλͺ¨ ν”„λ‘ νŠΈμ—”λ“œ ν™˜κ²½μ—μ„œλŠ” κ³ λ„μ˜ μ»€μŠ€ν…€ λ””μžμΈ μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜κ±°λ‚˜, CSS Modules λ“±κ³Ό κ²°ν•©ν•˜μ—¬ μ „μ—­ λ„€μž„μŠ€νŽ˜μ΄μŠ€ μΆ©λŒμ„ λ°©μ§€ν•˜λŠ” μ‹€μ „ 섀계 λ„κ΅¬λ‘œ 널리 μ‚¬μš©λ©λ‹ˆλ‹€. ## πŸ“– Core Content * **핡심 κΈ°λŠ₯ 및 μ½”λ“œ λͺ¨λ“ˆν™”** SCSSλŠ” λ³€μˆ˜(Variables), 쀑첩(Nesting), 믹슀인(Mixins), ν•¨μˆ˜ 및 반볡문(Functions & loops)을 μ§€μ›ν•˜μ—¬ ν‰λ²”ν•œ CSS νŒŒμΌμ„ λ„˜μ–΄μ„œλŠ” 동적이고 체계적인 μŠ€νƒ€μΌλ§μ„ κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€ [1-3]. 특히 νŒŒμΌμ„ μž‘κ³  κ΄€λ¦¬ν•˜κΈ° μ‰¬μš΄ 쑰각(Partials)으둜 λ‚˜λˆ„κ³  `import`λ₯Ό 톡해 뢈러옴으둜써, μ½”λ“œ ꡬ쑰λ₯Ό κ°œμ„ ν•˜κ³  ν”„λ‘œμ νŠΈ λ‚΄ 쀑볡을 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€ [3]. BEM 방법둠과 κ²°ν•©ν•  경우, SCSS의 쀑첩 κΈ°λŠ₯을 톡해 BEM의 κΈ΄ 클래슀λͺ… μž‘μ„±μ„ λ‹¨μˆœν™”ν•˜κ³  의미둠적인 ꡬ쑰λ₯Ό κΉ”λ”ν•˜κ²Œ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [4, 5]. * **SCSS의 μž₯점과 λ„μž… 적합성** SCSSλŠ” μ™„μ „ν•œ λ””μžμΈ μ œμ–΄(Total design control)와 μœ μ—°μ„±μ„ μ œκ³΅ν•˜λ―€λ‘œ, ν”½μ…€ λ‹¨μœ„μ˜ μ •λ°€ν•œ κ΅¬ν˜„μ΄ ν•„μš”ν•˜κ±°λ‚˜ λ…μžμ μΈ λ””μžμΈ μ‹œμŠ€ν…œμ„ ꡬ좕해야 ν•˜λŠ” λ³΅μž‘ν•œ λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ— μ΄μƒμ μž…λ‹ˆλ‹€ [6-8]. λ˜ν•œ HTML 내뢀에 μœ ν‹Έλ¦¬ν‹° 클래슀λ₯Ό λŠ˜μ–΄λ†“μ§€ μ•Šκ³  κΉ”λ”ν•œ λ§ˆν¬μ—…μ„ μœ μ§€ν•˜κ³ μž ν•˜λŠ” νŒ€μ—κ²Œ μ ν•©ν•˜λ©° [6, 7], κΈ°μ‘΄ CSS에 이미 μ΅μˆ™ν•œ 개발자라면 ν•™μŠ΅ 곑선이 μ§§λ‹€λŠ” μž₯점도 μžˆμŠ΅λ‹ˆλ‹€ [1]. * **단점 및 ν•œκ³„μ ** SCSS의 λͺ¨λ“  연산은 λΉŒλ“œ νƒ€μž„(Build time)에 μ²˜λ¦¬λ˜λ―€λ‘œ λŸ°νƒ€μž„μ˜ μƒνƒœ 변화에 λ™μ μœΌλ‘œ λ°˜μ‘ν•˜κΈ° μ–΄λ ΅μŠ΅λ‹ˆλ‹€ [1]. 좔가적인 λΉŒλ“œ 도ꡬ와 컴파일 단계가 μš”κ΅¬λ˜μ–΄ ν”„λ‘œμ νŠΈ μ„€μ • λ³΅μž‘λ„μ™€ 컴파일 μ‹œκ°„μ΄ μ¦κ°€ν•©λ‹ˆλ‹€ [1, 9]. λͺ…ν™•ν•œ μ•„ν‚€ν…μ²˜λ‚˜ ꡬ쑰 없이 λ¬΄λΆ„λ³„ν•˜κ²Œ μž‘μ„±ν•  경우 관리가 μ–΄λ €μ›Œμ§€κ³  좜λ ₯λ˜λŠ” CSS 파일 크기가 λΉ„λŒ€ν•΄μ§ˆ 수 있으며, 본질적으둜 CSS의 μ „μ—­ μŠ€μ½”ν”„(Global scope) 문제λ₯Ό κ·ΈλŒ€λ‘œ μƒμ†λ°›μŠ΅λ‹ˆλ‹€ [1, 7, 10, 11]. * **μ‹€λ¬΄μ—μ„œμ˜ μ΅œμ‹  ν™œμš© μ „λž΅ (Tailwind 및 CSS Modulesμ™€μ˜ κ²°ν•©)** λŒ€κ·œλͺ¨ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ‹€μ „ μ„€κ³„μ—μ„œλŠ” SCSS의 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ 기법이 ν˜Όν•©λ˜μ–΄ μ‚¬μš©λ©λ‹ˆλ‹€. * **CSS Modulesμ™€μ˜ κ²°ν•©:** SCSS의 κ°•λ ₯ν•œ 문법을 μœ μ§€ν•˜λ©΄μ„œλ„ CSS Modulesλ₯Ό 톡해 클래슀λͺ…을 μžλ™μœΌλ‘œ κ³ μœ ν•˜κ²Œ λ³€ν™˜(Hashing)ν•˜μ—¬ μ „μ—­ μŠ€μ½”ν”„ μΆ©λŒμ„ ν•΄κ²°ν•˜λŠ” 방식이 맀우 μžμ—°μŠ€λŸ½κ³  κ°•λ ₯ν•œ μ•„ν‚€ν…μ²˜λ‘œ ν‰κ°€λ°›μŠ΅λ‹ˆλ‹€ [12-16]. * **Tailwind CSSμ™€μ˜ ν˜Όν•©:** λ ˆμ΄μ•„μ›ƒ κ΅¬μ„±μ—λŠ” Tailwind의 μœ ν‹Έλ¦¬ν‹° 클래슀λ₯Ό μ‚¬μš©ν•˜μ—¬ 개발 속도λ₯Ό 높이고, λ³΅μž‘ν•œ μ‚¬μš©μž μ •μ˜ μ»΄ν¬λ„ŒνŠΈλ‚˜ κ³ λ„μ˜ μ»€μŠ€ν…€ 둜직이 ν•„μš”ν•œ κ³³μ—λŠ” SCSSλ₯Ό μ‚¬μš©ν•˜λŠ” ν•˜μ΄λΈŒλ¦¬λ“œ 접근법도 μ‘΄μž¬ν•©λ‹ˆλ‹€ [11, 16]. SCSS 파일 λ‚΄λΆ€μ—μ„œ Tailwind의 `@apply` μ§€μ‹œμ–΄λ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ 곡유 λ””μžμΈ 토큰을 ν™œμš©ν•΄ 두 μ‹œμŠ€ν…œμ„ 톡합할 수 μžˆμŠ΅λ‹ˆλ‹€ [11, 17, 18]. ## πŸ”— Knowledge Connections - **Related Topics:** [[CSS Modules]], [[Tailwind CSS]], [[BEM]], CSS Preprocessors - **Projects/Contexts:** [[λ””μžμΈ μ‹œμŠ€ν…œ ꡬ좕]], λŒ€κ·œλͺ¨ ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜, μ»΄ν¬λ„ŒνŠΈ μŠ€νƒ€μΌλ§ μ „λž΅ - **Contradictions/Notes:** μ†ŒμŠ€μ— λ”°λ₯΄λ©΄ SCSSλŠ” λ³΅μž‘ν•œ 둜직과 μ»€μŠ€ν…€ λ””μžμΈμ„ μœ„ν•΄ μ‹€λ¬΄μ—μ„œ μ—¬μ „νžˆ μœ νš¨ν•˜μ§€λ§Œ, 졜근 μ΅œμ‹  바닐라 CSSκ°€ 쀑첩(Nesting)κ³Ό 같은 κΈ°λŠ₯을 기본적으둜 μ§€μ›ν•˜κ²Œ λ˜λ©΄μ„œ SCSS 특유의 좔가적인 λΉŒλ“œ(Compile) 단계λ₯Ό κ±°μΉ  ν•„μš”κ°€ μ—†λ‹€κ³  μ£Όμž₯ν•˜λ©° 순수 CSS둜 νšŒκ·€ν•˜λŠ” μ˜κ²¬λ„ μ‘΄μž¬ν•©λ‹ˆλ‹€ [19, 20]. λ˜ν•œ, λŸ°νƒ€μž„ μ˜€λ²„ν—€λ“œκ°€ μ—†λŠ” μœ ν‹Έλ¦¬ν‹° μš°μ„ (Tailwind)μ΄λ‚˜ CSS-in-JS의 λΆ€μƒμœΌλ‘œ JS μƒνƒœκ³„ λ‚΄μ—μ„œ SCSS의 인기가 μ˜ˆμ „λ³΄λ‹€ κ°μ†Œν–ˆλ‹€λŠ” 지적도 μžˆμŠ΅λ‹ˆλ‹€ [1]. --- *Last updated: 2026-04-26*