React란 📖
UI를 만들기 위한 라이브러리입니다.
1. React가 라이브러리인 이유
프레임워크라고 불리기에는 제공해야 하는 기능이 부족하고 `상태관리(Redux)`, `라우팅(React-router-dom)` 등 개발자가 직접 제어하기 때문입니다.
프레임워크 vs 라이브러리📖
1. 프레임워크
개발자가 기능 구현에만 집중할 수 있게 애플리케이션의 구조 또는 틀을 제공하기 때문에 프레임워크가 정한 규칙과 구조 내에서 개발을 진행할 수 있습니다.
2. 라이브러리
라이브러리는 특정 기능을 수행하는 코드의 집합으로 필요에 따라 선택적으로 사용할 수 있습니다.
ex) `React.js` `react-router-dom` `redux`
3. 제어의 역전 (IoC)
개발 시 `제어`를 하는 것은 개발자의 역할인데 프레임워크를 사용하는 경우 시키는 대로 코드를 짜게 되면 프레임워크가 알아서 제어의 흐름을 가져가는 것입니다.
❗가장 큰 차이점 `누가 애플리케이션의 흐름을 제어하는가`에 있습니다.
특징 📖
1. SPA(Single Page Application)
아래에서 자세하게 다루도록 하겠습니다.
2. npm trends
npm에 등록된 패키지의 다운로드 수가 압도적으로 높습니다.
SPA란? 📖
한 개의 페이지로 이루어진 애플리케이션입니다. 대표적으로 `react`,`vue`,`angular`가 있습니다.
최초의 서버로부터 로드된 이후 사용자와 상호작용에 따라 필요한 데이터만 바인딩해 동적으로 내용을 변경합니다.
CSR, SSR 📖
CSR (Client Side Rendering)
CSR은 클라이언트 측에서 렌더링 하는 방식입니다.
✨ 동작 과정
- 사용자가 웹 사이트를 방문하면, 브라우저가 서버에 콘텐츠(HTML, CSS, JS, 이미지 소스 등)를 요청
- 서버는 빈 뼈대 HTML을 응답
- 브라우저가 연결된 JS를 통해 서버로부터 다시 JS파일 다운
- JS를 통해 동적으로 페이지를 만들고 브라우저게 띄움
✅ 장단점
- 초기 로딩 속도는 느리지만 로딩이 된 이후 변경된 데이터만 바인딩 하는 방식으로 동작하기 때문에 이후엔 빠름
- 클라이언트 측에서 연산, 라우팅 등 모두 직접 처리하기 때문에 반응속도가 빠름
- 검색 엔진 최적화(SEO)에 불리함 (웹 크롤러는 HTML이 비어 있는 것처럼 보여서)
SSR (Server Side Rendering)
SSR은 서버 측에서 렌더링 하는 방식입니다.
초기 화면 로딩 시 서버에서 완성된 HTML 페이지를 만들어 브라우저에게 전송하는 방식입니다.
✨ 동작 과정
- 사용자가 웹 사이트를 방문하면, 브라우저가 서버에 콘텐츠(HTML, CSS, JS, 이미지 소스 등)를 요청
- 서버는 페이지에 필요한 데이터를 얻어와 css까지 모두 적용해 렌더링 준비를 마친 HTML, JS를 브라우저로 응답
- 브라우저에서 JS를 다운로드하고 HTML에 JS로직 연결
✅ 장단점
- 초기 페이지 로딩 속도가 빠르지만 이후엔 느림.
- 검색 엔진 최적화(SEO)에 유리함 (초기 HTML을 읽을 수 있기 때문에)
회고 🧐
리액트를 처음 사용할 땐 채용시장에서 필수로 요구되는 기술이기 때문에 무의식적으로 사용한 것 같습니다. 근데 어떠한 과정을 거쳐서 지금의 리액트가 됐는지 알고 사용하니까 모르고 사용하는 것 보다 낫다 라는 생각이 들었습니다.
'공부 > react' 카테고리의 다른 글
React 숙련 3 (Memoization) (0) | 2024.08.16 |
---|---|
React 숙련 2 (react hooks) (1) | 2024.08.16 |
React 숙련 1 (styled-components) (0) | 2024.08.16 |
React 입문 6 (DOM, VirtualDOM) (0) | 2024.08.09 |
React 입문 5 (명령형, 선언형) (0) | 2024.08.09 |
React 입문 4 (불변성) (0) | 2024.08.09 |
React 입문 3 (Props, State) (0) | 2024.08.09 |
React 입문 2 (컴포넌트, jsx) (0) | 2024.08.08 |