React 가 사랑받는 이유?

React가 사랑받는 이유, 그리고 많이 쓰이는 이유에 대해 개인적인 견해를 가득 담아 정리해보았습니다.

Frontend
React, Architecture, Developer Experience

React 가 사랑받는 이유?

React, Svelte, Vue, Angular, 그리고 PHP(!?)

React, Svelte, Vue, Angular, 그리고 PHP(!?)

아직까지도, 여전히 사랑받는 프론트엔드 기술스택 1위 리액트. 그 이유가 무엇인지, 왜 우리는 리액트를 써야만 하는지에 대해서 알아보고자 합니다.

사실 리액트가 왜 가장 사랑받는지에 대한 이유는 구글링 하면 늘 뻔한 이야기가 나옵니다.

  1. 강력한 커뮤니티와 생태계

    – 이에따라 다양한 라이브러리, 도구, 지원이 제공됩니다.

  2. 재사용 가능한 구성 요소

    – 코드를 모듈화하고, 관리하기 쉽게 하며, 빌드 속도를 높입니다.

  3. 가상 DOM을 통한 빠른 업데이트

    – 앱을 원활하고 반응성 있게 유지합니다.

  4. Meta(Facebook)의 지원

    – 지속적인 개선과 장기적인 지원이 약속되어 있습니다.

  5. 최신 스택과 잘 호환됩니다

    – Vite, Next.js, Tailwind CSS와 같은 도구와 쉽게 통합됩니다.

그런데 사실은 다른 프론트엔드 기술스택에서도 가상 DOM을 사용하고 있어요. 뿐만아니라 다른 프레임워크 또한 커뮤니티도 잘 활성화 되어있고, 각 프로젝트 컨벤션에 따라 컴포넌트 요소도 잘 활성화 되도록 신경쓰고 개발하려고 있죠.

뿐만아니라 Svelte 블로그에선 가상 DOM에 대해 이렇게 말하기도 합니다.

가상 DOM이 항상 빠르다라는 것은 실제 DOM에 대한 접근 보다는 브라우저 관점에서 성능적으로 빠를 수 있다.
가상 DOM이 항상 빠르다는 것은 React가 발표될 당시 2013년에 성능이 좋지 않은 프레임워크와의 비교, 혹은 아무도 시도하지 않을 일에 대한 비교이다.
가상 DOM을 사용하기 위해서는 항상 실제 DOM과 가상 DOM을 생성해야하며, 비교하는 과정에서 overhead가 발생할 수 있다.

뿐만아니라 리액트가 사랑받는 장점은 다른 프레임워크의 장점에도 잘 녹아들어있는게 아닌가 싶기도 합니다.

그런데, 그럼에도 불구하고 리액트는 왜 꾸준히 많은 프론트엔드 개발자의 사랑을 받는걸까요?

코드로 나의 철학 을 만들어내다.

이건 결국 다른 프레임워크에도, 다른 기술 스택에도 적용되는 이야기 입니다.
모든 개발자에게 다 공통되는 이야기라 생각해요.

코드로 개발자의 철학을 녹여내는것 뿐만 아니라 프로젝트를 구성하고 협업을 하며 UI를 바라보는 관점에도 녹아져있어요.

저는 처음 협업을 하며 개발을 할 때에 이런 부분들이 정말 흥미롭게 느껴졌습니다.

이 코드로, 그리고 이 프로젝트의 구성으로 팀원들의 철학을 읽어나가는 느낌이였어요. 그 철학 속에서 정말 많은걸 배웠었고 앞으로도 배울 점이 많다고 단언합니다.

그 와중에 저는 리액트는 다른 프론트엔드 기술 스택과는 다르다고 느낀점이 있었어요.

바로 자유로움 입니다.

이전에 저는 Vue3를 중점적으로 다루어왔고 Vue2 까지 살짝 맛만 보았었는데요, React 를 공부하면서 느낀점은 Vue에 비해 너무나도 자유롭다는 점 이였습니다.

“결정하지 않음”의 자유

React는 라우팅, 상태 관리, 서버 렌더링 등 핵심 외의 기능에 대해선 명확한 선택을 강요하지 않죠.

이건 단점이자 장점입니다.

불친절하고 초보자에겐 어렵지만, 반대로 스케일업에 맞게 아키텍처를 마음대로 설계할 수 있습니다.

Svelte, Vue는 의견 있는 프레임워크 에 더 가까운데요,
오히려 자바스크립트에 아직 익숙하지 않으면 React 보단 Vue가 좀 더 쉬울거에요.
문법이 정해져있으니까요.
실제로 저도 그랬었고, React를 처음 공부 할 때에는 이거 완전… 자바스크립트 아니야? 라는 생각을 많이 했었습니다.

그렇다고 다른 프레임워크가 무조건적으로 따라야 하는 컨벤션이 있는건 아닙니다만,
개인적으로는 프로그래밍 유연성을 사랑하는 개발자라면 React를 향해 달려나가지 않을까 생각이 듭니다.

리액트스러움이란 무엇일까?

“지금 내가 짜고 있는 이 코드, 리액트스러운가?”

이 리액트스러움이란 단순히 문법이나 API 스타일이 아닌 그보다는 더 철학적인, 코드를 대하는 태도에 가깝다고 생각합니다.

선언형 사고 방식

React는 선언형 프로그래밍 패러다임을 강하게 추구합니다.

즉, “상태가 이러하니 UI는 이렇게 보여야 한다”라는 식의 코딩 방식이죠.

useState로 상태를 만들고
그 상태를 기반으로 JSX를 선언적으로 반환하고
변경은 setState로 일어나며, 나머지는 React가 알아서 한다.

이 구조 안에서는 상태가 UI를 지배합니다.

“UI는 상태의 함수다.”

이는 기존 DOM 조작 방식과는 완전히 다른 사고방식입니다.

과거에는 어떻게 바꿀까를 고민했다면, React는 무엇을 보여줘야 할까를 고민하게 만듭니다.

모든 것은 컴포넌트다

리액트에서는 모든 UI 요소가 하나의 컴포넌트로 존재합니다.

버튼 하나, 모달 하나, 입력창 하나도 각각 독립적인 컴포넌트로 구성되며
이는 곧 독립적인 사고 단위가 된다는 뜻이기도 하죠.

그리고 이 구조는 생산성과 협업의 확장성에서 엄청난 힘을 발휘합니다.

팀원들과 역할을 나누기 쉽고, 유지보수가 쉬우며 디자인 시스템과도 잘 어울립니다.

결국, “컴포넌트로 생각하는 방식”이 습관이 되면 다른 도구에서도 자연스럽게 그 철학이 스며들게 됩니다.

React는 프레임이다

여기서 ‘프레임’이라는 단어가 자유를 제한하는 틀로 느껴질 수도 있습니다.
하지만 제가 말하고자 하는 프레임은 사고의 관점, 세상을 바라보는 시야에 더 가깝습니다.

React는 ‘UI는 상태의 함수다’라는 관점으로 사고를 바꾸게 만들고,
‘컴포넌트 단위로 쪼개라’는 방식으로 더 유연한 구조를 고민하게 합니다.

즉, 강요하지 않지만 사고의 축을 제공해주는 것이죠.

마치 카메라 렌즈처럼
마치 새로운 안경을 쓴 것처럼

우리는 React를 통해 UI를 “상태 기반 선언형”으로 바라보는 시야를 갖게 되는 거예요.

그 안에서 개발자는 스스로의 기준을 만들어가며 자유롭게 설계합니다.

자유는 방향을 가질 때 더 깊어진다

완전히 아무 방향도 없는 자유는 혼란일 수 있습니다.

React는 무엇을 해야 할지 강요하지 않지만,
“이렇게 보면 더 깔끔할 거야”라는 관점의 틀을 제시합니다.

예를 들어:

  • 상태는 Source of Truth가 된다.
  • UI는 상태의 함수다.
  • 데이터 → UI 흐름이 일방향적이다.
  • 모든 UI는 컴포넌트로 쪼갤 수 있다.

이러한 사고의 방향은 결정하지 않음의 자유 속에서 건강한 기준이 됩니다.

우리는 꾸준히 고민을 한다.

React는 단지 기술 스택이 아닙니다. UI를 바라보는 프레임을 바꾸는 도구라고 생각합니다.

그 프레임은 다음과 같은 질문을 유도하죠:

  • 이 상태는 누가 갖고 있어야 할까?
  • 이 컴포넌트는 얼마나 독립적이어야 할까?
  • 변화에 강한 구조는 어떤 걸까?
  • 렌더링과 퍼포먼스를 어떻게 고려해야 할까?

이런 고민은 단순히 “코드를 잘 짜기 위한 고민”이 아니라 “더 나은 사용자 경험을 위한 구조적 사고”입니다.

그래서, 나는 리액트가 좋다.

React는 나에게 정답을 강요하지 않지만, “질문을 던질 수 있는 여유”를 줍니다.

정해진 틀에서 벗어나 자유롭게 설계하고, 협업 속에서 더 나은 구조를 고민하게 만들고, 지속적으로 배우고 리팩토링할 수 있는 공간을 열어줍니다.

그게 바로, 많은 프론트엔드 개발자들이 리액트를 사랑하는 이유가 아닐까 싶습니다.

💬

이렇게 글을 작성하였더라도 다른 프레임워크에도 동일한 생각을 가질 수 있습니다.
저 스스로에게 리액트를 왜 쓰는걸까. 어떤 관점에서 리액트를 바라봐야 조금 더 친해질 수 있을까에 대해 고민을 한 글이니까요.

그렇다면, 리액트를 많은 사람들이 사용 하는 이유, 우리가 왜 리액트를 써야하는가에 대해서 조금 더 진솔하게 말을 해볼까요?

“React로 된 예제는 있다”는 확신

학습 리소스, 튜토리얼, StackOverflow 답변, GitHub 예제, 기업 기술 블로그…

이 모든 것에서 React는 가장 먼저 등장합니다.

“문제를 해결할 방법을 구글에 검색하면, React 예제가 나온다.”

이건 생각보다 실무에서 큰 차이를 만들어냅니다.

대기업이 React를 쓴다.

Meta, Netflix, Airbnb, Shopify, Uber, Notion, Discord…

이름만 들어도 아는 서비스의 프론트엔드는 대부분 React 기반입니다.

그 말인즉, 채용시장, 커리어 설계, 도구 생태계까지 자연히 React 중심으로 돌아가게 됩니다.

Vue나 Svelte도 충분히 훌륭하고, 어떤 면에선 React보다 우아하고 빠릅니다.

그럼에도 불구하고, React는 단순히 기술 그 이상이라는 점에서 여전히 사랑받고 있습니다.

“리액트를 쓰면 살아남을 수 있다.”
라기보다는,
“리액트를 쓰면 선택지를 가장 많이 가질 수 있다.”

이에 따라 많은 유저들이 React 를 사랑하는게 아닌가 싶습니다.


Ref

https://svelte.dev/blog/virtual-dom-is-pure-overhead#Where_does_the_overhead_come_from

관련 글