React는 전 세계 프론트엔드 개발자의 약 40%가 사용하는 가장 인기 있는 JavaScript 라이브러리입니다(Stack Overflow 2025). 페이스북, 인스타그램, 넷플릭스, 에어비앤비 등이 React로 만들어졌습니다. 이 글에서 React가 왜 인기 있는지, 무엇이 다른지, 어떻게 시작하는지를 정리합니다.
React란?
React는 사용자 인터페이스(UI)를 만드는 JavaScript 라이브러리입니다. Facebook(현 Meta)에서 개발했고, 2013년 오픈소스로 공개되었습니다.
기존 방식과의 차이를 비유하면:
| 기존 방식 (jQuery 등) | React | |
|---|---|---|
| 비유 | 집을 벽돌 하나하나 쌓기 | 레고 블록으로 조립 |
| UI 업데이트 | DOM을 직접 조작 | 상태(State) 변경 → 자동 업데이트 |
| 코드 구조 | 스파게티 코드 위험 | 컴포넌트 단위로 깔끔하게 분리 |
| 재사용 | 어려움 | 컴포넌트를 레고처럼 재사용 |
React의 3가지 핵심 개념
1. 컴포넌트 (Component)
UI를 독립적인 블록으로 나눕니다. 각 블록이 자체적으로 동작하고, 조합하여 전체 페이지를 구성합니다.
// Header 컴포넌트
function Header() {
return <h1>안녕하세요! 내 블로그입니다</h1>;
}
// Button 컴포넌트
function LikeButton() {
return <button>좋아요 ❤️</button>;
}
// 조합하여 페이지 구성
function App() {
return (
<div>
<Header />
<p>React로 만든 페이지입니다.</p>
<LikeButton />
</div>
);
}
2. 상태 (State)
컴포넌트의 변하는 데이터입니다. 상태가 변경되면 React가 자동으로 화면을 업데이트합니다.
import { useState } from 'react';
function Counter() {
// count라는 상태를 만들고, 초기값 0
const [count, setCount] = useState(0);
return (
<div>
<p>클릭 횟수: {count}</p>
<button onClick={() => setCount(count + 1)}>
클릭!
</button>
</div>
);
}
// 버튼 클릭 → count 변경 → 화면 자동 업데이트
3. JSX
JavaScript 안에서 HTML을 쓸 수 있는 문법입니다. 처음에는 낯설지만, 익숙해지면 매우 편리합니다.
// JSX 예시 — HTML처럼 생겼지만 JavaScript입니다
const element = (
<div className="card">
<h2>{user.name}</h2>
<p>{user.email}</p>
{isAdmin && <span>관리자</span>}
</div>
);
React 시작하기 (10분)
사전 요구사항
- HTML/CSS 기초 (필수)
- JavaScript 기초 (변수, 함수, 배열, 객체, 화살표 함수) — 필수
- Node.js 설치 (nodejs.org에서 LTS 버전 다운로드)
프로젝트 생성 (Vite 사용)
# 1. React 프로젝트 생성
npm create vite@latest my-react-app -- --template react
# 2. 폴더 이동
cd my-react-app
# 3. 의존성 설치
npm install
# 4. 개발 서버 시작
npm run dev
# → http://localhost:5173 에서 React 앱 확인!
프로젝트 구조
my-react-app/
├── public/ # 정적 파일 (favicon 등)
├── src/
│ ├── App.jsx # 메인 컴포넌트 ← 여기를 수정!
│ ├── App.css # 스타일
│ ├── main.jsx # 앱 진입점
│ └── index.css # 글로벌 스타일
├── index.html # HTML 템플릿
├── package.json # 의존성 관리
└── vite.config.js # Vite 설정
React 학습 로드맵
| 단계 | 기간 | 배울 것 | 추천 자료 |
|---|---|---|---|
| 1. JS 기초 복습 | 1~2주 | ES6+ (화살표함수, 구조분해, spread, map/filter) | javascript.info |
| 2. React 기초 | 2~3주 | 컴포넌트, JSX, Props, State, 이벤트 | React 공식 문서 (react.dev) |
| 3. React 심화 | 2~3주 | useEffect, Context, 폼 처리, API 연동 | 인프런/유데미 강의 |
| 4. 라우팅+상태관리 | 2주 | React Router, Zustand/Redux | 공식 문서 + 프로젝트 |
| 5. 프로젝트 | 4주 | 포트폴리오 프로젝트 1~2개 만들기 | GitHub에 올리기 |
총 예상 기간: 2~3개월 (매일 1~2시간 기준)
React vs Vue vs Angular
| React | Vue | Angular | |
|---|---|---|---|
| 개발사 | Meta (Facebook) | Evan You (개인) | |
| 인기도 | 1위 | 2위 | 3위 |
| 채용 시장 | 가장 많음 | 많음 | 대기업 위주 |
| 학습 난이도 | 중간 | 쉬움 | 어려움 |
| 유연성 | 높음 (라이브러리) | 중간 | 낮음 (프레임워크) |
| 생태계 | 가장 풍부 | 풍부 | 풍부 |
결론: 취업이 목표라면 React (채용 공고 가장 많음). 배우기 쉬운 것을 원하면 Vue. 대기업/엔터프라이즈 지향이면 Angular.
자주 묻는 질문
Q. React를 배우려면 JavaScript를 얼마나 알아야 하나요?
최소한 변수, 함수, 배열/객체, 화살표 함수, map/filter, 구조분해 할당, 스프레드 연산자를 이해해야 합니다. 이것만 알면 React 학습을 시작할 수 있습니다.
Q. 취업에 React만 알면 되나요?
React + TypeScript + Next.js + Git 조합이 2026년 프론트엔드 채용 시장의 표준입니다. React를 먼저 배우고, 이후 TypeScript → Next.js 순서로 확장하세요.
마무리
React의 핵심: 컴포넌트 + 상태(State) + JSX. 이 세 가지만 이해하면 나머지는 자연스럽게 따라옵니다. 오늘 할 일: Node.js 설치 → npm create vite@latest로 프로젝트 생성 → App.jsx에서 텍스트 한 줄 바꿔보기. 10분이면 됩니다. 그것이 React 개발자의 첫걸음입니다.