Ping 10/Nov/2020
올해 초에는 Vue.js을 많이 쓸일이 있었었다.
아주 오래 전에, Adobe Flex에서 MXML, ActionScript3 같은 것을 써서 화면 컴포넌트를 만들던 이후로 거의 10여년 만에 화면에 필요한 컴포넌트를 만들고 개발을 해봤다.
그 중간 중간 jQuery을 이용해서 웹화면을 만들거나 하는 경험도 있기는 했었는데, 재밌게도 그 이전에 사용하던 MXML, AS3의 컴포넌트 중심 개발방식이 훨씬 앞선 것이었다는 생각을 했다.
실제로 2008년 정도에도, 현재의 ES6 같은 느낌의 AS3으로, Class based OO을 하고 코딩을 하고, 화면 컴포넌트들을 JSX와 유사한 모양의 MXML으로 조직하고, 또 바인딩을 이용해서 지금의 Vue, React에서 State을 이용하여 데이터를 이용하여 컴포넌트를 어떻게 그릴지 결정해서 개발을 했었었다.
Vue을 하면서 솔직히 그렇게 자연스러운 부분이 적다고 생각했다. 예전 Flex3을 할 때 보다는. 하지만 리액트도 마찬가지고, 어쩌면 더 Flex3보다 구조화와 원칙의 정리가 되어서 그렇다고 이제는 생각한다.
반대로, 그때 당시에 Flex3을 하는 커뮤니티는 지금의 자바스크립트, 리액트 커뮤니티보다 훨씬 작았었고, Redux, MobX 등의 상태관리 시스템은 물론이고 그 이외에 수 많은 진지한 라이브러리들이 AS3으로 만들어지고 공유되지 않았었던 것 같다.
지금의 JS커뮤니티는 프론트엔드 개발만이 아니라 Node.js을 중심으로 정말 고품질의 라이브러리들도 많이 만들어지고 공유되는 것이 놀라울 정도다.
지난 포스팅에서도 조금 이야기를 했지만, 그때의 기술적 한계, 제약 때문에 그런 것들이 세상에 없었던 것이 아니라, 어떤 기술을 바라보는 시점과 그 시각들에서 기대하고 있는 가능성이 아주 하찮았기 때문에 사람들이 그런 개발과 공유를 하지 않았었지 않은가 생각한다. 그리고 그랬었기 때문에 그런 커뮤니티와 생태계가 생겨날 필요도 없었을테고.
하지만 사람들이 하찮게 생각하고 그냥 대충 넘기려는데에만 급급하던 것에서 다음 단계, 더 나은 방법을 찾던 것들이 한 계단씩 쌓아올려온 것 같다.