자세히 살펴보기 전에 심각한 질문이 있습니다. 왜 사람들이 React를 그토록 싫어한다고 생각하시나요? JSX인가요? 끝없는 옵션? Netflix 권장 사항보다 더 자주 변경된다는 사실? 진심으로 알고 싶습니다. 좋은 의견이 있으시면 댓글로 남겨주세요. 진심으로, 참지 마세요.
자, 전체 공개: 이전 기사 중 하나에서 제가 React에 대해 약간의 재미를 찔렀을 수도 있는데, 그냥... 사람들이 알아차렸다고 가정하겠습니다. 그러니 이것을 사과라고 생각하세요. 하지만 그렇지는 않습니다. 그런데 저는 (일종의) 보상을 하러 왔습니다.
React: 개발자가 싫어하는 JavaScript 라이브러리입니다. 모두가 감탄하거나 원망하면서 이야기하는 학교의 인기있는 아이와 같습니다. 구성 요소 기반 아키텍처를 칭찬하는 사람마다 복잡성에 대해 불평하는 사람이 있습니다. 그렇다면 왜 다들 React를 그토록 싫어하는 것 같나요?
평소 불만사항을 살펴보고 풀어보겠습니다.
그렇습니다. JavaScript를 구성 요소 형태로 작성하고 상태를 관리하는 것은 그래서 수십 가지 프레임워크를 배우는 것보다 훨씬 어렵습니다. 어떤 사람들은 React를 사용하는 것이 눈을 가린 채 루빅스 큐브를 푸는 것과 같다고 말합니다. 주의하지 않으면 통제 불능 상태가 될 수 있는 JSX, 후크, 수명 주기 방법 및 상태 관리가 있습니다.
그런데 정말 그렇게 복잡할까요? 심각한 프로젝트를 위해 바닐라 JavaScript를 사용해 본 적이 있다면 그곳에서 상태를 관리하는 것이 지침 없이 Ikea 가구를 조립하려고 하는 것처럼 느껴진다는 것을 알고 계실 것입니다. 물론 React에는 학습 곡선이 있지만 일단 익숙해지면 모든 것이 클릭되기 시작합니다. 마치 프로그래밍에서 재귀를 사용하는 방법을 처음 알아냈을 때와 같습니다. 처음에는 혼란스럽다가 나중에는 마법이 됩니다.
그렇습니다. React에는 노력이 필요하지만 가치 있는 일도 마찬가지입니다.
아, 점점 커지는 생태계에 대한 그 유명한 불만이군요. React는 단순한 React가 아닙니다. Redux, React Router, Context API 및 그렘린처럼 늘어나는 기타 도구들의 퍼레이드입니다. 새 프로젝트를 시작하기 위해 자리에 앉으면 스트리밍 서비스를 선택하는 것과 같은 느낌이 듭니다. Netflix, HBO 또는 Disney가 필요한가요? React 세계에서는 “Redux가 필요한가요, 아니면 MobX를 사용해 봐야 할까요?”에 가깝습니다. 상태 관리를 위해 React Query를 사용해야 하나요? 최신 CSS-in-JS 트렌드는 어떻습니까?”
그렇습니다. 옵션이 압도적으로 느껴질 수도 있습니다. 그러나 이것은 진보의 대가입니다. React는 복잡하고 확장 가능한 애플리케이션을 구축할 수 있는 도구를 제공하지만 선택도 사용자에게 맡깁니다. 이는 Marvel Cinematic Universe가 Iron Man부터 WandaVision까지 모든 사람을 위한 무언가를 제공하는 끝없는 옵션을 제공하는 것과 비슷합니다.
React의 경우 개발자가 옵션을 좋아하기 때문에 생태계가 방대합니다. 필요한 것만 선택하여 뷔페처럼 앱을 구성할 수 있습니다.
React의 지속적인 업데이트에 대해 불평하는 개발자의 수는 경기장을 가득 채울 수 있습니다. 그들은 클래스 구성 요소에 익숙해지면 후크가 따라오는 것에 대해 불평합니다. 하지만 그거 알아요? 이것이 기술 분야의 발전 방식입니다.
React의 진화는 나쁜 것이 아닙니다. 최신 개발 요구 사항에 보조를 맞추는 것입니다. 물론, 상황은 변하고 있습니다. 세심하게 제작한 앱이 최신 React 버전으로 인해 갑자기 구식이라고 느껴지면 짜증스러울 수도 있지만, 정체된 라이브러리보다 혁신하는 라이브러리를 갖고 싶지 않으신가요?
모두가 철왕좌를 위해 싸웠던 왕좌의 게임처럼 React는 JavaScript 프레임워크 전쟁에서 선두를 유지하기 위해 끊임없이 진화하고 있습니다. 하지만 쇼의 결말과 달리 React는 실제로 시간이 지날수록 좋아집니다(용은 필요하지 않습니다).
HTML과 JavaScript를 혼합하는 데 익숙하지 않은 사람들에게 JSX는 혐오스러운 것처럼 느껴집니다. "왜 우리는 JavaScript 안에 HTML을 넣는 걸까요?" 일부 순수주의자들은 묻습니다. 마치 피자에서 파인애플을 처음 봤을 때와 같습니다. 전혀 어울리지 않을 것 같은 예상치 못한 조합입니다.
그런데 JSX를 사용해 보니 놀랍게도... 유용하네요. JSX를 사용하면 모든 것을 함께 유지하는 방식으로 UI를 구축할 수 있습니다. 언뜻 보기에는 좋지 않지만 일단 사용하기 시작하면 로직과 UI를 원활하게 통합하는 것이 얼마나 강력한지 깨닫게 됩니다. 여러 파일과 언어 사이를 이동하는 대신 모든 것을 한 곳에서 얻을 수 있습니다. 사랑하지 않는 것은 무엇입니까?
개발자는 단순함을 좋아하므로 구성 요소 생성, 상태 관리, 후크 사용, 라이브러리 가져오기 등 React에 필요한 설정의 양을 보면 과잉이라고 느껴집니다. "간단한 할 일 목록을 작성하는 데 왜 그렇게 많은 파일과 코드 줄이 필요한가요?" 일반적인 후렴이다. 예, Vue 또는 Svelte와 같은 프레임워크는 더 적은 단계로 유사한 작업을 처리할 수 있습니다. 하지만 큰 힘에는 훌륭한 상용구도 따라오죠?
진실은: React의 장황함은 단순한 보풀이 아닙니다. 확장 가능한 무언가를 위한 토대를 마련하고 있습니다. 물론, 장난감 자동차만 갖고 싶었는데 레고 세트를 조립하는 것 같은 느낌이 듭니다. 그러나 "간단한 할 일 목록"이 예상하지 못한 기능을 갖춘 본격적인 프로젝트로 변모되면 그 구조를 높이 평가하게 될 것입니다. 또한 React의 모듈식 특성 덕분에 새 부품을 추가할 때 Lego Death Star가 무너지지 않도록 하는 것과 같이 장기적으로 유지 관리가 더 쉽습니다.
성능과 가상 DOM 마법에 대한 모든 이야기에도 불구하고 React 앱은 때때로 느리게 느껴질 수 있습니다. 구성 요소가 불필요하게 다시 렌더링되거나 상태 관리가 복잡해지면 핸드브레이크를 켠 채 스포츠카를 운전하는 것과 같습니다. 끝없는 두더지 잡기 게임에 참여하는 것처럼 최적화하고 렌더링 버그를 추적하는 데 몇 시간을 보낼 수 있습니다. 하지만 질문은: 왜 이런 일이 발생하는 걸까요?
사실은 React가 본질적으로 느린 것은 아닙니다. 대부분의 경우 개발자 오류나 기능 오용으로 인해 발생합니다. 오버리렌더링? 상태를 올바르게 처리하지 못한 것은 우리 책임입니다. 메모리 누수? 다시 말하지만, 이는 일반적으로 잘못된 관리에 관한 것입니다. React를 Tony Stark의 Iron Man 슈트처럼 생각해보세요. 적절한 훈련을 받지 않은 사람이 건물 측면에 충돌하는 것은 슈트의 잘못이 아닙니다. 일단 마스터하면 성능이 놀라울 수 있습니다. 그리고 솔직히 말해서 React가 최적화를 위해 제공하는 도구는 풍부합니다. 단지 이를 사용하는 방법을 아는 것이 중요합니다.
리액트죠? 배울 수 있는 도서관은 하나뿐이죠? 잘못된. React 생태계에 뛰어들면 갑자기 Next.js, Gatsby, Remix 등 다양한 프레임워크에 직면하게 됩니다. 이는 하나의 문을 열었는데 그 뒤에 열 개가 더 있는 것과 같습니다. 각 문은 서로 다른 것을 제공하며 무엇을 선택해야 할지 전혀 알 수 없습니다. "서버 측 렌더링이 필요한가요? 내 개인 블로그에 정적 사이트 생성이 과잉인가요?"
사실은 React 주변에 너무 많은 프레임워크가 있다는 사실이 저주가 아니라 오히려 축복이라는 것입니다. React는 필요한 것을 선택할 수 있을 만큼 유연합니다. SEO 친화적인 서버 측 렌더링을 원하시나요? Next.js. 엄청나게 빠른 정적 사이트 생성기를 원하시나요? 개츠비는 당신의 남자입니다. 마치 스위스 군용 칼을 갖고 있는 것과 같습니다. 도구의 수가 많아 보일 수도 있지만 결국에는 작업 중인 모든 문제를 해결할 수 있는 유연성을 제공합니다. 누구도 당신에게 모든 것을 배우라고 강요하지 않습니다. 단지 효과가 있는 것을 선택하고 계속 공부하세요.
현실은 대부분의 사람들이 반응을 증오하지 않고 단지 학습 곡선에 좌절했을 뿐이라는 것입니다. React가 나쁘다는 것은 아닙니다. React는 손을 잡는 사람이 아니라는 것입니다. 다른 프레임워크는 내장된 편의 기능으로 여러분을 만족시킬 수 있지만 React는 여러분을 깊은 끝으로 몰아넣고 “수영하세요!”라고 말합니다. 물론, 처음에는 어려워 보일 수도 있지만, 그것이 바로 그 힘이 있는 곳입니다. React는 당신을 제한하지 않습니다. 뉘앙스, 방대한 생태계, 핵심 철학을 이해하도록 도전합니다. 솔직하게 말하자면, React는 즉각적인 호감이 아니라 느린 불타오르는 것에 가깝습니다.
React는 기본적으로 가장 쉬운 도구라고 주장한 적이 없습니다. 저녁 식사를 준비하고 빨래를 개는 지나치게 도움이 되는 사촌 Vue와는 다릅니다. 아니요, React는 당신에게 문을 보여주면서 당신이 문을 열 것이라고 기대하는 현명하고 노련한 멘토에 더 가깝습니다. 그리고 그건 결함이 아니라 디자인 선택입니다. 학습 곡선은 가파르지만 그 대가로 제공되는 유연성과 힘은 무엇입니까? 타의 추종을 불허합니다.
React에 마땅한 존중을 표합시다. 2013년부터 존재해 왔습니다(기술 시대에는 사실상 영원함). 그 이후로 왔다가 사라진 트렌드, 라이브러리, 프레임워크의 수를 생각해 보십시오. AngularJS는 사라지고 jQuery는 유물이 되었으며 수많은 다른 것들이 사라지거나 급격하게 방향을 틀었습니다. 그러나 React는 살아남았을 뿐만 아니라 번성했습니다. 그것은 단지 붙어 있던 것이 아닙니다. 동일한 핵심 철학을 유지하면서 새로운 개발자 요구에 적응하면서 진화했습니다. 그것은 무시할 것이 아닙니다. 이는 정말 놀라운 일의 특징입니다.
React는 완벽하지 않을 수도 있지만 지속력은 인정합시다. 라이브러리와 프레임워크는 상승하는 속도만큼 빨리 소진되는 경우가 많지만, React는 이전 버전보다 오래 지속되었으며 더 새롭고 빛나는 경쟁자들의 홍수에도 불구하고 계속해서 지배하고 있습니다. 물론 Svelte, Solid 또는 Vue 3도 있지만 시장에서 React의 지배력을 무너뜨린 것은 없습니다. React는 Facebook, Instagram에서 Airbnb, Netflix에 이르기까지 수백만 개의 웹사이트와 앱을 통해 여전히 선두를 달리고 있습니다.
현실을 직시하자: 많은 개발자가 불평하고 농담하고 "React가 형편없다"는 Reddit 스레드를 겪으며 여전히 많은 사람들이 즐겨 찾는 라이브러리인 모든 도구 ? 그건 존경받아 마땅해요. 그 오랜 통치는 우연이 아닙니다. 성장하고 열정적인 커뮤니티를 유지하면서 수년간의 실제 사용을 통해 전투 테스트를 거쳐 개선되고 강화되었습니다. 특이한 점이 있을 수 있지만 확실히 뭔가 제대로 하고 있는 것입니다.
이제 복잡성에 대해 이야기해 보겠습니다. React를 마스터하려면 다른 프레임워크보다 더 많은 노력이 필요합니까? 전적으로. 하지만 그것은 단점이 아닙니다. 그것은 유연성에 대한 증거입니다. React는 선택권을 줍니다. 큰 힘에는 큰 책임이 따릅니다(감사합니다, Ben 삼촌). 단일 페이지 앱을 구축하든, React Native를 사용하여 모바일 앱을 구축하든, Next.js를 사용하여 SEO 친화적인 고성능 웹사이트를 구축하든, React는 모든 것을 처리할 수 있을 만큼 다재다능합니다.
물론 JSX가 처음에는 조금 이상해 보일 수도 있고 후크, 패턴, 상태 관리 솔루션의 수가 너무 많아 부담스러울 수도 있습니다. 하지만 일단 편안함을 느끼기 위해 노력하고 나면 React가 제공하는 제어 기능은 대단합니다. 이는 단지 기본 앱을 구축하는 것이 아니라 경험을 만들고, 확장 가능한 아키텍처를 만들고, 다른 프레임워크에서 허용하지 않는 방식으로 복잡한 문제를 해결하는 것입니다.
React는 앱을 구축하는 방법을 알려주지 않습니다. 그것은 당신에게 도구를 제공하고 당신에게 가장 적합한 것이 무엇인지 알아낼 것을 기대합니다. 이러한 유연성은 React가 작고 빠른 프로젝트와 대규모 기업 수준 애플리케이션 모두에 똑같이 유용하다는 것을 의미합니다. 이는 프런트엔드 개발의 스위스 군용 칼이며 올바르게 사용하는 방법을 배우는 데는 시간이 걸릴 수 있지만 일단 배우고 나면 믿을 수 없을 만큼 보람이 있습니다.
게임을 시작한 지 10년이 넘은 지금도 React의 영향력은 줄어들 기미를 보이지 않습니다. Redux, React Router와 같은 라이브러리, Next.js와 같은 프레임워크를 갖춘 대규모 생태계는 지속적으로 성장하고 혁신하고 있습니다. 소수만이 따라올 수 있는 수준의 유연성, 성능 및 개발자 경험을 제공하기 때문에 개발자들은 여전히 이를 선호합니다. 게다가 구성 요소와 재사용성에 대한 React의 초점은 단순한 유행이 아니라 사용자 인터페이스 구축에 대한 우리의 생각을 바꿔 놓았습니다.
사실 React를 기술 세계의 필수 요소로 만든 것은 React의 생태계입니다. Facebook(Meta)과 강력한 기여자 커뮤니티의 지원은 React가 계속해서 향상된다는 것을 의미합니다. 이는 단순한 프레임워크가 아니라 최신 웹 개발을 지원하는 전체 생태계입니다. 작은 위젯을 만들든 전체 웹사이트를 만들든 React가 도와드립니다.
그럼 React는 완벽한 걸까요? 아니요, 그렇다고 주장한 적도 없습니다. 그러나 그 장점은 그 단점보다 훨씬 큽니다. 초기 복잡성? 이것이 React에 장기적인 확장성을 제공하는 이유입니다. 압도적으로 느껴지는 생태계? 그것은 단지 React가 당신에게 필요한 것은 무엇이든 만들 수 있는 자유를 주는 것입니다. 기발한 JSX? 글쎄요, 때로는 인생에서 이상한 일이 최고의 결과가 되기도 합니다.
기술 동향이 빛의 속도로 변화하는 세상에서 React는 관련성을 유지하고 적응하며 개발자가 선택하는 선택으로 남아 있습니다. 그리고 그것은 단지 존경할 만한 것이 아니라 감탄할 만한 일입니다. 당신이 좋아하든 싫어하든 React는 여기에 있습니다. 그리고 솔직히 말해서 우리 모두는 React를 사용하는 것이 더 좋습니다.
그러므로 다음 번에 JSX를 욕하거나 끝없는 변화 상태에 대해 불평하게 된다면, 이것은 React가 아니라 단지 성장통일 뿐이라는 점을 기억하세요. 그리고 마침내 그것을 마스터하게 되면? React가 왜 프론트엔드 프레임워크의 왕으로 자리매김했는지 알게 될 것입니다.
위 내용은 왜 모두가 React를 싫어하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!