01. 리액트 소개
_ React란 무엇이고, 왜 필요한가?
1. 리액트란 무엇인가? _ 정의와 역할
- React는 Facebook(메타)에서 개발한 UI(사용자 인터페이스) 구축용 JavaScript 라이브러리입니다.
- 복잡한 웹 화면을 빠르고 효율적으로 만들 수 있게 해줍니다.
- 컴포넌트라는 독립적인 단위로 UI를 쪼개서, 재사용과 유지보수가 쉽도록 설계되었습니다.
2. 왜 리액트가 필요한가? _ 필요성
- 동적인 UI: 데이터가 자주 바뀌는 화면을 효율적으로 관리
- 코드 재사용 및 유지보수: 컴포넌트별로 분리하여 협업과 관리가 쉬움
- 대규모 웹앱에 적합: 구조가 명확해 협업에 유리
3. 리액트와 전통적 JavaScript의 차이_비교
(1) 구조적 차이
- 일반 JavaScript
: 직접 DOM을 선택하고 조작, 코드가 길어지고 복잡해짐 - React
: 컴포넌트 기반으로 화면을 나누고, 각 부품처럼 재사용
(2) UI 처리 방식의 차이
- 일반 JavaScript: DOM 전체를 직접 갱신
- React: Virtual DOM을 이용, 변경된 부분만 효율적으로 갱신
(3) React vs JavaScript 비교 표
| 구분 | JavaScriptReact | React |
| UI 구성 방식 | 직접 DOM 조작, 함수/변수로 분리 | 컴포넌트 단위로 조립/관리 |
| 코드 재사용 | 낮음 | 높음 (컴포넌트 재활용) |
| 상태 관리 | 개별 관리, 일관성 떨어짐 | State, Props로 체계적 관리 |
| 성능 | 전체 DOM 갱신(비효율적) | Virtual DOM, 변경분만 반영 |
| 프로젝트 규모 | 소규모에 적합 | 대규모/협업에 적합 |
4. 리액트의 핵심 개념 정리
개념설명
| 용어 | 개념설명 |
| 컴포넌트 | UI를 구성하는 독립적 부품(함수/클래스 형태) |
| JSX | 자바스크립트에 HTML 태그처럼 작성할 수 있는 특수 문법 |
| Props | 컴포넌트에 값을 전달하는 방법 (매개변수 느낌) |
| State | 컴포넌트 내부에서 관리하는 데이터(상태) |
| 생명주기 | 컴포넌트 생성/변경/소멸 등 변화 흐름 제어 |
5. 리액트 프로젝트 구조

- index.js: 진입점, React → 실제 DOM에 연결
- App.js: 주요 UI 작성 파일
- App.css: 스타일 작성
- index.html: HTML 뼈대, id="root"에 컴포넌트 삽입
- build/: 빌드시 생성되는 실제 서비스 파일
6. 리액트의 특징과 주요 장점
| 특징/장점설명 | |
| 컴포넌트 기반 구조 | UI를 작은 부품처럼 재사용, 유지보수 쉬움 |
| Virtual DOM | 실제 DOM 변경 최소화, 렌더링 성능 향상 |
| 선언형 프로그래밍 | UI의 ‘상태’만 선언하면 됨. 코드가 직관적 |
| 일방향 데이터 흐름 | 데이터가 부모→자식 방향으로 흐름, 예측 가능성↑ |
| 대규모 커뮤니티 | 다양한 라이브러리와 자료, 오픈소스 풍부 |
7. React는 프레임워크인가, 라이브러리인가?
(1) 프레임워크와 라이브러리의 차이
┌───────────────────────┐
│ Code │
└───────────────────────┘
▲
│ │
내 코드에서 내 코드를
호출 프레임워크가 호출
│ │
▼
┌─────────┐ ┌────────────┐
│ Library │ │ Framework │
└─────────┘ └────────────┘
└───────포함─────────┘
- Library(라이브러리):
→ 내가 필요할 때 직접 불러서 사용하는 도구 (내 코드가 주도) - Framework(프레임워크):
→ 전체 흐름을 프레임워크가 관리하고,
내 코드를 “프레임워크가 필요할 때” 불러줌 (프레임워크가 주도)
(2) 용어 혼용에 대한 다양한 관점
React가 '프레임워크'인지 '라이브러리'인지는 참고하는 자료, 강사, 실무 방식에 따라 다양하게 설명됩니다.
아래 표는 각 입장별로 한눈에 볼 수 있게 정리한 내용입니다.
구분React를 부르는 명칭이유 및 관점
| 구분 | React를 부르는 명칭 | 이유 및 관점 |
| 공식문서 | UI 라이브러리 | UI(화면)에만 집중, 핵심만 제공, 확장 조합은 개발자 몫 |
| 생활코딩/책 | UI 라이브러리 | 초보자 입장에서 기능 한정, 추가 기능은 별도 학습 |
| 학원/강사 | 프레임워크 | 실제 개발에선 상태관리, 라우팅 등 다양한 조합 필수, 프레임워크처럼 사용 |
| 실무/현장 | 혼용(둘 다 사용) | 프로젝트 구조/개발방식 따라 프레임워크 역할처럼 활용하기도 함 |
※ 결론: React는 “UI 라이브러리”로 출발했지만,
다양한 도구와 조합해 “프레임워크”처럼 활용되기도 함.
공식 입장은 "UI 라이브러리"에 가깝지만, 실제 현장/교육에서는 용어가 혼용됩니다.
8. React의 주요 특징 요약
- 컴포넌트 기반 구조: 독립적으로 동작, 재사용성 ↑
- Virtual DOM: 빠른 렌더링, 효율적 업데이트
- Props/State: 데이터 관리의 중심, 단방향 데이터 흐름
- Props는 부모 컴포넌트가 자식 컴포넌트에게 데이터를 전달하는 수단으로, 리액트의 핵심 개념 중 하나입니다.데이터는 단방향으로 전달되며 자식은 이를 수정할 수 없는 읽기 전용 데이터입니다.
- State는 컴포넌트의 데이터를 저장하는 변수이며,값이 변경되면 자동으로 리렌더링되어 화면이 갱신되는 기준점입니다.
- 선언형 프로그래밍: UI 결과만 선언, 복잡한 조작 최소화
- 강력한 커뮤니티/생태계: 다양한 라이브러리 및 툴
- JSX: JS와 HTML 결합, 가독성 ↑
// JSX 문법이를 통해 JavaScript 코드 안에서 UI 관련 작업을 직관적으로 할 수 있습니다.
const App = () => {
const hello = 'Hello world!';
return <div>{hello}</div>;
};
9. React 시작하기 (설치/프로젝트 생성)
React를 시작하려면 Node.js 설치 → Create React App 사용
npx create-react-app my-app
cd my-app
npm start
- 위 명령어로 기본 React 프로젝트를 만들고, 개발 서버를 바로 실행할 수 있음
10. 결론
- React는 현대 웹 개발에서 표준처럼 사용되는 UI 개발 도구입니다.
- 복잡한 화면과 대규모 프로젝트, 협업에 특히 강점을 가집니다.
- Virtual DOM, 컴포넌트 구조, JSX 등 다양한 장점 덕분에 많은 개발자들이 선택합니다.
- 다양한 라이브러리/프레임워크와 결합하여 유연하게 확장 가능합니다.
- 참고자료
- 생활코딩 [React 리액트 프로그래밍]
- 더조은컴퓨터아카데미 리액트 주말반
- React 공식문서
이 글은 공식문서, 생활코딩, 기타 교육자료를 참고하여 2차 가공/정리한 자료입니다.
원문은 각 출처의 저작권 정책을 준수하세요.
'Frontend > React' 카테고리의 다른 글
| React 컴포넌트 개념과 작성법 정리 (0) | 2025.07.19 |
|---|---|
| React 앱 배포 (빌드 & 서버 실행) (0) | 2025.07.19 |
| React 디렉토리 구조 이해 (0) | 2025.07.19 |
| React 0장: Source Index (0) | 2025.07.14 |
| React 1장: 리액트 기초 편 인덱스 (0) | 2025.07.14 |