React

왜 리액트를 사용하는가?

Mulenga 2023. 2. 14. 07:17
728x90

  최근 몇 년간 전 세계 개발자는 자바스크립트에 뜨겁게 열광하고 있다. 한때 자바스크립트는 웹 브라우저에서 간단한 연산을 하거나 시각적인 효과를 주는 단순한 스크립트 언어에 불과했지만, 현재는 웹 애플리케이션에서 가장 핵심적인 역할을 한다.

 

  이제 자바스크립트만으로 규모가 큰 애플리케이션을 만들 수 있는 시대가 왔다. 대규모 애플리케이션 중 프론트엔드 사이드에서 돌아가는 애플리케이션 구조를 관리하려면 어떻게 해야할까? 특별한 도구 없이 순수하게 자바스크립트로만 관리하는 것은 어려움이 존재할 것이다.

지금까지 수 많은 프레임워크(Angular, Backbone.js, Derby.js, Ember.js, Ext.js, Knockback.js, Sammy.js, PureMVC, Vue.js등)가 조금씩 다른 관점에서 이를 해결하려고 노력해왔다.

 

  이 프레임워크들은 주로 MVC(Model-View-Controller) 아키텍쳐, MVVM(Model-View-View-Model) 아키텍처를 사용한다. 모델은 애플리케이션에서 사용하는 데이터를 관리하는 영역이고, 뷰는 사용자에게 보이는 부분이다. 프로그램이 사용자에게 어떤 작업을 받으면 컨트롤러는 모델 데이터를 조회하거나 수정하고, 변경된 사항을 뷰에 반영한다.

 

  업데이트하는 항목에 따라 어떤 부분을 찾아서 변경할지 규칙을 정하는 작업은 간단하지만, 애플리케이션 규모가 크면 상당히 복잡해지고 제대로 관리하지 않으면 성능도 떨어질 수 있다.

 

   페이스북 개발 팀은 이를 해결하려고 하나의 아이디어를 고안해 냈는데, 어떤 데이터가 변할 때마다 어떤 변화를 줄지 고민하는 것이 아니라 그냥 기존 뷰를 날려 버리고 처음부터 새로 렌더링하는 방식이다. 이렇게 하면 애플리케이션 구조가 매우 간단하고, 작성해야 할 코드 양도 많이 줄어든다.

 

  더 이상 어떻게 변화를 줄지 신경 쓸 필요가 없고, 그저 뷰가 어떻게 생길지 선언하며, 데이터에 변화가 있으면 기존에 있던 것은 버리고 정해진 규칙에 따라 새로 렌더링하면 되는 것이다.

 

  페이스북 개발 팀이 앞서 설명한 방식으로 최대한 성능을 아끼고 편안한 사용자 경험을 제공하면서 구현하고자 개발한 것이 바로 리액트(React)이다.

 

 

[참조: 김민준, "리액트를 다루는 기술", 길벗, 2019]

 

'React' 카테고리의 다른 글

리액트의 특징  (0) 2023.02.16
리액트 이해  (0) 2023.02.15