[React] - Intro

JP·2023년 1월 18일
0

* [ React ] *

목록 보기
2/12
post-thumbnail

REACT

메타에서 개발한 오픈 소스 자바스크립트 라이브러리.

				Web Application의 발전

우리가 사용하는 사이트에는 보이는 것(UI: User Interface)과 할 수 있는 것(UX: User Experience)이 많다. 뿐만 아니라 문서 작성, 쇼핑, SNS, 게임 등의 기능을 웹 브라우저에서 이용할 수 있다. 이처럼 사용자가 별도의 응용 소프트웨어(애플리케이션)를 설치하지 않아도 웹 브라우저를 통해 응용 소프트웨어의 기능을 이용할 수 있도록 만든 웹 서비스를 웹 애플리케이션(Web Application)이라고 한다.
이러한 이유로, 현대의 대다수 웹 서비스는 웹 페이지라는 단어보다 웹 애플리케이션이라는 단어가 많이 사용 되고 있다.

과거의 웹 페이지는 UI 가 단순하고 검색어 및 회원정보 입력, 항목 클릭 등 비교적 상호작용이 적었던거에 비해 현재의 웹 애플리케이션은 동적이고 다양한 ui 를 가지며 카테고리 hover 이벤트, 좋아요 및 장바구니 기능 등 유저와의 상호작용이 많아지고 다루어야 할 데이터와 코드가 증가하게 되었다.

이처럼 규모가 커지고 다양한 ui, ux 를 구현하기 위해서는 이전의 방법 (dom 에 직접 접근해서 조작) 으로는 웹 애플리케이션을 개발하고 유지보수하는 것이 어려워졌다.

이를 보완하기 위해 dom 조작을 쉽게 만들어주는 jQuery 라는 자바스크립트 라이브러리가 등장했지만, jQuery도 결국엔 dom 에 쉽게 접근해서 조작을 가능하게 하는 메서드의 모음이었기 때문에 화면의 무수한 DOM 요소들에 직접 접근해서 조작하고 관리하기란 쉽지 않았다.

그래서 규모가 커지고 복잡한 웹 애플리케이션을 개발하며 생산성을 향상시키고, 많은 양의 데이터 관리와 코드 유지보수를 더욱 편리하게 하기 위해 다양한 프론트엔드 Framework 와 Library 가 등장 하게 되었다.

			Framework와 Library 차이점 

프레임워크와 라이브러리는 복잡한 개발을 효율적으로, 편리하게 하기 위해 다른 개발자들이 만들어 둔 코드라는 공통점을 가지고 있다.

둘의 차이점은, Framework 는 다른 사람이 만들어 둔 코드의 정해진 틀 (frame) 속에서만 수동적으로 작업 (work) 해야 하지만
Library 는 개발자가 작업을 진행할 때 필요한 기능을 찾고 (library) 능동적으로 가져와서 사용할 수 있다 .
다시 말해 framework 는 전체적인 흐름을 이미 자체적으로 가지고 있어 개발자가 그 흐름에 맞게 코드를 작성해야 하고 라이브러리는 개발자가 흐름을 가지고 원하는 library 를 가져다 사용할 수 있다.

즉 framework 를 활용한다는 것은 틀이 짜인 작업환경에 개발자가 들어가서 작업을 하는 것이고, library 를 활용한다는 것은 다른 사람이 만들어 둔 도구를 개발자가 작업할 때 가져와서 활용하는 것이다.

이러한 프레임 워크와 라이브러리 중 프론트엔드 에서 가장 많이 쓰이는 세가지가 바로 ANgular, Vue, React 이다.
앵귤러와 뷰는 프레인 워크 이며 리액트는 라이브러리지만 프레임워크적인 특징을 일부 가지고 있다.

				React를 사용하는 이유

그렇다면 왜 우리는 모든 게 갖춰진 앵귤러나 뷰같은 프레임워크가 아니라, 라이브러리인 리액트를 사용할까

리액트는 자기만의 문법을 가진 앵귤러나 뷰와는 다르게 대부분 자바스크립트의 문법을 그대로 활용한다.
따라서 이미 자바스크립트에 친숙하다면 리액트를 잘 활용할 수 있고, 처음 학습하는 사람 입장에서도 리액트 를 공부하고 활용하면서 자연스럽게 자바스크립트에 대한 이해도와 활용도를 높일 수 있다.

또한 메타버스의 지속적인 관리와 함께 생태계가 활성화 되어 있어, 사용자가 많고 커뮤니티가 발달해 있어 리액트를 활용하면서 마주할 문제들에 대한 해결방안을 쉽게 찾아볼 수 있고 ,이는 곧 개발자의 생산성을 향상하는 결과를 가져온다.

그리고 리액트를 사용하는 웹 개발자는 리액트 기반의 React Native 라는 기술을 통해 웹 뿐만 아니라 iOS, 안드로이드 기반의 모바일 애플리케이션도 개발할 수 있다.

profile
🐰와 🐢에 🐢

0개의 댓글