프론트엔드 개발자를 지향한다면 한번쯤 들어본 단어가 있는데 바로 React다. 대부분의 사람들이 React라는 것을 사용해서 개발한다는데… 그래서 React가 뭔데? 이거 왜 쓰는 건데? 라고 생각이 든다면 이 글을 읽어보는 것을 추천한다.
리액트는 Facebook(현 Meta)에서 2013년에 출시한 사용자 인터페이스 (UI)를 만들기 위한 라이브러리로 쉽게 말해서 웹사이트나 웹 애플리케이션의 화면을 만들고 관리하는 도구
현재 2024년 기준 React는 전 세계 웹사이트의 40%이상 사용되고 있으며
해외에서는 Netflix, Airbnb, Instagram과 같은 대형 사이트
국내에서는 소위 ‘네카라쿠배당토’ 라고 불리는 대기업에서 React를 사용 중
(네이버, 카카오, 라인, 쿠팡, 배달의 민족, 당근마켓, 토스)
출처: https://survey.stackoverflow.co/2024/technology#most-popular-technologies-webframe-prof
💡사용자 인터페이스(User Interface)
사용자와 컴퓨터 시스템 간의 상호작용이 이루어지는 접점
→ 화면에 보여지는 모든 것
💡라이브러리(Library)
프로그래밍에서 사용되는 기능들을 모아둔 코드의 모음집.
사용자가 직접 기능 구현 코드들을 작성하지 않아도 기존에 만들어진 코드를 갖다 씀으로서
코드의 안정성을 확보하고 시간을 절약할 수 있다.
ex.밀키트
- 재료가 미리 손질 되어 있음 → 미리 작성된 코드
- 요리 시간 단축 → 개발 시간 단축
- 레시피가 검증되어 있음 → 검증된 코드 사용
- 실패 확률이 낮음 → 안정성 확보
- 필요한 만큼만 사용 → 필요한 기능만 가져다 사용
// JavaScript
document.querySelector("input").textContent = "새로운 내용";
// React
setState({ content: "새로운 내용" });
// JavaScript
const element = document.createElement("div");
element.className = "greeting";
element.textContent = `안녕하세요, ${user}님`;
// React
<div className="greeting">
안녕하세요, {user}님
</div>
JavaScript
React
💡JSX (JavaScript XML)
- HTML을 React에서 쓸 수 있게 해주는 문법
- JavaScript 코드 안에서 HTML과 유사한 마크업을 작성할 수 있음
- 중괄호 {}를 사용해 JavaScript 표현식을 직접 삽입 가능
리액트의 가장 큰 특징중 하나는 컴포넌트 기반 개발이라는 것으로 각각의 기능을 가진 블록들의 모음이라는 것이다.
레고처럼 다양한 블록으로 화면을 구성하며 각각이 독립적인 코드블록이기 때문에 문제 확인과 보수가 쉽다.
⇒ 단방향 데이터 흐름은 React 애플리케이션의 예측 가능성과 유지보수성을 향상시켜 대규모 애플리케이션에서도 안정적인 상태 관리를 가능케 함.
Vue나 Angular와 같은 프레임워크도 많이 쓰이지만 React라는 거대한 생태계가 처음 접하는 사람들에게는 좀 더 쉽게 접할 수 있다.