부수면 안되는 장난감

책 “프로그래머의 길, 멘토에게 묻다.”의 “부숴도 괜찮은 장난감”에서는 프로그래밍을 효과적으로 학습하기 위해서 개인 프로젝트를 시작하라 조언한다. 프로젝트의 결과물은 언제든 부술 수 있는 장난감 같은 프로그램이기 때문에 기능을 쉽게 추가하고 구조를 마음대로 변경할 수 있는 놀이터가 생긴 셈이다. 다들 장난감 프로젝트를 시작할 때에는 너무 거창한 계획을 세우기보다는 당장 내가 필요한 작은 프로그램을 만들라고 조언한다.

2013년에 부숴도 좋은 장난감을 시작하려고 Summernote라는 개인 프로젝트를 시작했다. 당시 다니던 회사는 안식년 제도가 있었고 마침 안식 휴가 중이어서 작업하는 데 부담이 없었다. 그 후에 Summernote는 다른 사람들도 관심을 받게 되고 좋은 개발자들의 참여로 사용자도 꽤 있는 오픈소스로 성장했다.

하지만 인기를 얻으면서 문제의 난이도가 올라갔다. 2015년 초에는 한 사용자로부터 자신의 회사 프로젝트에 사용한 Summernote에서 발생한 버그로 고객이 자신을 고소하려고 한다는 메일을 받은 일도 있었다. 회사 끝나고 부랴부랴 집에 가서 밤늦게까지 고쳤던 기억이 있다. 회사에서 일하고 집에서도 일하는 기분이었다. Summernote를 진행하는 건 힘들기도 했고 더 하고 싶지 않은 마음도 종종 들었지만, 주변에 좋은 분들이 함께 해주셔서 지금까지 유지됐다. Summernote는 더는 장난감도 아니고 놀이터도 아니었다.

그 후에 장난감 같은 프로젝트를 다시 시작하고 싶어서 몇 번 시도했으나, 좀처럼 진행할 수 없었다. 거창한 목표를 세우고, 몇 주 코딩하다 중단하기를 반복했다. 당시에는 알지 못했지만, 내 문제의 원인은 프로젝트에 대한 기대치가 높은 점이었다. 당장 필요한 작은 프로그램을 만드는 마음이 없었다.

올봄에 부숴도 좋은 장난감을 만드는 마음으로 프로젝트를 생각해보다가 “한글 맞춤법 검사기”를 시작했다. 난 맞춤법을 종종 틀렸고 Grammarly를 사용하면서 한글도 지원되면 좋겠다고 생각했다. 맞춤법 스트레스에 소셜미디어에 긴 글을 올리지는 못했는데, 지금은 비교적 편하게 올리고 있다.

현재 무료로 맞춤법 검사기를 제공하는 웹 사이트들은 대부분 HTTP 기반으로 동작한다. 회사 게시판에서 이 무료 맞춤법 검사 사이트 중 하나를 추천하는 글을 읽었다. HTTP는 보안에 취약하다. 공개하면 안 되는 중요한 글에 HTTP 기반 API를 사용하는 건 무엇인가 잘못된 것 같았다. “한글 맞춤법 검사기”도 HTTP 기반 사람인 API를 사용하기 때문에, Grammarly처럼 모든 입력창에 활성화 시키진 않았다. 내장 맞춤법 검사기를 구현하고 보안이 중요한 메일 등 다른 입력창에서도 사용할 수 있게 할 계획이다.

아직 사용자는 많지 않지만, 작업할 때 즐겁고 만족스럽다. 개인 프로젝트는 내가 즐겁고 만족하면 된 거다.

참고