리액트는 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용되며, 싱글 페이지 어플리케이션이나 모바일 애플리케이션 개발에 사용될 수 있다.
싱글 페이지 어플리케이션(SPA)란 서버로부터 완전한 새로운 페이지를 불러오지 않고 현재의 페이지를 동적으로 다시 작성함으로써 사용자와 소통하는 웹 애플리케이션이나 웹사이트를 말한다.
쉽게 말해서 페이지의 일부가 변경될 때 전체 페이지를 새로 고침하지 않고, JavaScript를 통해 필요한 부분만 업데이트한다. 이를 통해 페이지가 빠르게 반응하고, 사용자 경험이 향상된다.
리액트는 UI를 재사용 가능한 컴포넌트로 나누어 개발할 수 있게 도와주며, 이는 코드의 재사용성을 높이고 유지 보수를 용이하게 한다.
리액트는 실제 DOM 대신 가상 DOM(Virtual DOM)을 사용하여 성능을 최적화한다. 변경사항이 발생하면 가상 DOM과 실제 DOM을 비교하여 필요한 부분만 업데이트하므로, 성능이 향상된다.
DOM이란? Document Object Model(문서 객체 모델)로 문서를 객체화한 것이다.
리액트는 데이터의 흐름이 단방향이기 때문에 데이터의 변화를 추적하기 쉽고 디버깅이 용이하므로, 어플리케이션의 상태 관리와 디버깅을 단순하게 만든다.
JSX는 자바스크립트 코드 안에서 HTML과 유사한 코드를 작성할 수 있게 해주는 문법 확장이며, 이를 통해 UI 구조를 더 직관적이고 쉽게 정의할 수 있다.
JSX, 컴포넌트 기반 아키텍처, 상태 관리(Hooks, Redux 등), 라이프사이클 메서드 등 다소 복잡하게 느껴질 수 있다.
프레임워크가 아닌 라이브러리이기 때문에 프로젝트를 설정하는데 많은 도구와 설정이 필요하며, 업데이트나 호환성 문제를 관리해야 할 수도 있다.
잘못된 상태 관리나 불필요한 렌더링 발생 시 성능 이슈가 생길 수 있으며, 컴포넌트 계층이 깊어지거나 많은 상태 변화가 일어날 때 주의해야 한다.
평소 일이나 프로젝트를 하면서 아무런 생각 없이 사용했던 리액트를 타인이 물어봤을 때 대답해 주려면 스스로가 자세히 알아야 생각이 들어서 정리해 보았다.
머릿속에는 들어있던 지식을 글로 정리하니 뭔가 깔끔하게 정리된 것 같아서 만족한다. 끝