개발하며 변화된 생각과 가치관
예전부터 어필을 하거나 강조할 때마다 작성하고 말한 것들이 있다.
"이 프로젝트를 만들면서 중요하게 생각했던 것들은 무엇인가요?"에 대한 질문을 받을 때마다 아래처럼 답했다.
"중복된 컴포넌트를 분리하고 최대한 재사용하여 효율을 늘리고자 했다."
"불필요한 로드를 줄여 렌더링 속도 개선에 집중했다"
등등
물론, 개발자(이면서 기술자)는 기술로 움직이는 직업이기에 기술적인 부분을 강조할 수 밖에 없다고 생각이 들지만, 최근 어느 순간부터 이러한 생각에 전환을 가지게 됐다.
"이건 왜 만들어야 할까?"
"이렇게 만드는 게 최선일까? 다른 방식은 없을까?"
"굳이 이게 필요할까?"
예전이였다면, 그냥 만들었고, 많이 만들면 좋은 것이라고 생각했을 것이며, 단순히 기술적으로 남들이 말하는 코드 리팩토링에 대해서만 집중했을 것이다.
그러나, 이제는 기술적인 것보다는 이유를 더 생각하고 있다. 아마 나의 기술 역량이 부족해서 회피하기 위해서 선택한 변명이 될 수도 있겠다. 틀린 말은 아니다. 내 기술 역량은 많이 미숙하고 부족하다. 그럼에도 불구하고, 계속 공부하고, 개발을 하면서 느낀 것은 기술력에는 한계가 존재한다는 것이었다.
고민을 하고, 공부를 해도 현재 기술 역량에서는 코드를 더 효율적으로 개선하는 건 어느 정도에 도달하는 순간 더 이상 발전이 되지 않거나 더뎌졌다.
이러한 경험을 한 두번 하고 보니 이러한 생각에서 이유를 찾는 경향이 잦아졌다. 왜 만들어야 하고, 이게 최선의 방법인지 고민하고, 다른 방법은 없는지 찾아보는 것처럼 말이다.
물론, 지금도 코드 리팩토링처럼 기술적인 부분을 고려하고 있지만, 이것은 이제 차순위가 됐다. 이유가 우선 순위가 됐다.
단순히 규칙과 원칙에 맞게 코드를 분리하고, 재사용할 수 있도록 효율성을 늘리고, 이해하기 쉽게 가독성을 높이고, 속도를 높이는 데 집중했던 것에서 "이 정도 속도면 크게 불편함을 느끼지 않겠다.", "몇 번 만져보니까 이건 거의 사용하지 않아 굳이 없어도 되겠다.", "이런 식으로 나타내는 게 더 사용하기 편한데?"와 같이 무조건적인 기술적 발전과 향상에 대한 집중에서 조금 다르게 이유와 사용 경험을 고려하게 됐다.
나는 이제 천천히 생각의 범위와 방향을 조금 다르게 가져보려고 한다.