Angular에서 React로 마이그레이션 검토 시작

배경

2년 전 Angular 1.5로 만든 관리자 대시보드의 유지보수가 점점 어려워지고 있다. 컴포넌트 구조가 복잡해지면서 양방향 바인딩으로 인한 성능 이슈도 눈에 띄기 시작했다.

팀에서 Angular 2+ vs React 중 어느 쪽으로 갈지 논의를 시작했다.

검토 내용

Angular 2+의 장점

  • 기존 팀이 Angular 문법에 익숙함
  • TypeScript 기본 탑재
  • 프레임워크 차원의 완결성 (라우팅, HTTP, 폼 등)

React의 장점

  • 러닝 커브가 상대적으로 낮음
  • Virtual DOM으로 성능 개선 기대
  • 생태계가 활발하고 레퍼런스 풍부
  • 단방향 데이터 플로우로 디버깅 용이
// Angular 1.x에서 겪는 양방향 바인딩 이슈
$scope.$watch('items', function() {
  // 어디서 변경됐는지 추적 어려움
});

결정

소규모 프로토타입을 두 프레임워크로 각각 만들어보기로 했다. 2주 내로 샘플 페이지를 구현하고, 코드 복잡도와 개발 생산성을 비교할 예정이다.

React 쪽에서는 create-react-app으로 빠르게 시작할 수 있다는 점이 매력적이었다. Webpack 설정을 직접 만질 필요 없이 바로 개발에 착수할 수 있었다.

개인적으로는 React 쪽으로 기울고 있지만, 팀 전체의 의견을 모아서 신중하게 결정해야 할 것 같다.