개발자가 가져야 할 균형 감각에 대한 단상

처음 React를 봤을 때 내가 흥미를 느꼈던 부분은 웹 프런트엔드 개발자에게는 낯선 철학이 주는 참신함이었다. 지금까지 UI를 개발하던 관성에서 벗어난 새로운 패러다임이 내 머릿속의 세계를 한 단계 확장시킨 느낌이랄까?  하지만 현업에서 실제로 React를 사용하면서 느끼기에 React의 철학이 주는 참신함 만큼 우리의 삶(개발)이 '대단히' 편해진 것 같지는 않다. 물론 jQuery 하나 들고 맨몸으로 늑대인간(이상적인 소프트웨어)에게 달려들던 시절에 비할 바는 아니지만, React를 받아들임으로써 얻은 소득 만큼이나 새롭게 해결해야 할 문제 역시 많다.

전역 상태와 지역 상태를 어떻게 분리하고 관리할 것인지, 어떻게 하면 컴포넌트의 state와 모델의 프로퍼티를 일관성 있게 작성할 수 있을지, 비동기 로직은 어디에 둘 것인지, 비대해진 Store는 어떤 식으로 리팩터링을 할 것인지, 이벤트 타입은 어떤 기준으로 분류하는 게 좋은지, 영속성 있는 데이터와 그렇지 않은 데이터는 어떻게 구분해야 할지, 테스트 경계를 어떻게 잡아야 좋을지, 컴포넌트는 어느 수준으로 나눠야 할지... 등등.

여기에 더해 협업 상의 이슈와 같이 개발자로서 끊임없이 고민해야 할 문제 역시 여전히 존재한다. 그래서 나는 늘 React를 소개할 때 장점과 단점은 동전의 양면이라는 이야기를 덧붙이곤 한다. 가끔 React의 장점을 지나치게 과장하는 경우를 보면 아쉽다. 지나치게 회의적인 사람만큼이나 지나치게 낙관적인 사람 역시 위험하다.  

bb9f9777

비단 React만의 문제는 아니다. 비약적인 발전이 일어나기 힘든 소프트웨어 영역의 특성상 당연한 일이기에, 어떤 기술을 접할 때 우리는 늘 그 기술을 균형잡힌 시선으로 바라보려고 노력해야 한다. 숨 가쁘게 흘러가는 트렌드를 행여나 놓칠까 전전긍긍하다가 거기에 빼져서 허우적거리는 나를 종종 발견한다.

개발자에게 균형 감각이 중요하다는 사실을 항상 잊지 말자.