리액트에서는 UI를 조각 단위(컴포넌트)로 나눠서 개발합니다.
리액트는 "어떻게" 그릴지를 신경쓰기보다, "어떤 모습이어야 하는지"만 코드로 적는다.
예시로 할 일 리스트를 보자
// 명령형 방식 (옛날 DOM 직접 조작)
for (let i = 0; i < todos.length; i++) {
const li = document.createElement("li");
li.textContent = todos[i];
ul.appendChild(li);
}
// 선언형 방식 (리액트)
<ul>
{todos.map(todo => <li key={todo}>{todo}</li>)}
</ul>
👉 개발자가 DOM 조작을 직접 신경 쓸 필요가 없고, 코드가 깔끔해진다.
리액트는 가상 DOM을 활용해서 실제 DOM 조작을 최소화한다.
즉, 화면에서 바뀐 부분만 업데이트하기 때문에 불필요한 렌더링이 줄고 성능이 좋아진다.
👉 전체 새로 그리기가 아니라 달라진 부분만 바꾸기라는 점에서 효율적이다
리액트를 쓰면 거의 모든 기능에 대한 라이브러리가 이미 존재한다.
👉 혼자 모든 걸 만들 필요 없이, 검증된 도구를 가져다 쓸 수 있다.
리액트 기반으로 웹뿐 아니라 모바일 앱(React Native), 데스크탑 앱(Electron)까지 확장할 수 있다.
👉 한 번 배워두면 여러 환경에 적용할 수 있다.
리액트가 사랑 받는 이유는 결국 "개발자를 편하게 해주기 때문"이다.