리액트라우터에서는 a태그대신, Link라는 컴포넌트로 하이퍼링크를 만들었다.
왜 웹브라우저 기본기능이 있는데도 사용하지않고 Link를 사용하는 것이냐면,
우리가 여태 만든 react프로젝트는 Single Page Application이기 때문이다.
Single Page Application이란
- Single Page : 하나의 HTML문서.
- application : 어플같이 여러 페이지를 보여주는 사이트.
- 여러 경로의 HTML문서를 돌아다니며 화면을 보여주는 것이 아니라, 하나의 HTML문서 안에서 자바스크립트를 사용해 여러페이지를 보여준다는 뜻.
렌더링 방식
1. 클라이언트 사이드 렌더링(Client-side Rendering)
- 클라이언트 : 웹브라우저
- 렌더링 : HTML페이지를 만드는 것.
- ∴ 웹브라우저에서 자바스크립트로 HTML페이지를 만든다는 뜻.
- 리액트로 작성한 코드는 자바스크립트로 변환이 가능하다.(이러한 변환을 트랜스파일링 이라고 부른다.)
- 클라이언트 사이드 렌더링은 자바스크립트로 변환된 리액트 코드를 웹브라우저에서 실행해서 HTML을 만드는 것을 말한다.
2. 서버사이드 렌더링(Server-side Rendering)
- 서버에서 HTML을 만들고 리스폰스로 보내주는 것.
- 백엔드서버에서 리퀘스트를 받으면, 상황에 맞는 HTML을 서버가 만들어서 response로 보내주는 방식을 말한다.
- 리액트에서도 서버사이드 렌더링을 할 수 있는 기능들을 제공하긴 한다.
- 이미 렌더링된 것이 웹브라우저에 도착하니까 훨씬 빨리 화면을 띄워줄 수 있고, 검색엔진에서 좋은 점수를 받아서 검색했을 때 사이트가 잘 노출될 수 있다는 장점이 있다.
3. 정적 사이트 생성(Static Site Generation)
- 미리 HTML파일을 만들어서 서버를 배포하는 것.
- 서버에서 렌더링하는 것도 좋지만, 데이터가 거의 바뀌지 않는다면 매번 새로 만드는 것은 낭비일 수 있다.
- 그래서 미리 HTML파일로 만들고 이걸 서버로 배포하는 방법을 사용하는데, 이런 방식을 정적 사이트 생성이라고 한다.
- 서버에서는 리퀘스트가 들어오면, HTML파일을 읽어서 response로 보내준다.
- 정적 사이트 생성이라는 말은 HTML을 파일로 만든다는 것. 개발자가 새로 배포하지않는다면 서버에서 보내주는 HTML이 달라지지않는다.
렌더링을 활용한 기술의 예
Next.js
- 리액트의 서버사이드 렌더링을 편하게 해준다.
- 리액트에있는 서버사이드 렌더링 기능들은 아주 기본적인 방법만 있기 때문에, 매번 작성해야하는 코드의 양도 많고 복잡하기에 Next.js를 사용하면 편하다.
gatsby
- 리액트로 정적 사이트를 만들어준다.
- 회사 소개사이트나 동아리 홈페이지 혹은 포트폴리오같이 정적인 사이트를 리액트로 만들고 싶을 때 사용하면 좋다.
react native
- 모바일앱!
'React' 카테고리의 다른 글
React - 생명주기(life cycle) (0) | 2023.10.29 |
---|---|
React - 화면 이동하기(Router, Link, Navigate) (0) | 2023.10.25 |
React - 배열을 렌더링시 key를 써야 하는 이유 (0) | 2023.10.23 |
React - Virtual DOM (0) | 2023.10.23 |
React - 데이터 다루기 (0) | 2023.10.20 |