일반 CSS를 작성할 때는 광범위하게 스타일을 적용하기가 쉽지만, 광범위하기 때문에 클래스 이름 충돌이 없는지 확인하고 다른 클래스 이름을 지어야 한다는 단점이 존재 => CSS-in-JS는 기본적으로 스타일을 지역 스코프로 지정하여 이 문제를 완전히 해결
일반 CSS를 사용할 때의 문제는 CSS와 자바스크립트가 별도의 파일에 있기 때문에 각 컴포넌트에서 어떤 스타일을 사용하는지 빠르게 구분하기 어려움
하지만 CSS-in-JS를 사용하면 스타일을 사용하는 리액트 컴포넌트 내부에 직접 스타일을 작성할 수 있어서 유지보수가 편해짐
CSS-in-JS 스타일에서 자바스크립트 상수(colors 등)와 리액트 props와 state(fontSize, 클릭된 상태인지 등)를 모두 사용할 수 있음
컴포넌트를 렌더링 할 때 CSS-in-JS 라이브러리는 document에 삽입할 수 있는 일반 CSS로 스타일 데이터를 변환해야 하므로 컴포넌트가 복잡해지고 애플리케이션이 커지면 성능에 영향을 미침
CSS-in-JS라는 추가적인 라이브러리를 다운로드해서 사용하는 것이기 때문에 SSR 또는 컴포넌트 라이브러리를 사용할 때 오류 가능성이 커질 수 있음