Syw.Frontend

✅ React 기초 강좌

1단계. React 시작하기

1-1. React란 무엇인가?

🎯 학습 목표

  • React의 정의, 목적, 핵심 개념을 원론적으로 이해한다.
  • 기존 방식과 React 방식의 차이를 비교해본다.
  • React를 왜 사용하는지, 어떤 상황에 적합한지 판단할 수 있다.

📌 1. React의 정의

React는 Facebook(현 Meta)이 만든 사용자 인터페이스(User Interface)를 구축하기 위한 JavaScript 라이브러리입니다.

  • UI를 선언적으로(descriptive) 작성할 수 있도록 돕는다.
  • 컴포넌트 기반으로 UI를 구성한다.
  • View 중심이며, 다른 기능은 별도의 라이브러리로 확장 가능하다.

🔍 React는 MVC 중 View에 해당하는 역할만 수행합니다.


📌 2. 왜 React가 등장했을까?

전통적인 웹 개발 방식의 한계

  • DOM 직접 조작은 복잡하고 오류가 많음
  • 데이터와 화면 상태가 따로 놀아 UI 상태 관리가 어려움
  • 규모가 커질수록 유지보수성이 떨어짐

React의 해결 방식

  • Virtual DOM을 통한 성능 최적화
  • 데이터 변화에 따라 UI가 자동으로 다시 렌더링
  • UI를 컴포넌트 단위로 나누어 설계 → 재사용성, 테스트 용이성 향상

📌 3. React의 주요 특징

특징 설명
선언형 UI HTML을 직접 조작하지 않고, 원하는 결과만 선언
컴포넌트 기반 구조 UI를 독립적이고 재사용 가능한 컴포넌트로 분리
Virtual DOM 실제 DOM과 비교해 최소 변경만 반영하여 성능 최적화
단방향 데이터 흐름 부모 → 자식 방향으로만 데이터 전달 (예측 가능한 상태 관리)

🧠 4. SPA(Single Page Application)란?

SPA는 한 번 페이지를 불러오고, 이후에는 필요한 데이터만 가져와서 갱신하는 방식입니다.

전통적인 MPA 방식 vs SPA

항목 전통적인 MPA SPA
페이지 전환 전체 페이지 재요청 필요한 부분만 갱신
속도 느림 (페이지 리로드) 빠름 (앱 같은 경험)
초기 로딩 속도 빠름 상대적으로 느림
SEO 용이 기본적으로 불리함 (SSG/SSR로 보완 가능)

💡 5. React vs 다른 프레임워크

항목 React Vue Angular
개발사 Facebook Evan You Google
종류 라이브러리 프레임워크 프레임워크
철학 View 중심, 유연함 View 중심, 직관적 전체 구조 제공, 강력한 기능
러닝 커브 중간 쉬움 어려움

✍️ 6. 심화

1. React는 프레임워크일까요, 라이브러리일까요? 그 이유는?

React는 라이브러리입니다.

그 이유는, 애플리케이션의 전체 아키텍처를 강제하지 않고 UI(View)만을 다루기 때문입니다. 반면 Angular는 라우팅, 상태관리, 폼 등 전체 기능을 포괄하기 때문에 프레임워크입니다.

단, React 생태계는 다른 라이브러리들과 조합해 프레임워크처럼 사용할 수 있습니다.


2. Virtual DOM이란 무엇이며, 어떤 역할을 하나요?

Virtual DOM은 실제 DOM의 메모리 상 가벼운 사본입니다.

React는 상태 변화가 생기면 Virtual DOM을 먼저 변경하고, 이전 Virtual DOM과 비교(diff)하여 **변화된 부분만 실제 DOM에 반영(patch)**합니다.

이 방식은 전체 DOM을 직접 조작하는 것보다 훨씬 성능이 뛰어나며, 반응성이 좋습니다.


3. SPA 방식의 장점은 무엇인가요?

빠른 사용자 경험(UX): 전체 페이지를 다시 불러올 필요 없이 빠르게 전환됨클라이언트 중심 렌더링: 서버에 과도한 요청을 하지 않음앱처럼 부드러운 화면 전환: 모바일 앱과 유사한 경험 제공 → 반면 SEO 대응은 별도 처리가 필요 (React에서는 Next.js 같은 프레임워크로 해결 가능)


✅ 요약

항목 핵심 요약
React 정의 UI 구축을 위한 JS 라이브러리
주요 특징 선언형, 컴포넌트 기반, Virtual DOM
등장 배경 DOM 복잡성, UI 상태 관리 한계
SPA 장점 빠른 UX, 서버 부담 감소, 부드러운 전환

💬 댓글

  • jts50@naver.com

    리액트 개념이나 기초에 대해 한번 더 다지는 계기가 되서 좋습니다!

    2025-07-15 17:11

  • heroyooi1018@gmail.com

    고맙습니다. 많은 이용 바래요^^

    2025-07-15 13:49

  • shrjs10@gmail.com

    리액트 실무자로써 다시한번 개념부터 다져볼게요!! 감사합니다 ㅎㅎ

    2025-07-15 13:06

※ 로그인 후 댓글을 작성할 수 있습니다.