티스토리 뷰

Review

프론트엔드 개발자의 React 사용기

그랩그랩 2018. 4. 24. 12:04

장인은 도구를 가리지 않는다. 내가 모자랄 뿐이다. 


  두 번째 React 사용기이다. 이전에 작성했던 글은 Angular 개발자로써 React를 사용했던 경험을 작성을 했었는데, 이번에는 조금 더 객관적인 입장에서 React를 사용한 경험을 작성해 보려고 한다.


1_ '라이브러리' React


  React 공식 페이지에 들어가면 가장 먼저 보이는 문구는 'A Javascript library for building user interface'이다. 그래서 React는 Data에 따른 View를 관리하는데 집중을 한 모습을 보여주고 있다.


  하지만, Single Page Application을 만들기 위해서는 View만 관리하는 라이브러리만 사용할 순 없다. SPA를 만들기 위해서는 아무리 못해도 라우터는 가지고 있어야 하며, 각 컴포넌트 사이에 상태를 전달하고 전달 받을 수 있는 상태 관리 라이브러리도 라우터에 비해 덜 필수적이지만, 가지고 있어야 한다고 생각한다.


  따라서, SPA를 만드는데 React는 친구들이 여럿 필요하다. 개인적으로 React를 사용하면서 반드시 설치하는 라이브러리는 API 호출을 위한 'Axios', 라우팅을 위한 'React Router', 상태 관리를 위한 'Mobx'는 필수로 설치하고 시작한다. 이외에도 Rxjs, moment 등도 거의 매번 설치 하긴 하지만 앞서 말한 3개의 라이브러리에 비하면 필수라고 생각하진 않는다.


  이처럼 React는 View를 관리하는데 집중을 하고 있기 때문에 SPA를 MVC(변형인 MVVC라던지) 패턴으로 제작을하려면 View를 제외한 다른 것들을 관리 해주는 라이브러리가 추가적으로 필요하다.


2_ 이전보다는 객관적인 React VS Angular


  첫번째 React에 관한 글을 작성할 때, 솔직히 말하면 Angular에 대한 변호를 하기 위해 썼었다. React를 많은 사람들이 사용하고 있지만, Angular도 그에 못지 않다고 말하고 싶었다. 하지만, React를 더 사용하면서 느낀 점은 React도 나쁘지 않다. 라는 생각이 들었다.


  Angular의 가장 큰 장점은 프래임워크라는 것이다. Angular에 속한 모듈을 이용하면 추가적인 라이브러리 설치 없이 SPA를 만들어 낼 수 있다. 하지만, Angular의 가장 큰 단점은 프래임워크라는 것이다. Angular의 공식문서에는 Angular 개발에 대한 가이드라인을 제시하고 있고, 또 그렇게 코딩을 했을 때 Angular의 장점을 더 부각 시킬 수 있는 코드가 나온다. 그렇기 때문에 개발자마다 특징있는 코드가 나오기가 어려우며, 또 Typescript를 이용하고 있기 때문에 기본적으로 Javascript 기반인 React보다 정형화된 코드가 된다는 것이다. 만약 당신이 코드의 구성이 귀찮더라도 체계적이며, 개발의 자유를 조금 손해보고서라도 일관적인 코드 작성을 좋아한다면, 당신은 Angular를 선택하는 것이 좋을 것 같다.


  그에 반해 React는 라이브러리이기 때문에, React가 담당하는 기능 이외의 기능에 대해서는 개발자의 입맛에 맞는 라이브러리를 선택할 수 있다. 또 개발에 대해서도 Angular에 비해 자유로운 코드 구조를 가지고 있기 때문에, 개발자 개개인의 입맛에 맞는 코드 작성을 원한다면 React가 Angular에 비해 나을 것이다.


  이 글을 읽고 있는 당신이 만약 처음 웹 개발에 발을 들였고, React와 Angular 중에 어떤 것을 선택해야 할지 고민 중이라면 사실 어떤 것을 선택해도 문제 없을 것이다.


  다만, Angular와 React 외적인 부분을 보면 개인적으로는 React를 선택하라고 하고 싶다. 국내에선 많은 기업들이 React를 채택하고 있고, 국내외에서 Angular 사용자에 비해 React 사용자가 많으며, 그에 따라 React에 대한 레퍼런스가 더 많기 때문에 개발과정에서 생기는 많은 문제들에 대한 해결책을 쉽게 얻을 수 있을 것이다.


3_ 맺음말


  Angular와 React는 많은 공통점을 가지고 있다. 하지만 그 만큼 그 둘의 차이점도 크다. 예전 글에서는 Angular를 많이 변호를 했었지만, 지금은 어떤 것을 이용해 웹 개발을 하더라도 상관 없다.라는 입장으로 바뀌었다. 각각의 장단점을 잘 이해하고, 각각의 장점은 극대화 하고 단점은 보완하는 코딩을 할 수 있다면 프론트엔드 개발자로서 극의에 다달았다고 할 수 있지 않을까? 아직까지 그정도 수준의 코딩을 할 수 있다고는 할 수 없지만, 지난 몇 달간 Angular와 React를 번갈아 사용하면서, 이 두 프래임워크, 라이브러리에 대한 차이점은 많이 이해 했다고 생각한다.


  더 나은 프론트엔드 개발자가 되기 위해서는 도구를 가리지 않는 개발자가 되어야 하지만, 자신만의 도구를 가지고 있어야 한다고 생각한다. 더 나은 개발자가 되려면 아직 멀었다.

댓글
Total
Today
Yesterday
공지사항
최근에 올라온 글
최근에 달린 댓글