react js 공부를 시작하려합니다
프론트앤드에서 매우 유행하는 react js 에대해서
관심이 생겼습니다.
프론트앤드에서 react js 를 쓴다면 어떤 장점이있죠??
react js의 전망은 어떤가요??
고수님들 답변 부탁드립니다
장점
#Component
컴포넌트란 UI를 구성하는 개별적인 view 단위이다. 전체의 앱은 각 컴포넌트를 조립해서 만들어진다. 모듈화를 통해 유지, 보수가 용이하다는 점이 있다. 본인에게는 컴포넌트가 모듈화의 가이드라인을 제시해주는 것처럼 느껴진다.
#JSX
React에서 새로 도입된 자바스크립트 문법이고 React에서만 사용된다. JSX 문법을 사용하지 않고도 React 개발이 가능하며, 또한 브라우저에게 이해시키기 위해서는 초기 Webpack 설정이 필수(create-react-app을 사용하면 자동으로 추가되지만)이다. 그럼에도 JSX를 사용하는 중요한 이유중 하나는 코드의 직관성이다.
HTML과 JavaScript를 분리하여 개발하는 것이 기존의 개발 방법이었다. 그래서 한쪽의 코드만 봤을 때 이 코드가 정확히 어떤 동작을 하는 것인지 쉽게 알 수 없었다. 이에 유저에게 보여주고 싶은 view에 개발자가 직관적으로 도달할 수 있도록, 마치 HTML과 JavaScript가 합쳐진 것처럼 보이는 JSX가 도입되었다.
#Virtual DOM
DOM은 브라우저가 화면을 그리기위한 정보를 담고있는 문서 객체이다. JQuery처럼 실제 DOM을 변경할 경우, 변경할 부분이 일부분이더라도 DOM 전체를 다시 렌더링해야하고, 이는 성능 저하로 직결된다는 단점이 있다.
React는 렌더링 시 Virtual DOM, 즉 가상 DOM을 먼저 만든다. 그 후 실제 DOM과 비교를 하여 변경이 있는 부분(하위 컴포넌트)만 대체를 하기 때문에 리소스 낭비를 줄일 수 있다. 라이브러리를 통해 React에서도 JQuery를 사용할 수 있지만 이는 추천되지 않는 방법이다.
#단반향 데이터 바인딩
React 내에서의 데이터의 흐름은 부모(Parent)에서 자식(Child)으로 단방향적이다. 그렇기 때문에 디버깅이 용이하며, 다른 라이브러리에 비해 안전성이 높다.
다만, 전역에서 접근해야하는 데이터가 존재할 경우(로그인 여부 등...)가 있고, 이는 Redux를 통해 관리를 하는 방법도 존재한다.
#활발한 커뮤니티
모든 기술이 그렇듯 커뮤니티가 얼마나 크고 활발한지가 해당 기술을 선택하는 척도 중 하나다. 여러 자바스크립트 라이브러리와 프레임워크가 있겠지만 그 중에서도 React가 제일 높은 시장 점유율과 선호도를 갖고 있다. 그렇기 때문에 다양한 라이브러리 사용이 가능해진다.
리엑트의 전망은 굉장히 좋습니다.
현재도 구인구직도 점점 늘어나고 있는 추세이며
프론트 3대장이라고도 불리는 리엑트 , 뷰, 앵귤러 중에서도 가장 전망이 좋은 편에 속합니다.
장점이라면 아무래도
버츄얼돔 등을 이용한 가상화된 돔 제어
컴포넌트간에 자연스러운 데이터 동기화
웹 뿐만 아니라 앱 개발에도 사용 가능한 점( React Native )
페이스북이라는 거대한 업체의 지원
가장 거대한 커뮤니티 보유 등이 있겠습니다.
더불어서 프론트 프레임워크 간에 장단점 등이 궁금하시면
아래 URL 에 간단하게 잘 정리되어 있으니 참고하시면 좋을것 같습니다^^
react.js 장점이라면 컴포넌트로 개발 할 수 있다는 부분 같습니다.
컴포넌트 단위로 개발을 하게되면 재상용성이 높아지기 때문에 코드의 양과 복잡성이 낮아지는 장점이 있습니다.
아직까지 국내에서는 프론트 개발하면 react를 많이 사용하고 있습니다.
vue.js도 사용하기는 하지만 국내에선느 압도적으로 react가 사용 빈도가 높은걸로 알고 있습니다.
react는 페이스북이 개발을 주도 하고 있기 때문에 전망은 좋다보 보여집니다.
매번 더 좋은 코드를 만들 수 있도록 지원이 많기 때문입니다.
그만큼 빨리 변하기도 합니다. ㅠㅠ
안녕하세요. 인라인으로 답변 드립니다.
프론트앤드에서 react js 를 쓴다면 어떤 장점이있죠??
처음에 제작하는 것은 다소 신경을 많이 써야 하지만, 만들어 놓고 나면 하나의 소스로 여러가지 화면 크기와, PC, 노트북, 아이폰, 안드로이드등 다양한 해상도를 가지는 디바이스에 하나의 소스로 대응할수 있습니다. 물론 화면에 보이는 것도 가장 깔끔하구요.
react js의 전망은 어떤가요??
예전에는 모바일과 PC용을 따로 나누어 개발했지만, 지금 개발하는 것은 react가 표준이라고 할정도 많이 쓰입니다. 일단 웹을 개발하시는 데에도, 특히 프론트엔드에서는 필수이고, 나아가서 react native로 모바일 앱을 개발할수도 있으니 전망은 좋은 편이라고 할수 있습니다. 다만 이런 스크립트 언어로 모바일 앱을 개발하는 것은 여러가지 시도가 있어서 어떤 것이 딱 정답이다라고 이야기하기 어려운 부분은 있으나, react native도 분명 좋은 솔루션입니다.
고수님들 답변 부탁드립니다
react 의 장점은
1. 양방향 바인딩
단방향 바인딩의 경우 뷰를 업데이트하는 소스코드가 필요합니다.
예를 들어 데이터 조회 후 뷰(html template)를 업데이트 해줘야 합니다.
하지만 양방향 바인딩은 사용자의 뷰를 업데이트 하는 코드 없이
모델에서 template으로 template에서 모델로 값을 자동으로 데이터를 채워줍니다.
그로써 반복적인 소스코드를 줄일 수 있습니다.
개인적으로 해당 기능만으로도 굉장히 매력적입니다.
2. React-native
react-native를 통해 모바일 웹과 pc웹을 동시에 호환하는 개발을 진행할 수 있습니다.
3. Components
재활용성을 높여주는 Component 를 활용한 개발
예를 들어 게시판을 하나 만들었다면(Component) 해당 Component로
질문하기 게시판/자유게시판/공지 게시판... 하나를 이용해 다양하게 활용할 수 있습니다.
4. 다양한 라이브러리 존재
예를들어 파일업로드를 개발한다고 한다면 파일업로드 라이브러리를 설치하고 호출하면 끝난다.
일반적으로 개발시 필요한 라이브러리들이 많이 존재하기 때문에 손쉽게 구현할 수 있다.
장점은 더 많겠지만 주요 기능만 나열하였습니다.
공부하시다 보면 하나씩 보이게 될것입니다.
우리나라에서 react의 전망은 매우 좋습니다.
현재 대부분의 프론트 개발이 react, vue 그리고 가끔 angular 를 사용합니다.
회사마다 사용하는 프레임워크가 다르지만 react, vue를 한다면 대부분 회사에서 긍정적인 반응을 보일것입니다.
프론트 개발 자체가 이제 점점 하나의 전문 개발 분야로 분리되어 높은 연봉과 대우를 받습니다.
프론트 개발자를 많이 뽑지만 인력이 부족한단 느낌을 받습니다.
그만큼 프론트 개발도 많은 지식이 필요한 분야로 발전하고 있다고 생각합니다.
센더스님의 프론트 개발자의 첫발을 react로 하는것을 좋은 선택이라고 생각하고 응원합니다.