2024년 11월 12일
프론트엔드 개발을 시작한 지 거의 3년이 되어가는 시점에서 얼마나 성장했는지 되돌아봤습니다. 그런데 잘할 수 있는 것이 한 가지도 떠오르는 것이 없었고 성장의 결과물이 보이지 않았습니다. 그래서 어떤 점이 개발자로서의 성장에 방해가 되었는지 생각한 것을 정리하려고 합니다.
개발 중에 해결하기 어려운 문제를 만나면 구글링을 하거나 GPT의 도움으로 쉽게 해결하곤 합니다. 그런데 다음에 비슷한 문제를 만나면 또 구글링을 하거나 GPT의 도움을 받아서 해결합니다. 이렇게 해결했을 때 본인이 드린 정성은 맛집을 검색하듯 구글에서 적절한 답을 찾기까지 헤매거나 GPT에게 질문한 것밖에 없지만 당장 문제를 해결했기 때문에 스스로 해결한 것이라고 착각했습니다.
바쁘다는 핑계를 대면서 위와 같이 문제를 해결해왔던 것 같습니다. 그래서 문제를 해결하는 과정에서 많은 것을 습득하지 못했습니다. 이것을 깨달은 후에는 스스로의 힘으로 해결하지 못한 문제에 대해서 해결할 수 있었던 원리를 정리하고, 모르고 있었던 개념은 따로 공부하는 습관을 길들이고 있습니다.
빨리 개발하는 것이 잘하는 것이라고 생각했습니다. 그런데 소위 주니어라 불리는 시기에는 속도보다는 개발할 때 얼마나 많은 고민을 했는지가 더 중요한 것 같습니다. 저는 React와 Typescript를 사용하여 개발할 때 특별히 어려울 것 없이 빠르게 개발을 했습니다. 그런데 시간이 지난 후에 이전에 작성했던 코드를 보면 이해할 수 없는 코드가 많았고 수정할 부분이 많이 보였습니다.
그래서 지금은 이전보다 개발에 많은 시간을 투자하고 있습니다. 특히 Typescript를 사용하여 더욱더 안전한 코드를 작성하는데 관심이 생겨 타입에 대해 많은 고민을 하며 코드를 작성하고 있습니다. 그리고 지금 시기에 많은 고민과 시행착오를 했을 때 속도는 자연스럽게 빨라지는 것이라는 생각이 들었습니다.
p.s. 주니어와 시니어를 구분 짓는 것은 연차가 아니라 경험이고, 이전의 경험을 통해 문제를 효과적으로 해결하는 속도가 기준이 되는 것 같습니다.
세상에는 실력이 좋은 개발자가 많은 것 같습니다. 극단적으로는 저를 제외한 모든 개발자가 대단하다고 느꼈습니다. 그래서 그들의 능력을 흡수하고자 했습니다. 그렇다 보니 CSS를 잘 쓰기 위해 공부하다가 TDD를 공부하다 Webpack에 대해 공부하다가 크롬 확장 프로그램을 개발하기까지 어느 하나 제대로 끝내지 못하고 여러 개발자의 전문 분야를 흡수하기 위해 발버둥 쳤던 것 같습니다.
그런데 모든 기술을 마스터하고 모든 것을 잘하는 개발자는 없다는 결론을 내렸습니다. (또한 그들과 비교할 필요도 없다는 결론을 내렸습니다.) 그것보다 스스로 개발자로서의 목표와 가치관을 정하고 이에 따라 특정 기술을 갈고닦는다면 한 분야의 전문가가 되어있을 것입니다. 이렇듯 무엇을 공부해야 할지 우왕좌왕하기 전에 어떤 개발자가 될 것인지 정하는 게 더 중요하다는 생각이 들었습니다.
책을 읽는 것은 중요합니다. 여러 전문가들의 생각과 문제 해결 과정 등을 배울 수 있기 때문입니다. 그런데 올바른 방법으로 읽어야 합니다. 특히 개발과 관련된 책은 코드와 함께 스스로 생각할 부분들이 많기 때문에 더욱더 꼼꼼히 읽을 필요가 있습니다. 하지만 저는 지금까지 읽은 개발 도서의 수를 늘리기 위해 책을 읽었던 것 같습니다. 그래서 많은 개발 도서를 읽어도 개발할 때 큰 도움이 되지 않았습니다.
개발 도서를 읽을 때는 항상 “왜?”에 대해 생각하는 것이 중요합니다. 개발 도서의 저자가 “이렇게 하세요. 저렇게 하세요.”라고 한다면 그대로 받아들이는 것이 아니라 “왜 그렇게 해야 하지?”라는 물음을 갖고 책을 읽어야 하고, 적절한 상황에 실제로 그 개념 또는 기술을 적용하면서 본인의 것을 만들어야 합니다. 그래서 지금은 예전에 읽었던 책들을 천천히 다시 읽고 있습니다. (역시나 놓쳤던 부분들이 많이 있었습니다.)
위와 같이 잘못된 방법으로 성장하려고 했던 근본적인 원인은 “빨리 전문가가 되고 싶다.”라는 생각에서 시작된 것 같습니다. 남들보다 빠르게 한 분야의 전문가가 되고 싶다 보니 공부할 목록만 만들어놓고 끝내지 못하거나 “대충” 공부를 하게 된 것 같습니다.
최근에는 제가 알게 모르게 개발하면서 중요하게 생각했던 것, 흥미를 느끼는 것 등을 생각하면서 개발자로서의 목표와 가치관을 정했습니다. 이에 따라 관심이 생긴 분야가 생겨 의무감보다는 흥미를 느끼면서 공부하고 있습니다. 마지막으로 어떤 분야를 공부하는 이유가 “인기 있는 기술이기 때문에”, “다른 사람들이 중요하다고 했기 때문에” 등이 아니라 스스로 필요하다고 느끼는 것이 중요한 것 같습니다.