페이스북(현재 META)은 고객의 사용에 따라 엄청 많은 데이터가 실시간으로 변화합니다. 이로 인해 사용자 인터페이스의 업데이트 및 유지 관리가 어려워지면서 애플리케이션 또한 복잡해지고 무거워졌습니다. 이런 문제들을 해결하기 위해 JavaScript 라이브러리인 React가 개발되어 2013년 처음 공개되었습니다.
컴포넌트는 독립적으로 동작하는 작은 단위로 이는 코드의 재사용성을 높이고, 유지 관리를 용이하게 합니다. 즉, 같은 기능이나 UI을 제공하는 컴포넌트는 복사, 붙여넣기 같이 여러 곳에서 쓰일 수 있습니다.
React는 실제 DOM을 직접 조작하는 대신, 가상 DOM을 통해 렌더링을 최적화합니다. 이는 애플리케이션의 성능을 크게 향상시킵니다. 가상 DOM은 실제 DOM의 복사본으로, 데이터 업데이트가 있을 때마다 전체 UI를 가상 DOM에 먼저 렌더링하고, 실제 DOM과 비교하여 차이점을 찾은 다음 그 부분만 DOM에 반영합니다.
JSX는 JavaScript 내에서 HTML과 같은 문법을 사용할 수 있게 해주며, 이를 통해 UI 구조를 직관적으로 파악할 수 있습니다.
React는 단방향 데이터 흐름(또는 데이터 바인딩)을 사용합니다. 이는 컴포넌트의 데이터가 부모에서 자식으로만 흐르게 하여, 애플리케이션의 전체적인 흐름을 쉽게 이해하고 추적할 수 있게 합니다.
React의 장점은 React의 특징과 비슷합니다.
리액트 네이티브(React Native)를 사용하면 리액트의 개념과 문법을 활용하여 iOS 및 안드로이드 애플리케이션을 개발 가능
오픈소스 프로젝트로서, 개발자들이 자유롭게 코드를 검토하고 개선 및 세계적인 기업인 페이스북이 직접 관리하고 지원하므로 안정성 높음
React는 현재 많은 개발자들이 사용하는 라이브러리로 그만큼 강력한 커뮤니티를 가지고 있기 때문에 문제 해결을 비교적 쉽게 할 수 있음
React의 탄생 배경과 그로 인해 가지게된 특징 및 장점에 대해 간단하게 정리해보았습니다. 앞으로는 이 글에서 자세히 다루지 못했던 내용들을 자세히 작성하거나 앞으로 배우면서 알게 된 것들을 적을 생각입니다. 감사합니다.