angular 1,2 vs. react

react가 좋다고 해서 react를 열심히 공부했다. react 자체는 굉장히 난이도가 쉬웠지만, 이것저것 붙여야하는 라이브러리가 꽤 많았다. 가장 대표적인 것이 flux 구현체인 redux. 그렇게 redux를 공부하다보니 flux 아키텍쳐에 대한 강한 갈망이 느껴졌다. 당장에라도 도입하고 싶은 마음이 컸는데, 이를 어쩐담? 이미 서비스는 앵귤러로 많이 진행한 상황. 결정의 순간이 왔었다. angular 라인을 탈 것이냐, react 라인을 탈 것이냐.

웹 개발로 앱까지 커버해야하는 특수한 상황이 ionic을 놓지 못하게 만들었던게 컸다. 결론부터 말해 angular를 계속 사용하기로 결정했다. 일단, react가 flux를 구현하기 굉장히 편한 것에는 왕왕 동의한다. 하지만, redux는 react-binding(react-redux) 뿐만 아니라 angular-binding(ng-redux), angular2-binding(ng2-redux) 도 제공하는 것을 발견했다. ionic의 빌트인 컴포넌트를 포기하고 react로 바닥부터 짜기에는 의 느낌을 주기 힘들 것 같다는 생각도 들었다. 결국 앱을 생각하면 ionic을 포기할 수 없고, angular를 포기할 수 없다는 것이 결론.

이렇게 나의 react 스터디는 얼추 끝났다.

공부한 관련 라이브러리는 react, react-redux, redux-form, redux-logger, redux-thunk, immutable.js, Ramda.js를 이용해서 현재 서비스를 적당히 리액트로 포팅해봤는데, 정말 편하다고 느꼈고, 정말 리액트로 모든 것을 바꿔버리고 싶었지만, 앱과 회사 사정 상 불가능하게 된 것 같다. 그리고 사실 조금 번거롭긴 해도 웬만한 빌트인 모듈들이 짱짱한 angular도 나쁘진 않은 선택이다. 최대한 custom directive 위주로 개발하면서 react로도 컴포넌트를 쌓아가며 개발하면 react & redux 조합처럼 꽤 괜찮은 시너지를 낼 수 있더라고.

 


이 글을 읽는 여러분을 위해 간단한 질답을 준비했다.
이 질답으로 어떤 프레임워크를 선택할 지를 잘 고르시면 좋을 듯.

 

1. 웹 개발자를 그대로 앱 개발로 돌려서 활용하고 싶다

=> angular or angular2! react native는 현재 괜춘한 전용 IDE도 있는 것 같고  최신의 느낌을 주기 충분하지만, 안드로이드 성능이슈도 있고 슥 훑어본 결과 iOS와 android의 컴포넌트들을 잘 알고 있어야하는 것 같다. 내 경우 android야 어느 정도 개발할 수 있겠지만, 손도 안대본 iOS는…

2. 주변에 연락닿는 angular 개발자가 많다

=> react! react의 러닝커브는 그렇게 가파르지 않다. react는 angular 개발자가 이해하기에 어렵지 않다. flux 아키텍쳐도 약간의 무서움이 있을 수 있지만, 이미 flux가 잘 정착된 프로젝트에 투입되는 경우라면 오히려 angular보다 더 빠르게 프로젝트에 적응할 수 있을거라고 본다.

3. 성능이 중요하다.

=> react or angular2! 성능상으로는 angular2가 react보다 더 뛰어나지만, 개발자 구하기가 매우 힘들 것 같다. 물론 angular1이 그렇게 느리진 않다. 특히 ngRedux와 함께 사용하면 dirty-checking의 지옥에서 빠져나올 수 있다. 양방향 데이터바인딩에서 오는 성능저하를 redux로 상당부분 커버가능한 부분으로 보임.

4. 가볍게 배워본다면 둘 중에 뭘 선택할까 고민 중이다.

=> angular를 이미 해봤다면 ngRedux와 엮어서 mvc 아키텍쳐를 부수면서 새로운 토이 프로젝트를 만들어보는 것을 추천, 프론트엔드 자바스크립트 프레임워크를 다뤄본적이 없다면 react!

5. 프로젝트에 명확한 계획이 없다.

=> react! 

 


남기고 싶은 말:
react를 공부하다가 redux에 빠져버린 건 함정이다.
무슨 프론트엔드 프레임워크를 쓰던 꼭 redux 쓰세요, 두 번 쓰세요.

 

Leave a Reply