일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- node.js
- node
- angular
- react
- beanstalk
- hybrid
- 페이스북
- fanzeel
- https
- Android
- angular4
- Elastic Beanstalk
- 안드로이드
- nextjs
- php
- NeXT
- swift
- Route53
- 카카오톡
- 웹뷰
- cors
- S3
- AWS
- 도메인
- TypeScript
- JavaScript
- 감사일기
- 알려줌
- ios
- 네이티브
- Today
- Total
쪼렙 as! 풀스택
18.06.11. React - Next.JS 로 SSR 환경 꾸미기. 본문
리액트를 사용하면서, SSR 을 구현하려고 했다.
기존에 회사 서버가 PHP 로 구성되어있기 때문에, 일단 라우팅과 SSR 은, PHP 에서 담당하고, 리액트는 뷰만 만들어서 쓰기로 했다. 그러다보니, 테스트환경에 문제가 있었다. 나중에 Node 로 넘어가면서 눈여겨보고 있던 Next.js 를 사용하려고 했는데, 그러다 보니, 테스트환경이 매우 복잡해 지고 있었다.
그래서, PHP 서버는 API 서버로만 남겨놓기로 하고, 처음부터 Next.js 와 함께 Node 로 넘어가야겠다는 결심을 했다.
그래서 Next.js 의 공홈에서 제공하는 Learning 을 처음부터 살펴보았다.
살펴본 결과.
매우 훌륭하다.
똑같이 getInitialProps 를 이용하는데, 처음에 브라우저에 호출을 할때는 알아서 서버사이드에서 데이터를 불러다가 초기 렌더링을 해준다. 그리고나서, 앱 내부에서 이동하는데, 서버를 거치지 않은 채 앱 내부 라우팅을 이용해 페이지가 이동되면서, 클라이언트 사이드에서 getInitialProps 가 호출되고, 초기 데이터를 만들어서 뷰를 뿌려준다.
이런 훌륭한!!!!!!!
사실 서버 사이드렌더링과, 클라이언트 사이드 렌더링의 장단점은 너무나도 확실했었다.
SSR 장점 -> SEO에 필수.
SSR 단점 -> 페이지 요청마다 서버자원을 이용해서 렌더링. (서버 성능 중요)
CSR 장점 -> API 서버만 분리 이용. 렌더링을 브라우저에서 담당.
CSR 단점 -> SEO 최악, 맨 처음 렌더링 깜빡임 현상(js 다운로드시점)
이런 명확한 차이가 있었는데,
Next 를 이용해서,
맨 처음 페이지 요청을 할 때는 서버사이드로 렌더링이 되고, 그 이후에 내부에서 페이지가 이동될때는 데이터 가져오는 API 만 호출하면서, 브라우저에서 렌더링을 하는것이다.
이렇게 함으로써, SSR, CSR 의 장점을 모두 가져오게 되는 것이다.
매우 훌륭하다. 매우 만족스럽다.
Angular 에다가, PHP 에서 SSR 을 해보겠다고 난리를 개고생을 했던 지난 시간이 매우 허망하다.
이제 Node 로 넘어가면, 다시는 PHP로 넘어오지 않을것 같다.
'개발 일지 > Web & Server' 카테고리의 다른 글
18.06.12 Javascript - Promise 객체 다루기. (0) | 2018.06.12 |
---|---|
React, Next, Express, mobX, axios, scss 환경 꾸미기. (1) | 2018.06.11 |
React - 16.3 이상에서 DOM 레퍼런스 가져오기. 18.06.08 (0) | 2018.06.08 |
REACT - create-react-app 에서 mobX 사용하기. 18.06.07 (0) | 2018.06.07 |
Angular - 문자열 클립보드에 복사, 영역 선택하기. (0) | 2018.03.13 |