CSS Preprocessor(CSS 전처리기) : CSS를 작성할 때 사용하는 특별한 도구
기존 CSS에서는 지원하지 않는 특별한 기능이 포함되어 있음.
전처리기를 사용하면 복잡한 CSS를 더 효율적으로 작성하고 유지보수하기 쉽게 만들수 있음.
특별한 기능 Enhanced CSS (CSS 확장 기능 사용): 코드를 간결하고 가독성 좋게 만들어줌.
믹스인(Mixin): 반복되는 CSS 코드를 재사용할 수 있게 하는 기능.
중첩 셀렉터(Nesting Selector) : CSS를 계층적으로 작성할 수 있는 기능.
상속 셀렉터(Inheritance Selector) : 특정 스타일을 다른 곳에서 상속받아 사용할 수 있는 기능.
CSS 전처리기는 기본적으로 Transpiler(트랜스파일러) 역할을 한다.
이를 통해 확장된 CSS문법(SASS, LESS emd)을 표준 CSS로 변환, 여러 파일(CSS 파일)을 병합(합치기) 할수 있는 기능도 제공(파일의 구조를 효율적으로 관리)
따라서 번들러 역할은 직접적으로 하지 않지만, 일부 전처리 또는 도구(Sass와 Webpack 조합 등)가 유사한 파일 합치기 기능을 제공.
Bundler라고 하기엔 애매하다!!!
Bundler(번들러)는 기본적으로 webpack과 같이 포괄적인 파일관리(CSS뿐만 아니라, JS, 이미지, 폰트 등 모든 자원)를 하기 위한 도구이다.
잠깐! 프레임워크(Framework)란?
소프트웨어 개발을 위한 뼈대 또는 기본 구조를 제공하는 도구입니다.
특정 유형의 애플리케이션을 더 빠르고 효율적으로 개발할 수 있도록 미리 정의된 코드, 규칙, 설계 패턴, 기능 등을 포함.
CSS Preprocessor : SASS, SCSS
CSS Framework
CSS 프레임워크는 스타일링을 위한 유틸리티 클래스를 제공합니다.
사용자가 필요한 스타일을 조합하여 자신만의 디자인을 구축할 수 있습니다.
UI Framework
UI 프레임워크는 미리 정의된 디자인 시스템과 UI 컴포넌트(버튼, 카드, 모달 등)를 제공합니다.
사용자가 HTML과 CSS를 새로 작성하지 않아도, 이미 설계된 구성 요소를 바로 가져다 쓸 수 있습니다.
참고 : 그렇기 때문에 CSS Framework 와 UI Framework 를 합쳐 사용하지 않는다
- 피치못할 상황이 아니라면 Tailwind CSS + Material UI 하지 말것
- 디자인 시스템 충돌 발생 : CSS 프레임워크와 UI 프레임워크는 각자의 디자인 시스템을 사용. 이를 혼합하면 일관성 있는 스타일을 유지하기 어려울 수 있음.(물론 그렇게 사용해야할수밖에 없을시 공식 문서에서 방법을 제공)
- 복잡성 증가 : CSS 프레임워크로 스타일을 직접 작성하면서 UI 프레임워크의 컴포넌트를 사용하는 경우, 코드가 복잡해지고 유지보수가 어려워질 수 있음.