나는 소프트웨어 디자인 분야에서 “바퀴를 재 발명하라, 혹은 하지 말라” 라는 말을 종종 들어봤다. 코드를 적절하게 재 사용하는 것이 중요하다는 교훈이다. 반면에 내가 부딛히고 있는 웹 프런트 엔드 분야에선 매번 다시 만드는 경우가 꽤 자주 보인다.

그렇다면 바퀴를 재사용하지 않는다는 이야기로 오해받을 수 있다. 반은 사실이고, 나머지는 거짓인 것 같다.

첫번째, 웹 프론트 엔드 분야는 전례 없는 성장 곡선을 나타내고 있다. 다른 분야보다 더 빠르고 꾸준히 변하는 이유인데, 나는 환경적인 면에서 그 이유가 있다고 생각한다. 스마트폰의 보급화로 IE 브라우저의 점유율이 급감한 이유가 여태동안 정제되어 있던 웹 생태계가 발전하게 된 바탕이 되었다고 본다.

설래발 주도 개발:

이전과는 좀 다른 알고리즘/설계 구조를 갖고 사용성도 좋다면 누가 그 도구를 안 쓰겠는가? 당연히 사용한지 얼마 안된 바퀴를 버리고 새로운 분야를 채택할 것이다.

두번째, 브랜드 정체성이나 사용자 경험에 대한 각기 다른 가치관은 전혀 다른 시각적 결과를 불러일으킨다. 그래서 비슷한 제품이라도 서로 다른 디자인 요소가 있는 것이고, 제품을 만드는 팀은 최대한 UI를 많이 쪼개내어 확장 가능하고, 재사용가능한 자신만의 UI 라이브러리, 디자인 시스템을 만들어 반복을 줄이는 것이 일반적일 것이다. 가까이 갈 필요 없이 vuejs 의 v-slot이나 부트스트랩 등 많이 쓰이는 라이브러리에서 엘리먼트를 여러 층으로 불리하고, 스타일 클래스를 여러 이름으로 분리하는 사례에서 볼 수 있다.

불가피하게 이뤄지는 변화에서 프런트 엔드 커뮤니티 내에서 바퀴를 매번 만드는 것 같지만, 같은 모양의 바퀴를 반복해서 만들지는 않은 것 같아 보인다.