3 분 소요

공식 릴리스 히스토리


릴리스 정책

  • 시맨틱 버저닝(Semver) 적용: major.minor.patch
  • Major 버전: 파괴적 변경(Breaking Change) 포함
  • Minor 버전: 하위 호환 새 기능 추가
  • Patch 버전: 버그 수정
  • 약 1~2년마다 메이저 버전 릴리스 (명확한 주기 없음)
  • LTS 정책은 없으며, 최신 메이저 버전 사용 권장


주요 마일스톤

🎯 React 메이저 버전 시리즈

  • React 0.3 (2013): Facebook이 오픈소스로 최초 공개
  • React 0.14 (2015): reactreact-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 reactreact-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 오류 메시지 개선


관련 링크