우리에게 편리함은 과연 축복일까, 재앙일까?
요즘 chat-gpt에 대한 인기가 엄청나다. 내 주변만 봐도 동기들이 과제를 할 때, chat-gpt는 항상 사용하는 것 같다. 손쉽게 몇 분 만에 개발을 위한 스크립트를 작성해주고, 아이디어도 제공해준다. 또, 구글링을 조금만 해도 여러 기술에 대한 코드들이 엄청나게 쏟아져 나온다. 이런 기술들로 인해 우리가 편리함을 느끼는 것은 맞지만 과연 성장적인 부분에서 도움을 주는 것일까?
나는 편리함을 좋아하지 않는다. 좀 더 구체적으로 말하자면, 개발자 입장에서 무작정 편리함을 추구하는 것을 좋아하지 않는다. 예를 들어, express로 서버를 구축하려고 하는데 동작 원리는 모르겠고 뭔가 초기 설정이 귀찮기도 하고 어려울 것 같아 그냥 github에 있는 보일러 플레이트를 가져와 사용하는 경우가 있다. 물론 기본기가 갖춰져있고, 이게 왜 이렇게 작동하는지 이미 알고 있는 사람은 편리함을 추구할 수 있지만 그렇지 못한 사람은 삽질도 해보고 시간도 많이 쏟아봐야 한다고 생각한다. 개인적으로 이러한 편의성으로 발생하는 문제들도 적지 않다고 느낀다. 요즘 비전공자도 쉽게 개발자가 될 수 있다고 이야기하는데, 프로그래밍 언어와 프레임워크를 짧은 기간 사용법만 배워 찍어내듯 개발을 하기에 이런 상황이 발생한다고 생각한다.
주변에서 사용하니까, 뭔가 있어보이니까, 프로젝트는 하고 싶은데 자세한 원리까지 알기는 귀찮으니까 또 구글에 몇 번 검색해보면 코드가 쏟아져 나오니까. 이런 생각으로 인해 우리는 도태된다. 나도 엄청나게 편리함을 추구했었다. nest.js로 개발을 처음 시작했을 때, typescript나 그 프레임워크에 대해 이해가 되지 않았던 부분이 엄청나게 많았는데 모르는 부분을 하나 하나 찾는 것이 너무 귀찮았고 구글에 검색 몇 번 해보면 아무것도 알지 못해도 코드가 나와있는데 나는 이 편리함을 이미 맛봐버렸다. 나는 이미 도태되어 버린 것일까?
면접을 준비하면서 내가 사용했던 기술과 진행했던 프로젝트에 대해 곰곰히 생각해봤다. 사용한 프레임워크에 대해 내가 어느정도 깊이의 지식을 갖고 있는지, 다른 프레임워크/언어에 비교했을 때 왜 그것을 선택해야 했는지 등등 많은 질문을 스스로 했다. 막상 대답하려니 '그냥', '편해서' 정도였다. 나는 이 때 느꼈다. 내가 성장하고 있다 생각했지만 도태되어 가는 중이었구나.
이 생각을 시작으로 나는 다시 처음으로 돌아가 공부를 하고 있다. 가령, node의 이벤트루프 동작 원리에 대해 대충은 알고 있었지만 정확하게 어떤 과정으로 동작하는지, 코드로 생각했을 때 어떤 식으로 구현되어 있을지 등 내 지식의 깊이를 더 깊게 만들기 위해 노력한다. 특히, 편리함에 젖어들어 도태되지 않도록 생각하고 내가 만든 서비스로 많은 사용자가 편리함을 제공받을 수 있게 많이 삽질하려 한다.
개발자는 편리함을 느끼며 일을 하는 사람이 아니다. 불편함을 인지하고 그것을 다른 사람에게 편리함으로 제공해야 하는 사람이다.