단순 스프링 MVC 프로젝트에서 리액트를 도입하려는 회사에서 알아야 할 장단점 대충 정리

jakeseo_me·2021년 6월 10일
1

리액트 기술의 특징 및 장단점 생각해보기

장점

  • 한 페이지에서 모든 것을 해결
    • 새 창을 띄우거나 새로고침이 거의 없음
  • 데이터의 변화가 화면의 변화로 이어짐
    • 데이터 바인딩이 많을 때 사용자 경험 최적화
  • HTML 코드가 거의 없음
    • 뷰 단임에도 불구하고 하드코딩이 거의 없는 편
    • 뷰 단을 JS로 컨트롤하기 때문에 뷰단에 로직을 넣기 매우 편리함
      • 이것 하나만으로 뷰에 대한 자유도가 엄청나게 올라가서 뷰에 무얼 구현하든 바닐라보다 훨씬 편리함
  • 리액트를 학습한 사람이면, 나중에 리액트 네이티브로 네이티브 앱을 만들 때, 도움이 많이 됨
    • Android, IOS 전부 가능. 그러나 이슈사항도 매우 많이 발생
    • 아무리 리액트 네이티브를 한다고해도 각 OS별 네이티브 개발자 한명씩은 있어야 하는 것 같음
  • 리액트로 갖다쓸 수 있는 프론트 뷰 라이브러리들이 매우 많음
    • 대부분 내가 원하는 화면을 직접 구현할 필요도 없이 라이브러리 갖다쓰면 되는 경우가 매우 많음
  • 한 페이지에서 뷰 컴포넌트를 만들어서 다른 여러 페이지에 재활용이 매우 쉬움
    • 중복된 요소를 개발할 때 빛을 발함
    • 코드도 깔끔하게 나옴

단점

  • 인력수급이 비교적 힘듦
    • 잘하는 리액트 개발자는 매우 귀함 (유행한지 몇년 안된 기술임)
    • 학습 곡선이 꽤 있고 (단기간에 전문가가 되긴 어려움), 리액트를 잘하는 사람이 있어야 함.
    • 기본적으로 자바스크립트에 대한 상당한 이해도가 있어야 함. (그 외에 웹팩, JS ES6, Node JS(Common JS와 기타 Node 기능들), NPM 생태계, 상태관리 도구(Redux), 기타 도구(Redux-saga, SWR) 등에 대한 이해가 필수적으로 있어야 자유롭게 개발 가능)
      • 프론트 전문 개발자가 존재하고 프론트 전문 개발자들이 처리하는 영역임.
    • 기존에 쉽게 구현하던 부분도 리액트를 적용하면 어려움이 많이 발생. 다양한 문제에 직면할 확률이 높음.
      • 검색엔진에 검색되려면 SSR 해야하고, React 배우고 Next 배워야 함.
      • 단순히 따라만 하면 되는 게 아니라, 검색엔진에 페이지들이 어떻게 올라가는지에 대해서도 전반적인 이해가 상당히 필요한 부분임.
  • 보통 API 서버와 프론트 서버를 나눠서 구축함
    • 기존에 서비스를 제공하던 방식이 단순 스프링 MVC면 API를 분리하는 작업도 상당히 많이 해야 할 수 있음
  • 로그인/로그아웃 등 권한 및 보안 관련 작업 시에 스프링에서 간단히 스프링 시큐리티가 해결해주던 부분들을 직접 신경써야 할 수도 있음
    • CSRF 문제 등..
  • 일단 초기 예산으로 개발한다고 해도 유지보수는? (돈이 부족할 수도 있음)
    • 만들어놓는다고 해도 해당 영역을 개발하던 개발자가 아니면 프로젝트에 손도 못댈 수 있음
    • 아무나 뽑지말고 꼭 리액트 프론트엔드 개발자를 뽑아야 함.
      • 아무나 뽑아도 조금만 배우면 프로젝트에 투입될 수 있는 일반적인 프론트(단순 html, css, js)와 난이도가 판이하게 다르기 때문에 나중에 손도 못댈 수 있음
profile
대전에 있는 (주) 아이와즈에서 풀스택 웹개발자로 일하고 있는 서진규입니다. 주로 Jake Seo라는 닉네임을 많이 씁니다. 프론트엔드: Javascript, React 백엔드: spring, node.js, nest.js, JPA, type orm 에 관심이 있습니다.

관심 있을 만한 포스트

0개의 댓글