8주차 위클리 페이퍼 안내
아래 두 가지 주제에 대해서 각자 조사해서 답변을 제출해 주세요.
본인이 생각하는 CSS-in-JS의 장점과 단점을 설명해 주세요.
Presentational & Container 디자인 패턴에 대해 설명해 주세요.
동적 스타일링: JavaScript를 사용하여 스타일을 동적으로 변경할 수 있어, 상태에 따라 스타일을 동적으로 제어하기 용이합니다.
스타일 충돌 회피: 각 컴포넌트의 스타일이 고유한 스코프 내에서 유지되므로, 스타일 충돌 문제를 방지할 수 있습니다.
컴파일 타임 최적화: 몇몇 CSS-in-JS 라이브러리는 컴파일 타임에 스타일을 최적화하여 불필요한 스타일을 제거하고 성능을 향상시킵니다.
단점:
러닝 커브: CSS-in-JS를 처음 사용하는 개발자들에게는 학습 곡선이 존재합니다. 기존의 CSS 작성 방식과는 다른 패러다임을 익히는 데 시간이 걸릴 수 있습니다.
성능 오버헤드: 일부 CSS-in-JS 라이브러리는 런타임에 스타일을 계산하고 적용하기 때문에 성능 오버헤드가 발생할 수 있습니다. 하지만 최신 라이브러리는 이러한 문제를 해결하기 위해 노력하고 있습니다.
서버 사이드 렌더링(SSR) 어려움: 일부 CSS-in-JS 라이브러리는 서버 사이드 렌더링을 지원하기 어려울 수 있습니다. 이로 인해 초기 로딩 성능이 저하될 수 있습니다.
모듈성 향상: 코드의 재사용성과 유지보수성을 향상시킵니다.
역할 분리: 각 컴포넌트가 특정 역할을 가지므로 코드가 더 명확해지고 이해하기 쉬워집니다.
테스트 용이성: Presentational 컴포넌트는 UI만 표현하므로 테스트가 더 쉽게 이루어집니다.