❓ 웹 페이지 렌더링 방식 CSR, SSR, SSG 각각의 특징과 각 방식을 어떤 상황에 사용하면 좋을지 설명해 주세요.
📍클라이언트 사이드 렌더링 (CSR, Client-Side Rendering)
- 브라우저에서 JavaScript를 실행하여 페이지를 렌더링하는 방식
- 초기 로딩 시간이 느리지만, 이후 동적 업데이트가 빠름
- 검색 엔진 최적화(SEO)가 어려움
- 단일 페이지 애플리케이션(SPA)에 적합
단일 페이지 애플리케이션(SPA), 동적 UI 업데이트가 중요한 경우
📍서버 사이드 렌더링 (SSR, Server-Side Rendering)
- 서버에서 HTML을 생성하여 클라이언트에 전달하는 방식
- 초기 로딩 속도가 빠르고 SEO에 유리
- 서버 부하가 증가할 수 있음
- 동적 업데이트가 상대적으로 느림
검색 엔진 최적화(SEO)가 중요한 경우, 초기 로딩 속도가 중요한 경우
📍정적 사이트 생성 (SSG, Static Site Generation)
- 빌드 시점에 HTML 파일을 생성하여 제공하는 방식
- 초기 로딩 속도가 매우 빠르고 SEO에 유리
- 동적 콘텐츠 업데이트가 어려움
- 정적 웹사이트에 적합
정적 콘텐츠 중심의 웹사이트, 빠른 초기 로딩 속도가 중요한 경우
❓ 본인이 생각하는 CSS-in-JS의 장점과 단점을 설명해 주세요.
CSS-in-JS란?
- CSS-in-JS는 JavaScript 코드 내에서 CSS 스타일을 작성하는 방식
예시) styled component
import styled from 'styled-components';
const Button = styled.button`
background-color: blue;
color: white;
padding: 10px 20px;
border: none;
border-radius: 5px;
font-size: 16px;
cursor: pointer;
&:hover {
background-color: darkblue;
}
`;
function App() {
return (
<div>
<Button>Click me</Button>
</div>
);
}
장점
- 컴포넌트 단위로 스타일을 관리할 수 있어 유지보수가 용이
- 동적 스타일 적용이 쉬움
- 코드 스플리팅을 통한 성능 향상
- 스타일 충돌 방지
단점
- 초기 로딩 시간이 길어질 수 있음
- 개발자 경험이 기존 CSS 방식과 다름
- 서버 사이드 렌더링(SSR) 시 추가 작업이 필요