React, SPA, Component

summereuna🐥·2024년 6월 27일
0

📝 React 정리

목록 보기
1/4

1. React란?


A JavaScript library for building user interfaces

리액트는 사용자 인터페이스(UI) 구축을 위한 JS 라이브러리이다.

  1. React로 웹 또는 앱 애플리케이션의 UI, 즉 보여지는 부분(프론트 엔드)을 구축할 수 있다.

  2. React는 SPA 기반으로, 컴포넌트 단위의 독립적인 블록을 이용한 개발 방법을 이용한다. 비슷한 AngularJS, VueJS보다 인기가 많다.


2. SPA(Single Page Application) 아키텍쳐


1. SPA 란?


SPA란, 한 개의 페이지로 이루어진 애플리케이션이라는 의미이다.
MAP(Multi Page Application)과 상반된 개념이다.

기존 MPA의 문제점


뭔가 할 때 마다 웹사이트가 새로 로딩된다. (예. 좋아요 클릭시 깜빡임)
요즘 웹페이지는 리렌더링(페이지가 갱신되는 상황)이 많기 때문에 계속 깜빡일 것이다.

SPA 특징과 장점


  1. 한 개의 페이지로 구성된 웹 앱이다.
  2. 서버에 한 번 리소스를 요청한다.
  3. 그 이후엔, 필요할 때 데이터만 받아와 기존 페이지를 수정하는 방식으로 화면을 수정한다.
  4. 사용자 입장에서 깜빡임이 없으므로 굉장히 자연스러운 사용자 경험(UX: User Experience)를 구현할 수 있다.
  5. 구현의 차이는 있지만, 비슷한 기술로 Angular, Vue 가 있다.

SPA 단점


  1. SEO(Search Engine Organization)을 위해 HTML 페이지 전체가 필요한데, SPA 페이지의 HTML은 비어 있다! 그래서 검색엔진, 즉 로봇이 찾을 수 없기 때문에, SEO가 약하다는 단점이 있다.
    • 이를 보완하기 위해 Next.js 등의 프레임 워크가 나왔다.

2. SPA를 활용하는 라이브러리 혹은 프레임워크


이 셋 모두, JS를 기반으로 웹 및 사용자 인터페이스를 구축하기 위한 라이브러리 혹은 프레임워크이다.

1. ReactJS (JS 라이브러리)

  • 페이스북이 운용, 유지 중
  • 선발주자인 만큼 막강한 커뮤니티와 자료를 보유

2. VueJS (JS 프로그레시브 웹 프레임워크)

  • 배우기 쉽고 간단
  • 꾸준히 성장하는 중
  • 후발주자라 어쩔 수 없는 마켓 쉐어

3. AngularJS (JS 웹 프레임워크)

  • 구글에서 운용, 유지 중인 안정적인 프레임워크
  • 배우기 어렵고 무겁다. 그래서 나온지 꽤 됐음에도 점유율은 낮은 편

🤔 이중에서 왜 React를 사용할까?


  1. NPM trends를 살펴보면 React 사용자가 가장 많음을 알 수 있다.
    그만큼 커뮤니티가 활발하므로 공부하기 편하다!

  2. RN(React Native)와의 상생, 심지어는 VR에서까지 활용할 수 있다.

  3. 채용공고가 많다ㅋㅋㅋㅋㅋ 😂


3. Component


Component란?


컴포넌트는 리액트가 채택한 개발 방법으로 [컴포넌트 = 벽돌] 이라고 이해하면 쉽다. 벽돌을 쌓아 집을 짓는다고 생각하자.
헤더 컴포넌트, 바디 컴포넌트, 푸터 컴포넌트 만들어서 벽돌을 쌓아 올리듯이 개발을 하는 방식이다.

📝 어떤 웹 사이트에 변경이 일어났다고 했을 때, SPA와 MPA 기반 웹 앱은 어떤식으로 동작할까?

1. SPA 기반

컴포넌트 단위로 변경사항을 반영(이걸 렌더링이라고 한다)하기 때문에 깜빡임이 없다.

2. MPA 기반

하나의 변경사항을 반영하기 위해 전체 페이지를 리로드 해야 한다.

profile
Always have hope🍀 & constant passion🔥

0개의 댓글

관련 채용 정보