개인 프로젝트 스택을 고민하면서 CSS 전처리기의 개념을 파악하고, Sass와 style-components에 대해 알아보고 싶었기에 두 가지를 중심으로 궁금했던 점을 알아보는 글
A CSS preprocessor is a program that lets you generate CSS from the preprocessor's own unique syntax.
CSS 전처리기는 전처리기 고유의 문법을 통해 CSS를 생성하게 해주는 프로그램이다.
대부분의 전처리기는 순수 CSS에 없는 기능을 갖고 있으며, 이 기능들 덕분에 CSS 구조가 더 읽기 쉬워지고, 유지보수도 더 용이해진다.
가장 널리 쓰이는 CSS 전처리기에는 Sass, LESS, Stylus, PostCSS 등이 있다.
공식 문서에서 styled-components
를 하나의 단어로 정의하고 있지는 않으며, 다른 자료를 보면 이정도로 설명하고 있다.
Styled-components is a CSS-in-JS styling framework...
styled-components는 CSS-in-JS 스타일링 프레임워크이다.
(또다른 CSS-in-JS 라이브러리/프레임워크 중에는 emotion
이 있다.)
Styled Components uses the CSS preprocessor stylis, supporting SCSS-like syntax for automatically nesting styles.
Styled Components는 stylis라는 CSS 전처리기를 사용한다. stylis는 자동 중첩 스타일에 필요한 SCSS 유사 문법을 지원한다.
그러므로 styled-components 자체로 CSS 전처리기라고 정의할 수는 없어보인다.
🔗 Benefits of using styled-components in React
🔗 Styled Components, Styled Systems and How They Work
Sass
와 SCSS
는 Sass가 제공하는 두가지 문법이다.
두 문법은 기능은 거의 같지만 생김새가 다르며, SCSS가 더 최신이고 더 좋은 문법으로 여겨진다.
Sass
는 Haml이라는 다른 전처리기에서 파생된 것으로 Ruby 유사 문법을 사용한다. CSS 문법보다 더 짧고 타이핑이 쉽다.
SCSS
는 Sass와 CSS 문법 간의 갭을 줄이기 위해 CSS와 훨씬 더 비슷한 문법을 사용한다. 그리고 CSS와 완전히 호환되어 .css 파일을 .scss로 바꿔도 똑같이 작동한다. CSS 문법을 따르므로 익히기 쉽다.
🔗 Sass vs Tailwind CSS vs Styled-components: A CSS methodology comparison
각각의 장단점이 있는데다가 직접 사용한 경험이 없는 상태에서 최적의 선택을 하는 것은 불가능 하다고 판단되므로, 개인 프로젝트라면 고민에 너무 많은 시간을 들이지 말고 우선 하나라도 먼저 사용해보는 것이 좋겠다는 생각이 든다. 이후 내가 직접 느낀 장단점을 다시 정리해보는 것이 좋겠다.