리액트에서 도망치고 싶은 개발자의 잡담
사실 저는 비생산적인 개발자입니다.
뛰어난 도구를 찾기보단 익숙한 도구로 답을 찾습니다. 결국 여전히 제가 가장 잘하고, 좋아하는 도구는 jQuery이고, jQuery기반의 수많은 플러그인을 사용하고 있습니다.
여전히 저는 리액트가 어렵습니다.
저는 강의도 봤고, 공부했고, 앱도 만들고, 앱도 서비스할 수 있으며 서비스합니다. 다만 과정이 너무 복잡했습니다. 저를 가장 힘들게 하는건 컴포넌트간 연결과 모듈입니다. 리액트는 분명 라이브러리인데, 라이브러리를 위해 써야하는 모듈이 뭐가 이리 많은지, 그리고 그걸 다 공부해야하고, 모듈을 적절히 활용해서 앱을 만들어야 한다는게 힘든 일입니다.
저는 리액트를 쓰면 규칙을 따라 디자인해야한다는 압박을 받습니다. 버그를 자주 만날 뿐 아니라, 버그가 나타나는 경우도 천차만별입니다. 더 빠르고 쉽게 작업하기 위해 쓰는게 라이브러리인데, 리액트를 쓰다보니 새로운 문제를 마주하면서 생산성은 계속 떨어집니다.
저는 아래의 경험을 자주 겪었습니다.
1. 리액트 개발 중 문제가 나타난다.
2. 문제 해결법을 찾아본다.
3. 특정 모듈이 답이라고 한다.
4. 모듈을 추가하고 사용법을 배운다.
5. 반복한다.
이러한 일들은 저만 겪는건 아닌 것 같습니다. 리액트 커뮤니티에 가끔 글을 올려보면 비슷한 피드백을 받곤 합니다. 뿐만아니라 어떤 문제가 나타난다 하면 이 모듈을 통해서 해결하면 됩니다 하고 문제가 일단락됩니다. 하지만 시간이 조금 흐르면 다시 새로운 문제가 나타나고, 새로운 모듈도 나타납니다. 저는 이 과정이 재밌기보단 지치는 일이었습니다.
리액트는 버전에 따라서 버그가 나타나는 경우 또는 리액트를 기반한 다른 모듈이 버전에 따라 버그가 나타나는 일이 빈번했습니다. 결국 리액트에선 단순한 기능 하나를 구현하기 위해선 내가 만들지도 않은 모듈의 역사를 살펴봐야 하고, 그들이 이슈 트레킹에서 서로 피드백 하는 얘기나 들어야 합니다.
그러나 Vue.js(이하 뷰)를 사용하면서 이런 경험은 거의 없었습니다.
라이브러리 본래에 목적에 맞게 기존 홈페이지에 일부분을 뷰로 변경하는 일은 간단했습니다. 제 경우엔 정말 재밌는 작업이었습니다. 또한 전체 프로젝트를 뷰를 사용한 앱을 만들 때에도 개발하면서 문제가 나타나지 않았기 때문에 새로운 모듈을 설치해야하는 상황도 없었습니다.
또한 제가 뷰를 좋아하는 이유는 매~~~~~~우 친절한 공식 문서입니다.
완벽한 한글화가 된 걸로 보이고, 예제도 군더더기가 없습니다. 코드 중간 중간 약간의 농담도 보이는게 취향저격입니다. 또한 러닝커브를 생각해보면 뷰에는 추가로 배워야 하는 것들이 많지 않습니다. 리액트가 ES6와 JSX, 그리고 리덕스를 비롯해 수많은 필수 모듈을 배워야 하는 것과 상반됩니다.
위의 링크는 리액트에서 빈번하게 사용되는(거의 무조건) 리덕스를 쉽게 알려주기 위한 만화인데, 저는 만화도 어려워서 몇 번을 봤는지 모르겠습니다.(나만 바보인가..) 수십번을 봐도 여전히 100% 이해했다고 말 못하겠습니다.
뷰가 쉽다는걸 말하기 위해 리액트가 어렵다는 것만 주저리 떠든 것 같은데... 뷰는 정말... 쉽습니다. 만약 jQuery를 사용해보신 분이시면 뷰는 하루 안에 메커니즘을 이해해서 기존의 코드를 바꿔가며 테스트해보실 수 있을 겁니다.
통계를 하나 가져왔습니다.
위의 이미지는 깃허브에 등록된 프로젝트가 무엇을 사용했는지 보여주는 그래프입니다. 보시면 아시겠지만, 뷰는 리액트가 앵귤러를 추월했던 것보다 더 빠른 속도로 성장하고 있습니다.
이미 2018년 말에 역전을 했고 뷰를 기반한 모듈의 성장 및 개발자들의 선호도 변화도 놀랍습니다. 이런 통계는 아래의 링크에 잘 요약됐습니다.
아마 앞으로 몇 년간은 리액트, 앵귤러가 시장에서 많이 사용되는 언어일 것이 분명합니다. 하지만 이렇게 빨리 성장하는 라이브러리는 아직까지 없었던 것 같습니다. 아직까지 많이 쓰이고, 빠르게 성장하는 라이브러리의 특징은 쉽고, 강력했습니다.
물론 저는 앞으로도 리액트와 리액트 네이티브를 사용할 겁니다. 또한 리액트 욕을 하지만 리액트가 더 잘되서 러닝커브를 확 줄여서 더 뛰어난 라이브러리이자 프레임워크로 성장했으면 좋겠습니다. 하지만 저는 홈페이지를 만들 땐 앞으로 뷰만 사용할 것 같습니다. 너무 쉽고 좋아요. 저처럼 리액트가 힘든 분들은 뷰의 세계에서 안식을 찾는걸 추천드립니다.