Blog

성공적인 Yak Shaving, 실패하는 Yak Shaving

July 27, 2015

성공적인 Yak Shaving, 실패하는 Yak Shaving

※ 이 글은 원본이 갱신되었습니다. 원본을 읽어주시면 감사하겠습니다.

 

먼저 밝혀두자면 이 글은 예전에 썼던 성공적인 야크쉐이빙이란 글에 살을 붙인 것이다.

야크 쉐이빙(yak shaving)이란 말이 있다.
한가지 일을 하려고 하는데 점점 연관성이 떨어지는 일을 하게 되는 일을 말한다.
예를 들면 프로그램 하나를 짜려고 하는데 테스팅 자동화를 하면 좋다고 해서 테스팅 도구를 찾다가 마땅한게 없어서 직접 만들면서 mock객체를 만드는 것 같은 경우다.
나도 상당히 자주 야크 쉐이빙을 했고, 그 결과 망했다.

사실 거의 모든 야크 쉐이빙은 망한다. 그러므로 글 제목에서 언급한 Unsuccessful Yak Shaving이란 사실 거의 모든 야크 쉐이빙을 의미한다.
내가 가장 최근에 한 실패 사례는 Hikikomori 프로젝트이다.
간단히 소개하자면 일본 아니메를 좋아하는 필자를 위해 대신 아니메를 수집해주는 별로 좋지 않은 프로그램이다.
개발을 하다보니 점점 추가하고 싶은 기능 등이 늘어났는데, 이것을 무분별하게 늘려나가다보니 프로그램 자체는 동작도 안되고 어디부터 손대야할지 모르는 코드가 되어버렸다.
그 와중에도 아니메를 보고싶은건 참을 수 없어서 그냥 평소처럼 Windows 데스크탑에서 아니메를 구해서 보고 말았다.
결국 프로젝트는 먼지만 쌓이고 있다.

하지만 실패만 하는 것은 아니다.
가끔씩 야크 쉐이빙에 성공하는 경우가 있다.
야크 쉐이빙도 경우와 방법에 따라서는 성공할 수도 있다는 것이다.

여기부턴 실제 내 경험이다.
문제의 시발점은 예전에 쓰던 텀블러 블로그의 코드 하이라이팅이다.
예전 블로그의 코드 하이라이팅은 사용할 수 없는 수준이었다.
이걸 고쳐서 쓸까 생각해봤는데 영 맘에 들지 않았다.
어차피 고쳐도 문법 강조 같은것도 되지 않을 것이기에 나로써는 만족하지 못할 것이기 때문이다.
그래서 블로그를 새로 만들기로 했다.
그래서 꽤 많은 삽질을 했다. Jekyll을 배우고, Liquid를 배웠다. Sass 구문을 들어 엎었다.
테마를 들어 엎어가며 여러기능을 추가하다보니 내가 뭘 하고 있는건가 싶었다.
이대로 가다간 블로그에 코드가 첨부된 글을 쓴다는 목적이 날아가버리는 것 아닌가 싶었다.

하지만 일단 어찌되었건 성공했다.
아마 성공요인은 너무 멀리 가지 않았던 덕인 것 같다.
아마 저기서 더 멀리 갔더라면 중도에 질려서 포기했을지도 모른다.
그리고 계속 minimal한 코드에서 시작해서 점진적으로 발전하는 프로그램이 가시적으로 보였기 때문에 질리지 않았던 것 같다.

내 경우에 빗대어 좀 더 자세히 이야기해보자면 나의 경우는 Jekyll을 이용해서 블로그를 만든다는 중심 목표에서 크게 벗어나지 않으면서 여러가지 삽질을 했다.
Liquid 문법을 보며 고생을 했지만 결과적으로 Pagination이 완성되었고, Bootstrap Sass 버전을 분석하며 고생했지만 결과적으로 블로그가 좀 더 화면 크기에 잘 대응하게 변했다.
많은 이들이 Jekyll 블로그에서 기대하는 기능의 범주를 벗어난 것을 만들게 되었지만 내가 깎아내리는 하나하나의 야크 털 조각들이 가시적으로 내가 만들고자 하는 블로그의 형태를 만들어가고 있었다.
그리고 그 결과 나는 지금 이 블로그에 글을 쓰고 있다.

고로 야크 쉐이빙을 할 것이라면 너무 멀리 가지 말아야 한다.
내가 만약 Jekyll 플러그인을 만든다고 Ruby를 배운다던가 하는 식으로 더더욱 멀리 갔더라면 이 블로그는 존재할 수 없었을 것이다.
성과를 체감하는 것도 중요하다.
소스를 고쳐도 성과가 눈 앞에 보이지 않으면 사람은 금방 지친다.
일단 눈에 보이는 성과가 나타나도록 야크 쉐이빙 자체를 유도해야할 필요가 있다.

그리고 또 한가지 덧붙이자면, 실패한 야크 쉐이빙이라할지라도 야크를 죽여버리진 말자.
언젠가 다시 필요한 때가 올 수도 있다.
필자의 경우는 머지 않아 Windows 데스크탑을 못 쓰게될 처지에 놓였는데 이럴 경우 다시 Hikikomori를 고쳐서 돌려야 한다.
깎다 말은 야크의 털을 다시 깎아서라도 써야하는 상황이 올 수 있다.
물론 그런 경우라도 일단은 동작부터 하게 만드는 것이 더 중요하겠지만 말이다.

Array