[React] 릴리스 노트
공식 릴리스 히스토리
릴리스 정책
- 시맨틱 버저닝(Semver) 적용:
major.minor.patch - Major 버전: 파괴적 변경(Breaking Change) 포함
- Minor 버전: 하위 호환 새 기능 추가
- Patch 버전: 버그 수정
- 약 1~2년마다 메이저 버전 릴리스 (명확한 주기 없음)
- LTS 정책은 없으며, 최신 메이저 버전 사용 권장
주요 마일스톤
🎯 React 메이저 버전 시리즈
- React 0.3 (2013): Facebook이 오픈소스로 최초 공개
- React 0.14 (2015):
react와react-dom패키지 분리 - React 15 (2016): 가상 DOM 렌더링 안정화, SVG 개선
- React 16 (2017): 내부 아키텍처 Fiber로 전면 재작성
- React 16.8 (2019): Hooks 도입 — 역사상 가장 큰 변화
- React 17 (2020): 점진적 업그레이드 지원, 이벤트 위임 변경
- React 18 (2022): Concurrent 렌더링 공식화, 자동 배치 처리
- React 19 (2024): Actions API, Server Components 안정화, ref prop 직접 지원
버전별 상세 변경사항
| 버전 | 날짜 | 분류 | 주요 변경사항 |
|---|---|---|---|
| 0.3 | 2013-05-29 | major | Facebook 오픈소스 최초 공개 |
| 0.4 | 2013-07-17 | major | ProxyComponent 제거, key prop 도입 |
| 0.5 | 2013-10-16 | major | 이벤트 시스템 개선, TestUtils 추가 |
| 0.8 | 2013-12-19 | major | 성능 개선 |
| 0.9 | 2014-02-20 | major | 다양한 컴포넌트 개선 |
| 0.10 | 2014-03-21 | major | 성능 개선, 보안 수정 |
| 0.11 | 2014-07-13 | major | SVG 지원 개선, 조건부 렌더링 개선 |
| 0.12 | 2014-10-28 | major | JSX 문법 변경 (/** @jsx */ 제거), 컴포넌트 API 정리 |
| 0.13 | 2015-03-10 | major | ES6 클래스 컴포넌트 지원 |
| 0.14 | 2015-10-07 | major | react와 react-dom 패키지 분리Stateless Functional Components(SFC) 도입 React Native 지원 강화 |
| 15.0 | 2016-04-07 | major | data-reactid 속성 제거SVG 완전 지원 IE8 지원 중단 |
| 15.1 ~ 15.6 | 2016-05-20 ~ 2017-09-25 | minor | 오류 처리 개선, PropTypes 분리 |
| 16.0 | 2017-09-26 | major | Fiber 아키텍처 전면 재작성 Error Boundaries ( componentDidCatch) 도입Portals ( ReactDOM.createPortal) 도입Fragments ( <>...</>) 도입서버 사이드 렌더링 스트리밍 지원 MIT 라이선스로 변경 |
| 16.1 ~ 16.2 | 2017-11 ~ 2017-11 | minor | Fragment 문법 (<React.Fragment>) 추가 |
| 16.3 | 2018-03-29 | minor | 새 Context API (createContext, useContext) 도입createRef, forwardRef 추가StrictMode 추가라이프사이클 메서드 deprecation 시작 |
| 16.4 | 2018-05-23 | minor | Pointer Events 지원 |
| 16.6 | 2018-10-23 | minor | React.memo (함수 컴포넌트 메모이제이션)React.lazy, Suspense (코드 분할) 도입 |
| 16.7 | 2018-12-19 | minor | 버그 수정 |
| 16.8 | 2019-02-06 | minor | Hooks 도입 — useState, useEffect, useContext, useReducer, useCallback, useMemo, useRef, useImperativeHandle, useLayoutEffect, useDebugValue |
| 16.9 | 2019-08-08 | minor | act() 개선, deprecated 라이프사이클 경고 추가 |
| 16.10 ~ 16.14 | 2019-10 ~ 2020-08 | minor | 버그 수정, 성능 개선 |
| 17.0 | 2020-10-20 | major | 점진적 업그레이드 지원 (React 버전 혼용 가능) 이벤트 위임 대상을 document에서 Root DOM 컨테이너로 변경JSX 자동 변환 ( import React 불필요)새 기능 없음 (인프라 개선 집중) |
| 17.0.1 ~ 17.0.2 | 2020-10 ~ 2021-03 | patch | 버그 수정 |
| 18.0 | 2022-03-29 | major | Concurrent 렌더링 공식화createRoot API 도입 (기존 ReactDOM.render 대체)자동 배치(Automatic Batching): setTimeout, fetch 내부에서도 여러 state 갱신 자동 묶음 useTransition: UI 반응성 유지하며 상태 전환useDeferredValue: 값 렌더링 우선순위 낮춤useId: 서버-클라이언트 일관된 고유 ID 생성useSyncExternalStore: 외부 스토어와 동기화Suspense 서버 사이드 렌더링 개선 |
| 18.1 | 2022-04-26 | minor | 버그 수정 |
| 18.2 | 2022-06-14 | minor | 버그 수정 |
| 18.3 | 2024-04-25 | minor | key prop을 ref처럼 전달 금지 경고 추가React 19 마이그레이션 준비 |
| 19.0 | 2024-12-05 | major | Actions API: useActionState (폼 상태 관리), useFormStatus (폼 제출 상태)useOptimistic: Optimistic UI 업데이트use() Hook: 컴포넌트에서 Promise/Context 직접 읽기ref prop 직접 지원 (더 이상 forwardRef 불필요)Server Components 안정화 (React Server Components) Server Actions 지원 Context.Provider 대신 Context 직접 사용 가능클린업 함수를 ref callback에서 반환 가능 hydration 오류 메시지 개선 |
| 19.1 | 2025-04 | minor | <Activity> 컴포넌트 도입 (서버/클라이언트 렌더링 전략 제어) |
주요 개선 흐름
아키텍처
| 버전 | 개선 내용 |
|---|---|
| 16.0 | Stack → Fiber 재입력 가능한 비동기 렌더링 아키텍처 |
| 18.0 | Fiber 기반 Concurrent Mode 공식화 — 렌더링 중단·재개 가능 |
| 19.0 | Server Components — 서버에서만 실행되는 컴포넌트 안정화 |
상태 관리
| 버전 | 개선 내용 |
|---|---|
| 16.3 | Context API 재설계 — createContext / useContext |
| 16.8 | Hooks 도입 — 클래스 컴포넌트 없이 상태 관리 가능 |
| 18.0 | useTransition, useDeferredValue — 상태 전환 우선순위 제어 |
| 19.0 | useActionState, useOptimistic, use() — 비동기 상태 처리 단순화 |
성능
| 버전 | 개선 내용 |
|---|---|
| 16.6 | React.memo, React.lazy — 불필요한 렌더링 최적화 |
| 18.0 | 자동 배치(Automatic Batching) — 여러 state 업데이트를 하나의 렌더링으로 처리 |
| 19.0 | React Compiler (실험적) — 자동 메모이제이션으로 수동 useMemo/useCallback 제거 |
개발자 경험
| 버전 | 개선 내용 |
|---|---|
| 16.0 | Error Boundaries — 컴포넌트 단위 오류 처리 |
| 17.0 | JSX 자동 변환 — import React 제거 |
| 18.0 | useId — SSR 환경에서 일관된 고유 ID |
| 19.0 | ref prop 직접 지원 — forwardRef 불필요, hydration 오류 메시지 개선 |