전에 재직했던 회사는 vi 또는 vim 개발 능력이 필수였다. 이유는 원격이나 외근이 많아서. 원격 지원을 하거나 외근 나갔는데 내가 익숙한 개발툴 깔고 그럴 수 없기 때문에 필수적으로 vim으로 개발을 할 수 있어야 했다. 그래서 제법 오랜 시간, 거의 10년 가까이 vim 으로 개발을 했다. 이후에는 국민 개발툴 vscode를 이용했는데 편한 건 말할 필요도 없고.
그러나 요즘 시대에도 vim 으로 하는 개발은 필요하다고 생각한다. 이유는 아래와 같다.
1. 복잡도 관리
개발을 하다 보면 폴더와 파일이 무수히 생성된다. 그만큼 복잡도가 올라간다. 하지만 vscode 같은 툴에서 트리로 폴더 구조를 보여주고 다양한 툴이 도와주니 복잡해도 어느정도 커버가 된다. 하지만 복잡도에 대한 대응이 되는 거지 해소가 되는건 아니다. vim으로 개발하면 날것 그 자체라 자연히 복잡도가 낮은 상태를 유지하고 싶어진다. 그래도 개발이 진행될 수록 복잡도는 높아지겠지만 복잡도가 10인 상태에서 출발하는 것과 1인 상태에서 출발하는건 엄연히 다르다. 프로젝트가 중간쯤 지났을때 시작점에 따라 복잡도가 1000이 될 수도 100이 될 수도 있는 것이다. 프로젝트의 낮은 복잡도를 유지하는데 있어 vim은 좋은 툴이다.
2. 머릿속에 넣고 개발
어떤 책에서 본 내용인데 도로를 외우고 운전하는 택시 기사들의 뇌는 활성화 되는 영역이 다르다고 한다. 대부분 네비를 켜고 운전하는 요즘 사람들과 사용하는 부위가 다를 수 밖에. vscode는 다양한 써드파티 툴을 제공해서 개발의 편의성을 높여주는데 vim으로 개발하면 어떤 툴의 도움도 받을 수 없다. 당연히 모든게 머릿속에 자리잡아 스스로 연결하고 찾아가며 개발해야 한다. 개발자로서 뇌의 안 쓰는 부위를 활성화시키는 좋은 방법이라 생각한다.
3. 장애 대응 시 유리
갑자기 장애 대응을 해야 한다고 가정해보자. 시간도 촉박하고 환경도 제한적이다. 하지만 그런 상황에서 익숙한 툴을 설치하고 할 수 없다. 설치하려해도 단절된 망에 위치해 있어 아예 불가능할 수도 있다. 그러면 어떻게 할 것인가? 날코딩으로 대응해야 한다. 전혀 익숙하지 않은 vim을 열고 제대로 대응이 될까? 문법 하나 하나 인터넷 찾아가며 대응이 될까? 어떻게든 대응이야 되겠지만 장애 시간은 한없이 늘어지게 된다. 그러나 vim을 익숙하게 써 왔다면 익숙한 환경에서 대응하니 오직 문제에만 집중할 수 있다.
요즘 시대에 vim으로만 개발하는 건 반대다. 그러나 일주일에 하루 정도는 vim으로 개발하는 습관을 들이는 건 추천하고 싶다.