[LG CNS AM CAMP 1기] - React, Component, SPA 개념 정리

2024. 12. 26. 11:41·LG CNS AM CAMP 1기
🔑아는 내용이라도 자만하지 말고 다시 한번 보자

💡 React의 컴포넌트 Component


인프런 한입 리액트 - 이정환 강사 자료

📃 React 에서는 Component라는 개념을 사용합니다. 간단하게 Component는 레고라고 생각하시면 됩니다. "우리는 어린 시절 레고를 조립해서 성을 만들기도, 배를 만들기도 했습니다" 이처럼 React에서는 Component를 조립하고 배치하여 웹페이지를 구현합니다.

💡 Virtual DOM 가상 돔과 기본적인 메커니즘


📃 React의 핵심은 Virtual DOM을 활용한 효율적인 업데이트에 있습니다. 과거에는 사용자의 이벤트로 웹페이지가 변경될 때, 변경된 부분만 수정하는 것이 아니라 전체 페이지를 다시 렌더링하는 방식이 일반적이었습니다.

인프런 한입 리액트 - 이정환 강사 자료

📃하지만 React에서는 Component단위로 페이지가 나눠져 있기 때문에 수정된 부분만 업데이트를 해주는 혁신적인 방법을 사용합니다.

📃 여기서 등장하는 것이 가상 DOM(Virtual DOM)입니다. React는 컴포넌트의 상태나 props가 변경됨에 따라 새로운 Virtual DOM을 생성합니다. 이렇게 생성되는 Virtual DOM은 메모리 상에 가상의 트리 구조로 존재하고, 이는 실제 DOM의 사본처럼 동작하지만 훨씬 가볍습니다

⬆️ Diff 알고리즘은 React 내부적으로 새로운 Virtual DOM과 이전 Virtual DOM을 비교하는 작업을 수행합니다. diff 알고리즘이 변경된 부분을 찾아내면, 이를 기반으로 Reconciliation (조정, 대조) 이라는 과정을 거칩니다. 이 과정에서 변경된 부분만 실제 DOM에 적용하여, 최소한의 리소스를 사용해 화면을 업데이트합니다

💡 MPA vs SPA


📃 MPA(Multi Page Application)와 SPA(Single Page Application)는 각각의 장단점이 있어, 어떤 방식이 더 좋다고 일반화하기 어렵습니다. 다만, React는 주로 SPA를 구축하는 데 사용됩니다

⬆️ SPA 는 첫 로딩 시 필요한 리소스를 받아오고, 이후 페이지 이동은 javaScript로 처리되어 빠르고 부드러운 사용자 경험을 제공합니다.

위에 AJAX는 간단하게 웹페이지에서 발생할 수 있는 컴포넌트 렌더링, 사용자 이벤트 요청, 서버 데이터 동기화 같은 "요청"에서 서버로부터 "비동기적"으로 데이터를 받아오기위해 사용되고, 데이터는 JSON형식으로 받습니다

📃 SPA는 Virtual DOM을 활용하여 효율적인 DOM 업데이트를 지원하며, 페이지 이동 시 전체를 다시 로드하지 않고 필요한 부분만 갱신합니다.

📃 반면, MPA는 각 페이지가 독립적으로 서버 요청을 통해 렌더링됩니다. 이는 SEO와 초기 로드 속도에서 유리하지만, 페이지 이동 시마다 리소스를 다시 요청하기 때문에 상대적으로 느린 사용자 경험을 제공할 수 있습니다

📝 SUMMARY


📌React는 컴포넌트 Component라는 개념을 사용한다

📌React는 Virtual DOM을 통해 새로운 수정사항을 이전 Virtual DOM과 비교하여, Actual DOM에 한번에 업데이트를 시킵니다

📌React는 SPA를 구축하는 데 사용하고, 첫 렌더링으로 모든 파일을 번들링해서 서버로부터 클라이언트로 다운로드하고, 이벤트 트리거 발생시 AJAX요청을 통해 서버에서 데이터를 가지고 옵니다

저작자표시 비영리 변경금지 (새창열림)
'LG CNS AM CAMP 1기' 카테고리의 다른 글
  • [LG CNS AM CAMP 1기]- [React] JSX Deep Dive 쉽게 이해하기
  • [LG CNS AM CAMP 1기] 단축 속성명, 계산된 속성명, 전개 연산자, 배열 & 객체 비구조화 개념 정리
  • [LG CNS AM CAMP 1기] 호이스팅Hoisting, 다양한 함수 선언 방법
  • AI 서비스 이해 및 기술 필요한가요? 개발자 관점 Trend 및 향후 동향
Jelong
Jelong
커스텀 웹: https://jaehong-park.com Github: https://github.com/qkrwoghd04
  • Jelong
    24/7 Developer's Note
    Jelong
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Software Engineering
      • Ubuntu
      • Network
      • JavaScript
      • Web
      • Interaction Design
      • React Native
      • React
      • Algorithm
      • Java
      • Database design
      • IT Trend
      • TroubleShooting
      • AWS
      • Interview
      • LG CNS AM CAMP 1기
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    expo
    JS
    heap
    BST
    데이터 구조
    자바
    mininet
    알고리즘 분석
    AWS
    블랙 박스 테스트
    화이트 박스 테스트
    오블완
    frontend
    html
    소프트웨어 공학
    자바스크립트
    이진트리
    GPT-4
    css
    ChatGPT
    알고리즘
    Queues
    React
    미니넷
    javascript
    typescript
    generic
    java
    티스토리챌린지
    prototyping
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Jelong
[LG CNS AM CAMP 1기] - React, Component, SPA 개념 정리
상단으로

티스토리툴바