[CSS] CSS-in-JS의 종류와 장단점

2024. 7. 13. 00:27· HTML & CSS
목차
  1. 🐝 정의
  2. 🐝 장단점

🐝 정의

CSS 파일을 별도로 작성하지 않고 자바스크립트 파일 안에서 CSS를 작성하는 방식입니다. 자바스크립트 코드가 실행되며 CSS 코드가 생성됩니다.

CSS-in-JS 라이브러리의 종류는 다음과 같습니다.

  • Styled-Components
  • emotion
  • JSS-React
  • glamorous
  • Radium
  • Aphrodite
  • etc..

 


🐝 장단점

CSS-in-JS의 장점은 다음과 같습니다.

  • CSS 클래스의 이름 충돌 문제 해결: 스코프를 해당 컴포넌트로 한정하여 전역적으로 인식되는 네임스페이스의 충돌을 방지합니다.
  • 컴포넌트 단위의 스타일링: 컴포넌트에 적용될 스타일을 같은 파일 내에서 정의하고 관리할 수 있습니다.
  • 동적인 스타일링: props나 state에 따라 상황에 맞는 스타일을 적용할 수 있습니다.
  • 자바스크립트를 활용: 자바스크립트가 제공하는 모든 기능(반복문, 함수 등)을 사용할 수 있습니다.
  • 서버 사이드 렌더링 지원: 많은 CSS-in-JS 라이브러리가 SSR을 지원하므로 페이지의 초기 로드 속도가 향상됩니다.

 

CSS-in-JS의 단점은 아래와 같습니다.

  • 런타임 오버헤드: 자바스크립트 코드가 실행되며 CSS로 변환되기 때문에 큰 애플리케이션에서는 성능이 저하될 수 있습니다.
  • 파일 크기 증가: 자바스크립트 파일에 CSS가 포함되기 때문에 최종 번들 크기가 증가합니다.
  • 러닝 커브: 일반적인 CSS 작성 방식과는 차이가 있고, 라이브러리마다 API가 다르기 때문에 새롭게 학습하는 과정에서 시간과 노력이 요구됩니다.

 

Styled-Component만 사용해 본 초보자인 제가 생각하는 CSS-in-JS의 최대 장점은 CSS 클래스의 이름이 충돌하는 문제를 해결할 수 있다는 점이고, 단점은 러닝 커브가 존재하는 것이라고 생각합니다.

이렇게 CSS-in-JS는 컴포넌트를 기반으로 하는 개발에는 유용하게 사용될 수 있지만, 위에서 본 것과 같은 단점 또한 존재합니다.

따라서 프로젝트의 요구사항과 팀의 기술 수준에 맞게 사용 여부와 라이브러리를 결정하는 것이 중요합니다.

 


읽어주셔서 감사합니다:)

 

  1. 🐝 정의
  2. 🐝 장단점
'HTML & CSS' 카테고리의 다른 글
  • [CSS] Tailwind에서 스크롤 바 숨기기(by. 플러그인)
  • [CSS] Tailwind(테일윈드) 설치하고 사용하기(feat. intellisense, 컨닝페이퍼, prettier)
  • [CSS] 속성 선언 순서
  • [CSS] 디스플레이(block, inline, inline-block)
emmaOH!
emmaOH!
emmaOH!
개발자구역
emmaOH!
전체
오늘
어제
  • 분류 전체보기 (70)
    • Frontend (10)
    • React (7)
    • Next.js (2)
    • Typescript (2)
    • Javascript (17)
    • HTML & CSS (13)
    • Git (4)
    • 트러블슈팅 (12)
    • etc. (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • 라이브러리
  • 자바스크립트
  • 취업까지달린다
  • CSS
  • javascript
  • Next.js
  • 깃
  • 오블완
  • 주석
  • 티스토리챌린지
  • html
  • Frontend
  • 프론트엔드
  • 리액트
  • React
  • Typescript
  • 타입스크립트
  • git
  • 스프린트프론트엔드8기
  • 코드잇스프린트
hELLO · Designed By 정상우.v4.3.0
emmaOH!
[CSS] CSS-in-JS의 종류와 장단점
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.