리액트(React)를 왜 배워야 할지
드림코딩 엘리님께서 알려주신 내용을 바탕으로
정리해서 적어보도록 하겠습니다.
주관적인 견해이니 참고만 해주시면 감사하겠습니다☺️
📑 목차
- React란?
- 개발자 트렌드
- 라이브러리 VS 프레임워크
- React의 장점 4가지
- 마무리
📌 React란?
리액트를 한 문장으로 표현해보겠습니다.
'A library for creating User Interface'
즉, 웹 UI를 만드는 라이브러리입니다.
2013년도에 페이스북에서 공개했으며
계속해서 뜨거운 관심과 지속적인 사랑을 받는
자바스크립트 라이브러리입니다.
조금 더 디테일하게 설명해보겠습니다.
리액트로 사용자에게 보이는 UI를 만들고
그 위에서 사용자가 클릭하거나 다양한 이벤트가 발생하게 되면
그 이벤트에 맞게 반응하도록 만들어진 라이브러리입니다.
정리하자면, 리액트는 사용자에게 보이는
유저 인터페이스를 만들 수 있게 도와주는 라이브러리이며
사용자에게 UI를 보여주고 이벤트를 처리하는 일들을 할 수가 있게끔 해줍니다.
📌 개발자 트렌드
리액트의 인기는 날이 갈수록 증가하는 추세입니다.
앵귤러와 뷰와 비교했을 때,
npm에서 다운로드하는 숫자가 굉장히 높습니다.
Stack Overflow에서 관심도를 나타내는
Tag 비율에서 리액트가 수직으로 상승하는 모습을 보여주고 있습니다.
그 말은 우리가 리액트를 공부하고 배워 놓으면 기회비용이 굉장히 좋다는 얘기입니다.
📌 프레임워크 VS 라이브러리
프레임워크와 라이브러리라는 단어를 많이 들어보셨을 것 같은데
두 단어의 차이는 과연 무엇일까요?
집 짓는 것으로 비유하도록 할게요.
'프레임워크'
프레임워크는 이미 집의 구조나 철제들이 완성된 상태의 완성품입니다.
그래서 우리가 할 수 있는 것은 벽돌의 색깔을 바꿔서 벽돌을 붙이거나
집안의 가구를 재배치하는 등의 일들을 할 수가 있습니다.
대표적인 예는 Angular(앵귤러)가 있습니다.
앵귤러에는 UI, Routing, State management, HTTP Clients 등
굉장히 다양한 기능들이 한 번에 묶어져서 제공됩니다.
그래서 앵귤러를 이용해서 웹 어플리케이션을 만들려면
앵귤러에서 제공하는 이런 아이들을 이용해서 만들어야 합니다.
추가로 안드로이드나 아이폰에서 동작하는 모바일 어플리케이션을 만들려면
각각의 운영체제에서 제공하는 프레임워크 위에서 만들어야 합니다.
각 프레임워크에서 요구하는 사항에 맞게 우리의 기능을 구현해야 하는 거죠.
그것처럼 프레임워크는 정해진 골격 안에서 우리가 원하는 기능을 구현해야 합니다.
.
.
.
'라이브러리'
라이브러리는 우리가 원하는 재료들을 골라서
우리의 입맛에 맞게 집을 지을 수 있습니다.
그래서 조금씩 만들어진 이런 부품 하나하나를 라이브러리라고 말할 수가 있습니다.
'레고'라고 생각하시면 조금 편하게 이해하실 수 있으실 것 같습니다.
라이브러리는 UI를 관리하는 라이브러리, Routing에 관련된 라이브러리들,
State를 관리할 수 있는 라이브러리 등 작은 단위, 작은 도메인 안에서
자신들이 원하는 작은 부분을 구현한 것을 라이브러리라고 합니다.
프레임워크와는 다르게 따로 정해진 이런 골격이 없기 때문에
우리가 원하는 구조의 집을 만들 수가 있고
우리가 필요한 기능에 따라서 라이브러리를 골라서 사용할 수가 있습니다.
📌 React의 장점 4가지
1. 이전 버전과의 호환성
앵귤러 1로 힘들게 웹 어플리케이션을 만들었는데
앵귤러 2로 업데이트되면서 1과 호환이 전혀 되질 않아
처음부터 다시 만들 수밖에 없었던 사건이 있습니다.
그때 개발자들이 앵귤러로부터 등을 돌렸습니다.
반대로 리액트는 버전이 업데이트되어도 이전 버전과 호환이 잘되도록
안정성 있게 업데이트되기 때문에 그 점을 신뢰해서 사용할 수 있을 것 같습니다.
.
.
.
2. 강력한 커뮤니티 형성
리액트는 우리가 UI를 정말 쉽고 재밌게 만들 수 있게 도와주는 라이브러리인데요.
페이스북에서 만들어진 이후로 강력한 커뮤니티가
형성이 되어 있기 때문에 문서화가 굉장히 잘 되어 있습니다.
개발하면서 맞닥뜨리는 문제가 있다면,
그 문제를 이미 다른 사람들이 커뮤니티 사이에서 해결했을 가능성이 굉장히 높습니다.
.
.
.
3. 다양한 사용처
리액트를 이용하면 웹 어플리케이션을 만들 수 있고
리액트 네이티브를 이용해서 안드로이드와 iOS에서 사용되는 모바일 어플리케이션도 만들 수 있으며
리액트 + 일렉트론을 이용하면 데스크톱 어플리케이션도 만들 수 있습니다.
그래서 리액트를 배우게 된다면 1석 3조 그 이상의 효과를 누릴 수가 있습니다.
.
.
.
4. 학습 용이성
프레임워크와 라이브러리 둘 중에 어떤 것이 더 좋냐 라는 질문에는 각각 장단점이 있습니다.
우리가 웹에서 만날 수 있는 이 프레임워크와 라이브러리만 놓고 비교를 해보자면,
앵귤러는 배우는 데 시간이 굉장히 오래 걸립니다.
하나의 웹 어플리케이션을 만들기 위해서 배워야 하는 컨셉들이 굉장히 많습니다.
반대로 리액트는 정말 단순하기 때문에 배우는 시간이 상대적으로 정말 짧습니다.
📌 마무리
개인적인 생각으로는 개발자 세계에서 영원한 것은 더욱 없다고 생각합니다.
계속해서 새로운 라이브러리 (혹은 프레임워크)가 나오는
트렌드에 민감한 프론트엔드 분야는 더더욱 그렇다고 생각합니다.
현재 리액트가 가장 괜찮은 라이브러리라고는 하지만
또 언제 더 트렌디하고 괜찮은 것이 나올지 모릅니다.
그러니 새로운 것을 배우는 데 주저하지 말고
트렌드를 연구하며 항상 발전하는 개발자가 되도록 노력해야겠습니다.
이 콘텐츠는 유튜브 채널 [드림코딩 엘리]의
'리액트 개념 정리 + 실전 프로젝트'를 참고하여 만든 것입니다.