React의 기초

eeensu·2023년 8월 1일
0

React 기본

목록 보기
1/22
post-thumbnail

[버전 18.2.0]

React ?

React는 사용자 인터페이스를 구축하기 위한 프론트엔드 라이브러리로, Facebook(Meta)에서 개발하였다. 이 라이브러리는 단일 페이지 애플리케이션(SPA)이나 웹 애플리케이션의 일부분을 개발할 때 사용되며, 사용자 인터페이스를 구성하는 데 있어서 재사용 가능한 UI 컴포넌트를 만들고 관리하는 데 중점을 둔다. 공식 명칭은 ReactJS이지만 줄여서 React라고 부른다.

react의 공식문서에는 다음 3가지 특징을 강조한다.

  • 선언형
    react는 상호작용이 많은 UI를 만들 때 생기는 어려움을 줄여준다. 개발자는 애플리케이션의 각 상태에 대한 간단한 뷰만 설계하면 된다. 그럼 react는 데이터가 변경됨에 따라 적절한 컴포넌트만 효율적으로 갱신하고 렌더링한다. 선언형 뷰는 코드를 예측 가능하고 디버그하기 쉽게 만들어 준다.

  • 컴포넌트(component) 기반
    상태를 관리하는 캡슐화된 컴포넌트를 만들 수 있다. 그리고 이를 조합해 더욱 더 복잡하고 유기적인 흐름을 가진 컴포넌트 트리를 만들 수 있다. 컴포넌트 로직은 템플릿이 아닌 js 혹은 ts로 작성된다. 따라서 다양한 형식의 데이터를 앱 안에서 손쉽게 전달할 수 있고, DOM과는 별개로 상태를 관리할 수 있다.

  • 확장성
    react를 한번 배움으로써 다양한 부분으로 뻗어 나갈 수 있다. react는 Node 서버에서 렌더링을 할 수도 있고, React Native를 이용하면 모바일 앱도 만들 수 있다.




등장 배경

  • 복잡한 웹 애플리케이션의 증가
    웹 애플리케이션의 규모와 복잡성이 증가함에 따라 기존의 js 코드로만 이를 관리하는 것이 어려워졌다. 이로 인해 웹 개발자들은 더 효율적이고 유지보수가 쉬운 방법을 찾고자 했다.

  • DOM 조작의 비효율성
    react같은 라이브러리들이 등장하기 전까지는 js 직접 DOM(Document Object Model)을 조작하여 UI를 변경하는 방식이 일반적이었습니다. 하지만 이는 변경사항이 발생할 때마다 실제 DOM에 접근하고 조작하는 작업이 반복되어 성능 문제를 야기할 수 있었다.

  • 선언적 프로그래밍의 필요성
    복잡한 UI를 관리하기 위해선 UI와 상태(state)의 변화를 더 쉽게 관리할 수 있는 방법이 필요했다. 선언적 프로그래밍은 어떤 상태를 어떻게 표현해야 할지를 명시적으로 작성하는 것을 의미하며, 이로 인해 개발자가 UI의 논리를 더 쉽게 이해하고 관리할 수 있게 되었다.

  • 컴포넌트(component) 기반 아키텍처의 등장
    컴포넌트 기반 아키텍처는 UI를 작은 독립적인 조각으로 분리하여 개발하고 조합하는 방법을 제공한다. 이로 인해 코드의 재사용성이 증가하고 복잡한 UI를 구축하기가 더욱 쉬워졌다.




react는 이러한 배경과 요구사항에 부합하도록 개발되었다. react는 가상 DOM을 활용하여 성능을 최적화하고, 컴포넌트 기반 아키텍처를 채택하여 재사용 가능하고 모듈화된 컴포넌트를 만들 수 있도록 도와주며, 선언적 프로그래밍을 통해 UI와 상태를 관리할 수 있도록 지원한다.

이로 인해 react는 현대적인 웹 개발에서 가장 인기있는 라이브러리 중 하나로 자리잡게 되었다. react와 비슷한 라이브러리(or 프레임워크)은 Vue.js, Angular 등이 있다. 중요한 사실은 react의 시장성은 현재 2023년 1등을 차지하고 있다는 것이다.

react를 배우기 전, html / css / js 에 대한 기초 지식을 갖추고 공부하는 것을 추천한다. 또한 react는 최신 기술 스택을 매우 빠르게 받아들이는 라이브러리이기에, 필자는 책으로 공부하는 것을 권장하지 않는다. 공식문서 혹은 인터넷 강의를 통해 공부하는 것을 권장. 때문에 react의 단점으로 방대한 학습량이 꼽히기도 한다.

하지만 react는 온라인에서 가장 자료가 풍부한 프론트엔드 라이브러리이다. 가장 큰 규모의 커뮤니티를 가지고 있으며 도움이 되는 예제코드, 질문과 답변을 쉽게 찾아볼 수 있다.


react 외에 잘 사용되는 Vue.js 와 Anglar 등은 라이브러리가 아닌 프레임워크로 취급된다. react는 라이브러리를 지향하기에 이 둘과 달리 제어권을 개발자가 가지고 있다는 것이 개발의 자유로움을 더해준다.

profile
안녕하세요! 26살 프론트엔드 개발자입니다! (2024/03 ~)

0개의 댓글