jQuery 개발자가 Vue.js를 시작하다
jQuery 개발자가 Vue.js를 시작하다
왜 이제서야
Vue.js를 공부하기 시작했다.
사실 프론트엔드 프레임워크 공부는 진작에 했어야 했다. React, Vue, Angular… 다들 몇 년 전부터 쓰고 있는데, 나는 아직도 jQuery로 버티고 있었다.
jQuery가 나쁜 건 아니다. 10년 넘게 써왔고, 못 하는 게 없다. 근데 최근 프로젝트들을 보면 점점 jQuery를 쓰는 곳이 줄어들고 있다. 클라이언트도 “Vue로 해주세요” 같은 요구사항이 늘었다.
나태해지는 개발자 글에서 “의도적으로 새로운 기술을 프로젝트에 섞자”고 했는데, 이번이 그 실천인 셈이다.
React vs Vue 선택
셋 중에 고민하다가 Vue를 선택한 이유가 있다.
일단 러닝 커브가 상대적으로 낮다고 해서. jQuery에서 넘어오는 사람한테는 Vue가 적응하기 쉽다는 이야기가 많았다. HTML 템플릿 기반이라 기존 마크업 구조와 비슷하니까.
React는 JSX가 좀 낯설었다. HTML 안에 JavaScript를 쓰는 건 익숙한데, JavaScript 안에 HTML을 쓰는 건 처음에 어색했다.
Angular는 너무 거대해 보였다. TypeScript 필수인 것도 부담이었고.
첫 인상
Vue를 처음 만져봤을 때 솔직한 감상.
반응형 데이터 바인딩이 신세계다.
jQuery에서 DOM을 직접 조작하던 것에 비하면 정말 편하다. 데이터를 바꾸면 화면이 알아서 바뀐다. jQuery로 이걸 하려면 $('.target').text(newValue) 이런 코드를 일일이 써야 했는데.
// jQuery 방식
$('#counter').text(count);
$('#status').text(count > 10 ? '초과' : '정상');
$('.counter-display').toggleClass('warning', count > 10);
// Vue 방식
data() {
return { count: 0 }
},
computed: {
status() { return this.count > 10 ? '초과' : '정상' }
}
컴포넌트 시스템도 좋다. 재사용 가능한 UI 조각을 만들 수 있다는 개념은 알고 있었지만, 실제로 써보니까 프로젝트 구조가 깔끔해지는 게 느껴진다.
어려운 점
물론 쉬운 것만 있진 않다.
상태 관리(Vuex)가 처음엔 이해가 잘 안 됐다. 왜 이렇게 복잡하게 해야 하지? 그냥 전역 변수 쓰면 안 되나? 라는 생각이 먼저 들었다. 근데 프로젝트 규모가 커지면 왜 필요한지 이해가 된다고 하니까 일단 배우는 중이다.
빌드 도구도 낯설다. jQuery는 스크립트 태그 하나면 끝이었는데, Vue는 webpack이니 Vite니 빌드 설정이 필요하다. npm, node_modules, package.json… 프론트엔드 생태계가 이렇게 복잡해졌다니.
앞으로
일단 간단한 프로젝트에 Vue를 적용해보려고 한다. 기존에 jQuery로 만들었던 관리자 페이지를 Vue로 다시 만들어보는 게 좋은 연습이 될 것 같다.
늦었다고 생각하는 시점이 가장 빠른 시점이라는 말이 있는데… 솔직히 좀 늦긴 했다. 근데 AWS도 늦게 시작했지만 결국 잘 쓰고 있으니까, Vue도 그렇게 되지 않을까.
새로운 기술을 배우기 시작하면 다시 초보가 된 느낌이 들어서 묘하게 재밌다. 모르는 게 있어야 검색하게 되고, 검색하다 보면 코드를 치게 되고. 이게 나태함을 이기는 방법이라고 했었는데, 진짜 그런 것 같다.