요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

본문은 요즘IT와 번역가 Chase가 함께 만든 해외 번역 콘텐츠입니다. ‘Evrone’이라는 해외 IT 아웃소싱 기업이, Vim 창시자 브람 무레나르(Bram Moolenaar)를 인터뷰한 글입니다. 브람 무레나르는 네덜란드 소프트웨어 엔지니어로 1991년에 vi 호환 텍스트 편집기인 Vim v1.14를 처음 공개했습니다. 그는 2006년부터 2021년까지 구글에서 일했으며, 이후 Vim 유지 관리에 힘썼습니다. 인터뷰에는 Vim을 제작한 경험을 토대로 개발자들에게 건네는 조언이 담겨있습니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

"Vim은 제 인생에서 매우 중요한 부분입니다” Vim 창시자 인터뷰

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

본문은 요즘IT와 번역가 Chase가 함께 만든 해외 번역 콘텐츠입니다. ‘Evrone’이라는 해외 IT 아웃소싱 기업이, Vim 창시자 브람 무레나르(Bram Moolenaar)를 인터뷰한 글입니다. 브람 무레나르는 네덜란드 소프트웨어 엔지니어로 1991년에 vi 호환 텍스트 편집기인 Vim v1.14를 처음 공개했습니다. 그는 2006년부터 2021년까지 구글에서 일했으며, 이후 Vim 유지 관리에 힘썼습니다. 인터뷰에는 Vim을 제작한 경험을 토대로 개발자들에게 건네는 조언이 담겨있습니다.

 

 

에브론:  Vim 프로젝트는 당신에게 개인적으로 어떤 의미가 있나요?

브람 무레나르: 정말 많은 의미가 있습니다. 저는 항상 무언가를 만드는 것을 좋아하지만, 무언가를 완성하고 나면 그걸로 무엇을 해야 할지 고민하는 경우가 많습니다. 하지만 Vim은 대중에게 공개했기 때문에 단순히 저만 사용하는 게 아니라 많은 사람이 즐기는 소프트웨어가 되었습니다. 덕분에 제 이름이 세상에 알려졌고 간접적으로 직업도 얻게 되었습니다. 그리고 은퇴한 지금 흥미롭고, 즐겁고 유용한 일도 계속할 수 있게 되었죠. 그래서 Vim은 제 인생에서 매우 중요한 부분입니다.

 

에브론: 소프트웨어 개발이 예술과 과학 중 어느 쪽에 더 가깝다고 생각하시나요?

브람 무레나르: 저는 과학은 어떤 것이 사실이라는 증거를 찾는 학문이라고 생각하는데, 이 관점에서 소프트웨어 개발과 과학은 상당히 다르다고 생각합니다. 소프트웨어 업계에는 본인의 경험에 기반 의견을 가진 분들이 상당히 많습니다. 하지만 특정한 프로그래밍 언어가 다른 언어보다 낫다거나, 객체 지향 프로그래밍이 더 나은 생산성을 가져온다는 확정적인 증거는 없습니다. 

 

이런 논쟁에서 제시되는 증거는 대부분 측정된 성능이나 통계입니다. 그렇지만 성능이나 통계와 사용된 프로그래밍 언어, 도구 간에 큰 관련성은 없다고 할 수 있습니다. 다시 질문으로 돌아가자면, 저는 소프트웨어가 예술의 영역도 아니라고 생각합니다. 프로그래밍의 목적은 멋지게 보이는 것이 아니라 잘 작동되는 프로그램을 만드는 겁니다. 소프트웨어 개발은 사실 공예에 훨씬 더 가깝습니다. 공예 장인은 좋은 결과물을 내기 위해서 도구를 적재적소에 사용합니다. 그 도구가 남들이 다 사용하는 것인지 아닌지는 중요하지 않죠. 또 훌륭한 장인은 필요하다면 자신만의 도구를 만들어 내기도 하고요.

 

에브론: Vim을 실행시킬 때 뜨는 “우간다의 어린이들을 도와주세요!(Help poor children in Uganda!)”라는 메시지에 대해 얘기하지 않을 수 없는데요. Vim에 Careware/Charityware(자선 단체에 혜택을 주는 방식으로 라이선스가 부여된 소프트웨어) 라이선스 모델을 사용하는 아이디어는 어떻게 떠올렸는지, 그리고 얼마나 많은 사람이 이러한 방식으로 기부하는지 궁금합니다.

브람 무레나르: 애초에 저는 Vim으로 돈을 벌고 싶었던 적이 없습니다. 취미로 시작한 프로젝트였고, 이미 저는 충분한 보수를 받는 직업을 가지고 있었기 때문이죠. 꽤 많은 사람이 Vim이 가치 있다고 평가했고, 다른 편집기들도 팔리고 있었습니다. 그래서 가난한 아이들을 돕고 싶다는 제 열망과 그것들을 결합하기로 결정했고 자선 웨어(Charityware)가 탄생했습니다. 이렇게 해서 연간 약 3만 유로(한화 약 4천4백만 원)가 모금되어, 초등학교부터 대학교까지 약 50명의 아이들이 학업을 마칠 수 있도록 돕고 있습니다. 기부금은 몇몇 고액 후원자들과 많은 소액 기부자들로부터 나옵니다.

 

 

에브론: Vim은 다양한 기능을 제공하며 유연성을 갖춘 편집기이지만, 직관적이지 않아서 진입 장벽이 상당히 높습니다. Vim을 효과적으로 사용하려면 제어 명령어를 익히는데 꽤 많은 시간을 투자해야 합니다. 점차 복잡성을 높이는 '초보자 친화적' 모드를 도입하지 않고, 이런 방식을 택한 이유는 무엇인가요?

브람 무레나르: 잘 알려지지는 않았는데, 모든 명령을 몰라도 그냥 입력할 수 있는 Easy Vim 또는 evim라는 모드도 있습니다. 하지만 Vim의 유저들은 강력한 커맨드를 쓰기 위해 유입되어서 그런지 여타 편집기와 동일한 수준의 성능을 보이는 evim은 많이 사용하지 않더군요.

 

물론 vi처럼 Vim도 사용법을 배워야 합니다. 제가 다닌 대학의 실습수업에서는 사용할 수 있는 컴퓨터가 한 대뿐이었고, 유일하게 깔린 편집기가 vi뿐이었기 때문에 어쩔 수 없이 사용해야 했습니다. 교수님들께 불만을 토로했더니 한 장짜리 치트 시트를 주는 것이 해결책이었죠. 이런 강제 학습이 없었다면 저는 vi를 배우려 하지 않았을 거고, 제 인생은 지금과 매우 달라졌을 겁니다.

 

에브론: 최근 몇 년 동안 개발자들이 처음부터 코드를 직접 작성하는 대신 "다른 사람의 코드가 현재 작업을 해결하는 데 도움이 될까요?"라고 묻는 것을 보았습니다. 그 결과 일부 애플리케이션은 기업이 정한 엄격한 기한을 맞추기는 하지만 마치 프랑켄슈타인처럼 보이기도 합니다. 이런 접근 방식에 대해 어떻게 생각하시나요?

브람 무레나르: 이런 일은 보통 소프트웨어에 대한 지식이 없는 사람이 소프트웨어 제작을 주도할 때 발생합니다. 제가 일한 회사의 일부 관리자들은 물리학이나 역학을 전공했는데, 소프트웨어 개발이 본인들의 전공과 똑같다고 생각했습니다.

 

당연히 그 회사는 내리막길을 걷다가 결국 타기업에 인수되었고요. 또 정부 기관처럼 의사 결정권자가 실패의 책임을 피할 수 있는 곳에서도 같은 일이 벌어집니다. 코드를 작성하는 사람들은 아마도 월급만 받고 현장에서 도망칠 것입니다. 반면에 멋진 코드를 작성하는데 많은 시간을 투자하며 코드가 의도대로 작동하는지, 예산이 얼마인지 신경 쓰지 않는 사람들도 있습니다. 그 사이 어딘가에 균형이 있습니다.

 

에브론: 2년 전, 실험적인 포크[1]인 Vim9이 발표되었습니다. 이 포크에 대해 좀 더 자세히 말씀해 주시겠어요? 이 프로젝트의 현재 단계는 무엇인가요?

브람 무레나르: Vim9은 포크가 아니라 Vim을 개선하기 위한 다음 단계입니다. 처음에는 함수를 바이트 코드로 컴파일하면 Vim 스크립트가 훨씬 빨라지는지 실험을 해봤습니다. 잘 작동하는 것으로 밝혀졌지만 구문을 변경해야 했습니다.

 

스크립트 언어의 두 가지 변형을 동시에 지원하는 것은 쉬운 선택은 아니지만, 플러그인 작성자를 만족시킬 수 있을 것이라고 생각합니다. 레거시 구문은 그대로 유지되므로 Vim9을 포크라고 부르는 건 맞지 않습니다. 모든 오래된 Vim 스크립트가 새 구문으로 다시 작성될 것으로 예상하지는 않아서 레거시 구문은 계속 지원할 것입니다. 파이썬도 파이썬 코드의 99%를 파이썬 3으로 변환하는 데 아주 오랜 시간이 걸렸습니다. 그리고 나머지 1%는 여전히 그대로 남아 있죠.

 

에브론: 소프트웨어의 새로운 버전이 배포되면 많은 기능들이 이전처럼 작동하지 않기 때문에, 이전 버전과의 호환성을 유지하는 것은 항상 어렵습니다. Vim9은 이전 버전과의 호환성을 유지하게 될까요, 아니면 Vim의 역사에 새로운 페이지가 될까요?

브람 무레나르: Vim9 스크립트는 이전 버전과 호환되지 않지만 레거시 스크립트 구문도 사용할 수 있습니다. 각 파일과 함수마다 어떤 구문을 사용할지 결정할 수 있죠. 이렇게 하면 Vim9 스크립트가 훨씬 더 잘 작동하도록 자유롭게 만들 수 있습니다. 그리고 두 가지 Vim 스크립트는 상당히 비슷합니다. 또한 실수가 발생했을 때, 에러 메시지를 띄워서 사용자가 빠르게 수정할 수 있도록 했습니다.

 

에브론: Vim 공식 웹사이트에 커뮤니티 채널로 IRC(Internet Relay Chat)가 지정되어 있습니다. 요즘은 그다지 인기가 없고 주니어 개발자들은 IRC에 대해 들어본 적 없는 사람도 많습니다. 슬랙이나 디스코드로 전환할 계획이 있나요?

브람 무레나르: 저는 아주 옛날 스타일을 고수해서 주로 이메일을 통해 소통합니다. 이메일은 익숙한 방식일 뿐만 아니라 방해받지 않을 수 있어서 좋습니다. 원할 때 메시지를 읽고 답장할 수 있고, 방해받고 싶지 않을 때는 미룰 수도 있습니다. 물론 사용자는 자신에게 맞는 커뮤니케이션 방식을 자유롭게 선택할 수 있으며, 다른 사용자가 이를 구성할 수도 있습니다. 하지만 채팅 방식의 커뮤니케이션은 너무 정신없기 때문에 선호하지 않습니다.

 

에브론: Vim에는 기능을 확장할 수 있는 훌륭한 플러그인이 아주 많습니다. 우리 독자들에게 추천하고 싶은 플러그인이나 필수 플러그인이 있나요?

브람 무레나르: 사실 저는 배포판에 포함된 플러그인(matchit, termdebug 등)을 제외하고는 플러그인 자체를 많이 사용하지 않습니다. 필요한 기능이 있으면 간단한 것은 바로 만들거나 Vim 베이스에 추가하는 편입니다. 제가 원작자이기 때문에 부릴 수 있는 사치죠.

 

에브론: 지금까지의 풍부한 경험을 바탕으로, 개발자가 생산성을 오랫동안 유지할 수 있는 방법에 대해 공유해 주시겠어요? 

브람 무레나르: 비법은 없고 몇 가지 기본적인 규칙과 조언을 알려드리겠습니다. 제가 본 젊은 개발자들 중 한 명은 아주 늦게까지 일하다가, 다음 날 아침 늦게 일을 시작하곤 했습니다. 그러나 대부분의 사람들은 아침에 가장 생산적인 시간을 보내므로 몇 시까지 일할지 시간을 미리 정해 두는 것이 훨씬 좋습니다.

 

그리고 업무를 중단하기 전 어디까지 작업하고 있었는지 메모해 두었다가, 잠시 휴식이나 수면을 취하고 다음 날 아침에 다시 시작해 보세요. 어제 막막했던 문제에서 갑자기 새로운 통찰력을 얻고, 무엇을 해야 할지 알게 되는 경우가 종종 있습니다. 적어도 저에게는 "하룻밤 자고 생각해라"라는 관용적 표현이 실제로 효과가 있었죠.

 

또 다른 한 가지는 상황에 따라 영리한 솔루션을 찾는 것보다 빠르게 타이핑하는 게 더 나을 수도 있다는 것입니다. Vim에서 어떤 작업을 200번 정도 반복하도록 자동화하려면 매크로를 저장해 사용하는 것만으로도 충분합니다. 하지만 똑같은 반복 작업을 위해 플러그인을 작성하려면 훨씬 더 많은 시간이 필요할 겁니다.


[1] 하나의 소프트웨어 소스 코드를 통째로 복사하여 독립적인 새로운 소프트웨어를 개발하는 것을 말한다.

 

<원문>

Bram Moolenaar: "Vim is a very important part of my life."

 

 

위 번역글의 원 저작권은 Evrone에게 있으며, 요즘IT는 해당 글로 수익을 창출하지 않습니다.

좋아요

댓글

공유

공유

작가
465
명 알림 받는 중

작가 홈

작가
465
명 알림 받는 중
요즘 해외 개발자들은 어떻게 일할까요? 기획자나 디자이너는요? 그래서 준비했습니다. 읽어볼만한 해외 소식들을 번역해 전합니다. "We are the world."

좋아요

댓글

스크랩

공유

공유

요즘IT가 PICK한 뉴스레터를 매주 목요일에 만나보세요

요즘IT가 PICK한 뉴스레터를
매주 목요일에 만나보세요

뉴스레터를 구독하려면 동의가 필요합니다.
https://auth.wishket.com/login