Keyword
- SPA(Single Page Application) : 하나의 HTML파일로 이루어져 있음.
- CSR(Client Side Rendering) : 클라이언트 쪽 위주로 해서 웹페이지가 구성이 됨. 빈 html에서 클라이언트의 요청(?)에 따라 비어진 부분이 채워지는 개념
- SSR(Server Side Rendering) : 서버에서 이미 렌더링이 된 화면을 보내는 것.
- MPA(Multi Page Application) : 여러 html파일로 페이지마다 구성하는 것
- SEO(Search Engine Optimization) : 검색 엔진(ex.구글, 네이버)회사에서 봇으로 웹사이트를 평가하여 점수를 내려 점수에 의해 검색에 노출되게 하는 것
- Hydration : CRA와 같은 client-side framework가 서버에서 전송한 정적 문서(html)를 데이터 변경에 반응할 수 있는 동적 형태(dom수정한다는 말)로 변환하는 client 측 process를 말한다.
- CRA(Create React App) : 리액트 앱으로 만듦.
- isomorphic javascript: SSR과정 중 한 JS코드가 node에도 돌아가고 broswer에서도 돌아갈 때
Static Website
정적인 웹사이트
예) 게츠비 블로그
그냥 모든 데이터가 html안에 다 들어가 있는 것
적절한 사이트는 회사 소개 페이지
SSR
Dynamic Website
Static Website와 반대
- CSR
- SSR
SPA(Single Page Application) - HTML이 한개, CSR임.
SPA 장점
- 자연스러운 사용자 경험(UX)
- 필요한 리소스만 부분적으로 로딩(성능)
- 서버의 탬플릿 연산을 클라이언트로 분산(성능)
- 컴포넌트별 개발 용이(생산성)
- 모바일 앱 개발을 염두에 둔다면 동일한 API를 사용하도록 설계 가능(생산성)
SPA 단점
- JavaScript 파일을 번들링해서 한 번에 받기 때문에 초기 구동 속도 느림(webpack 의 code splitting으로 해결)
- 검색엔진최적화(SEO)가 어려움 (SSR 로 해결)
- 보안 이슈 (프론트엔드에 비즈니스 로직 최소화)
MPA(Multi Page Application) - 페이지마다 HTML이 존재, SSR임.
SSR 의 장점
- 검색 엔진 최적화
- Search Engine Optimization
- SEO
다 같은 말입니다. 전통적인 MPA 의 경우 브라우저에서 JavaScript 코드가 동작하기 전에도 완성된 형태의 탬플릿(HTML에 데이터가 삽입된 상태)을 서버로 부터 전달받습니다. 이 때문에 JavaScript 를 구동하지 않는 모르는 검색 로봇이 페이지를 크롤링하기에 매우매우 적합합니다.
SSR 의 단점
- 페이지 이동시 화면 깜빡임(UX)
- 페이지 이동시 불필요한 탬플릿도 중복해서 로딩(성능)
- 서버 렌더링에 따른 부하(성능)
- 모바일 앱 개발시 추가적인 백엔드 작업 필요(생산성)
https://developers.google.com/web/updates/2019/02/rendering-on-the-web
이런거 11번가 처럼 CSR로 돌려야하지만 SEO에 노출이 많이 되어야 하는 웹사이트라면 SEO를 위한 SSR을 준비하고 내부는 CSR로 돌린다. 이러한 것을 NEXT.JS를 요즘 많이 쓴다.
다 같은 분류의 개념은 아닌데 연동이 많이 되는 개념들이기 때문에 많이 말하여진다. 개념들을 잘 이해하여 구분하여 써야한다.
'Wecode > Session' 카테고리의 다른 글
Session-소셜 로그인 (0) | 2020.06.10 |
---|---|
Session-파이썬 유닛테스트 (Python unittest) (0) | 2020.06.09 |
Session-AWS, Sever(EC2),Database(RDS) 열고 이동하는 것 까지 (0) | 2020.06.04 |
Session-페이지네이션(Paging, Pagination) (0) | 2020.06.03 |
Session-데이터 구조(Data Structure) 중 나무(Tree),트리 (0) | 2020.06.02 |