Styled-Components vs Tailwind CSS: 성능과 개발 효율성 비교

jsonLee·2023년 11월 18일
3
post-thumbnail

런타임 성능

styled-components는 CSS-in-JS 라이브러리로, 런타임에 JavaScript를 사용하여 스타일을 적용한다. 이는 추가적인 JavaScript 계산이 필요함을 의미하며, 성능에 영향을 줄 수 있다. Tailwind CSS는 정적 CSS 클래스를 사용하며, 이는 브라우저가 스타일을 더 빠르게 해석할 수 있게 해준다.

번들 크기

styled-components는 스타일을 JavaScript 객체로 관리하여 번들 크기가 커질 수 있다. Tailwind CSS는 많은 유틸리티 클래스를 생성하지만, PurgeCSS를 사용해 사용하지 않는 스타일을 제거하면 번들 크기를 줄일 수 있다

객체로 관리한다?

예를 들어, 버튼에 스타일을 적용하고 싶다고 가정해 보자. styled-components를 사용하면 다음과 같이 작성할 수 있다

import styled from 'styled-components';

const StyledButton = styled.button`
  background-color: blue;
  color: white;
  padding: 10px 20px;
  border: none;
  border-radius: 5px;
  cursor: pointer;

  &:hover {
    background-color: darkblue;
  }
`;

export default StyledButton;

위 코드에서 styled.button은 JavaScript 함수이다. 이 함수에 CSS 규칙을 문자열로 전달하면, 이 규칙을 적용하는 새로운 React 버튼 컴포넌트(StyledButton)가 생성된다. 이 컴포넌트는 일반 React 컴포넌트처럼 사용할 수 있으며, 위에서 정의한 스타일을 자동으로 적용받는다.

이는 JavaScript를 통해 스타일이 처리되고 런타임에 적용되므로, 브라우저가 이를 해석하는데 추가적인 계산이 필요할 수 있다.

개발 시간 및 유연성

styled-components는 JavaScript와 CSS의 결합을 통해 유연한 스타일링을 가능하게 한다. Tailwind CSS는 클래스 기반으로 빠른 UI 구성을 지원하지만, 매우 특정한 스타일링이 필요한 경우에는 제한적일 수 있다.

캐싱 및 최적화

Tailwind CSS의 정적 스타일 시트는 브라우저 캐싱에 유리하며, 빠른 로딩 시간을 제공한다. styled-components는 런타임에 스타일을 생성하기 때문에 캐싱 전략이 어렵다.

서버 사이드 렌더링 (SSR)

styled-components는 서버에서 스타일을 생성하고 클라이언트에 보내는 반면, Tailwind CSS는 정적 CSS를 사용하여 SSR 환경에서도 효율적이라고 한다.

결론

종합적으로, styled-components는 동적 스타일링과 JavaScript 통합에 강점이 있지만, 런타임 성능, 번들 크기, SSR 처리 측면에서 고려할 점이 있다. Tailwind CSS는 빠른 로딩 시간, 런타임 성능, 브라우저 캐싱 측면에서 이점이 있다

Reference

https://www.dhiwise.com/post/styled-components-vs-tailwind-css-finding-the-perfect-style-for-your-react-project

profile
풀스택 개발자

0개의 댓글