React와 Angular를 비교해 놓은 글들은 이미 상당히 많다.
그래서 나는, Angular를 현업에서 쓰면서 내가 겪은 React와의 차이점에 대해 글을 써보려고 한다🤓
가장 크게 느끼는 차이는 data binding 방식이다.
Angular는 React와 다르게, two-way binding이 가능하다.
즉, 부모 ↔️ 자식 컴포넌트 사이에 데이터를 공유할 수 있다는 것이다.
React는 부모에서 자식으로 데이터를 전달하는 방식이었다면, Angular에선 자식에서 부모로 데이터를 전달 하는 것이 가능하다.
하지만, two-way binding에도 단점은 존재한다.
- 데이터가 변화함에 따라 view와 model도 그 상태를 감지해야 하기 때문에 memory 사용량이 단방향보다 크다.
- 간결한 코드로 가독성이 높아서 복잡해보이지 않을 수 있지만, 코드의 결합도가 높아져 디버깅이 어려울 수 있다.
실제로, 특정 컴포넌트에 간단한 기능을 추가하기 위해 코드를 분석하는 과정에서 컴포넌트 전체 데이터 흐름을 파악하는데 꽤 오래 걸린 적이 종종 있었다.
두번째로 느낀 차이는, Angular는 배워야 할 개념이 꽤 많다는 것이다.
(= learing curve가 높다😅)
- modules
- dependency injection
- services
- templates
- RxJS
- ...
따지고 보면, Angular는 framework이고 React는 View만 담당하는 library이기 때문에 당연한 걸지도 모른다.
service를 사용하면서 typescript에서 class의 구조를 더 잘 이해하게 되고, RxJS를 통해서도 처음에 헷갈렸던 비동기를 자유자재로 사용할 수 있게 되었다.
배워야 할 것들이 많은 만큼, 한 번 그 개념을 이해하고 자주 사용하면서 오픈 소스 라이브러리 등 새로운 코드를 분석하는데 있어서 전체 흐름을 파악하는데 아주 많은 도움이 되었다.
현재는 Angular보다 React가 점유율이 더 높고, 그만큼 커뮤니티나 생태계가 활성되어 있어서 많은 기업에서 사용중이다.
어떤 개발팀에서는 Angular에서 React로 전환하고 있다는 글도 보았다. (link)
나도 지금은 떠났지만, 이전 회사의 개발팀에 React로 전환하자는 의견을 내기도 했었다.(팀 내부에서 여러가지 이유로 진행하진 못했지만😭)
React냐 Angular냐 여전히 프론트엔드 개발 생태계에서 자주 회자되는 이슈인 만큼, 자주 관심을 가지고 찾아봐야 겠다.
출처
https://www.clickittech.com/developer/react-vs-angular/
- https://www.simform.com/blog/angular-vs-react/
- https://borstch.com/blog/understanding-angulars-two-way-data-binding
- https://www.simplilearn.com/tutorials/angular-tutorial/angular-service
Top comments (0)