본문 바로가기
framework_library/react

React란 무엇인가 – UI를 구성하는 현대적인 방식 | 등장배경과 철학 구성요소

by 죄니안죄니 2025. 4. 8.

들어가며

React는 페이스북에서 개발한 컴포넌트 기반의 사용자 인터페이스(UI) 라이브러리입니다.
단순한 화면 구성 도구를 넘어서, 현재는 웹 프론트엔드 개발의 사실상 표준 도구로 자리 잡고 있습니다. React는 재사용 가능한 UI 컴포넌트를 중심으로 애플리케이션을 설계하고, 데이터 흐름과 상태 관리에 집중하게 해줍니다.

이 글에서는 React가 무엇인지, 어떤 배경과 철학을 가지고 등장했는지, 그리고 실무에서 왜 React를 선택하게 되는지를 살펴보며 React 카테고리의 첫 시작을 열어보겠습니다.


React란?

React는 JavaScript로 UI를 구성하기 위한 라이브러리입니다.
SPA(Single Page Application) 개발에 매우 적합하며, 가상 DOM(Virtual DOM) 기반으로 효율적인 화면 갱신을 제공합니다.

주요 특징

  • 컴포넌트 기반 구조: UI를 작고 독립적인 단위로 나누고, 이를 조합해 화면 구성
  • 단방향 데이터 흐름: 상위 컴포넌트 → 하위 컴포넌트로 데이터 전달 (props)
  • 가상 DOM: 실제 DOM 변경을 최소화하여 성능 향상
  • JSX 문법: JavaScript 안에 HTML을 작성하는 독특한 문법 지원
  • 풍부한 생태계: 수많은 라이브러리, 상태관리 도구(Redux, Zustand 등), 라우팅(React Router) 등과 함께 사용 가능

React는 왜 등장했을까?

기존 웹 개발에서는 jQuery나 순수 JavaScript로 DOM을 직접 조작하는 방식이 주류였습니다.
하지만 애플리케이션 규모가 커질수록 DOM 조작의 복잡도, 데이터와 UI의 불일치 문제들이 심각해졌습니다.

React는 이런 문제를 해결하기 위해 등장한 기술로, UI를 상태 기반으로 선언적으로 표현하는 방식으로 전환하게 해줍니다. 이로 인해 유지보수성과 확장성이 크게 향상되었습니다.


React의 주요 구성 요소

1. 컴포넌트 (Component)

  • 함수형 컴포넌트 중심 (과거에는 클래스형도 사용)
  • props와 state로 상태 관리

2. 상태 관리 (State)

  • useState, useReducer 훅 사용
  • 전역 상태 관리는 Redux, Recoil, Zustand 등 활용

3. 이벤트 처리

  • JSX 문법으로 DOM 이벤트 처리 (ex. onClick={handleClick})

4. 라우팅 처리

  • React Router로 SPA 환경에서 다중 페이지 구성 가능

React의 장점과 단점

장점
단점
컴포넌트 재사용으로 생산성 향상 초기 설정이 복잡할 수 있음
가상 DOM으로 효율적인 렌더링 상태 관리 복잡도 증가 가능
풍부한 커뮤니티와 생태계 JSX 문법에 대한 거부감 있을 수 있음
빠른 학습 속도 렌더링 최적화가 필요한 경우 직접 제어 필요

 


실무에서 React를 사용하는 이유

  • 디자인 시스템과 UI 재사용성이 중요한 프로젝트
  • SPA 구조의 대시보드, 관리자 페이지 개발
  • React Native와 함께 모바일 앱 개발로 확장 가능
  • 방대한 자료와 커뮤니티, 기업 채택률이 높은 기술

마치며 – 앞으로 다룰 React 주제들

React는 단순한 UI 라이브러리를 넘어서, 프론트엔드 전체 구조를 설계할 수 있는 강력한 도구입니다.
이 블로그에서는 다음과 같은 React 관련 주제를 다룰 예정입니다:

  • 함수형 컴포넌트와 훅(Hooks) 이해(useState/useEffect)
  • 상태 관리 패턴 (useState → Redux → Zustand 비교)
  • 커스텀 훅(Custom Hook) 작성 실전
  • React Router로 라우팅 구성하기
  • 컴포넌트 스타일링 방식 (CSS-in-JS, Tailwind 등)
  • 성능 최적화와 React.memo, useCallback 활용

React를 처음 배우는 분은 물론, 실무에 적용해보고 싶은 분들께 도움이 되는 실전 중심의 글을 이어가겠습니다.
컴포넌트 중심 개발의 세계로 함께 들어가 보시죠!

 

📌 다음 글 미리보기
👉 함수형 컴포넌트와 훅(Hooks) 이해

📚 React 시리즈 전체 보기
👉 https://jobreview.tistory.com/category/framework_library/react

댓글