조금 사적인 프로젝트를 시작한 ‘중딩’ 개발자
‘Color Scripter’를 개발한 중딩, 한양대학교 컴퓨터공학부 이영수
*본 콘텐츠는 음성 서비스가 지원됩니다.
기획자, 개발자, 디자이너의
조금 사적인 프로젝트
글로 음악으로 공간으로, 브랜드는 자기다움을 만들어간다. 어떨 때는 ‘왜 그 브랜드에서?’ 싶을 만큼 사적인 일을 벌이기도 한다. 이런 브랜드의 브랜딩과 마케팅 사례를 다루다 보니 ‘그렇다면, ‘나’라는 브랜드는 어떻게 정의하고 구축할 수 있을까’라는 질문을 던지기에 이르렀다. 이번 특집에서는 ‘조금 사적인 프로젝트’로 경험을 확장하고 업을 깊게 파고드는 기획자, 개발자, 디자이너를 담아봤다. 그들의 사적인 프로젝트 사례를 보며 여러분도 ‘나’라는 브랜드를 생각해보는 계기가 되길.
- Project 하나. ‘나’라는 브랜드를 만드는 사람들
- Project 둘. 조금 사적인 프로젝트를 하는 기획자
- Project 셋. 조금 사적인 프로젝트를 시작한 ‘중딩’ 개발자
- Project 넷. 조금 사적인 프로젝트를 함께 하는 디자이너
Project 셋.
조금 사적인 프로젝트를 시작한 ‘중딩’
한양대학교 컴퓨터공학부 이영수
웹 상에서 코드를 볼 때 코드의 가독성을 높이기 위해 색을 바꿔주는 Syntax Highlighter의 일종인 ‘Color Scripter’라는 프로그램이 있다. 그런데 놀랍게도 이제 만 6년이 되어가는 이 프로그램을 만든 이는 아직 대학 생활을 하고 있는 학생. 중학교 때 처음 시작한 ‘조금은 사적인’ 이 프로젝트는 여전히 국내에서 꽤 많이 사용되고 있는 프로그램이며, 하루 평균 약 400명의 방문자를 보유하고 있다. 단순 개인 프로젝트를 넘어 시간이 지남에 따라 변화하고 또 새로운 고민을 하게끔 만드는 그의 프로젝트가 궁금해졌다.
목마른 자가 프로그램을 개발한다
Color Scripter를 처음 만들던 시기, 개발자는 불과 중학교 3학년 그러니까 열 여섯 살이었다. 한창 플래시와 Action Script 언어를 이용해 프로그램을 만드는데 흥미를 붙이던 그는 부족하나마 본인이 알고 있는 내용을 최대한 공유하기 위해 블로그에 코드와 함께 강의를 올리곤 했는데, 사용할 수 있는 적합한 Syntax Highlighter가 없다는 문제와 맞닥뜨린다. 당시 N포털 블로그는 강력한 보안 정책으로 script 태그를 일절 사용할 수 없었고, 그렇다고 사진으로 코드를 올리면 읽는 사람이 복사·붙여넣기를 할 수 없을뿐더러, 크롤러도 코드를 읽어가지 않아 검색엔진 노출도 상대적으로 덜 됐다. 그래서 처음에는 손으로 주요 키워드마다 색깔을 입히다 해외 서비스에도 눈을 돌려봤는데, 디자인이 전부 마음에 들지 않았다고. Action Script를 지원하는 서비스도 거의 없던 찰나, 불편함 끝에 그는 직접 프로그램을 만들기로 결정했다. 그렇게 최초 버전의 Color Scripter는 단순 본인 필요에 의해 세상의 빛을 보게 된다.
사용자를 만나 새로운 생태계를 구상하다
이렇게 탄생한 Color Scripter를 그저 ‘이런 걸 만들어 봤다’는 의미에서 블로그에 올린 것이, 본격적인 성장의 신호탄이 됐다. 예상보다 사용자도 빠르게 늘어났는데, 무언가를 찾기 위해 구글링을 하면 어떤 검색어는 상위 5개 중 2~3개 블로그가 이 프로그램을 쓰고 있을 정도였다고 한다. 이에 사용자들의 목소리들이 하나 둘 반영되기 시작했고, 디자인 변경은 물론 언어 추가, 옵션 설정 등 지속적인 업데이트를 통해 성능을 높였다. 이러한 과정에서 나온 산물 중 하나가 확장 스토어다. 언어팩이나 스타일패키지를 추가하고, 원하는 플러그인이 없을 경우 사용자 스스로가 직접 만들고 공유하는 생태계를 구축한 것이다. 그 결과 300개 이상의 플러그인이 등록됐고, 무엇보다 언어를 추가해달라는 개별 요청이 사라졌다고. 물론 낮은 퀄리티의 플러그인도 있지만, 꽤 괜찮은 퀄리티의 플러그인들도 만들어졌는데 ES6나 Go, Delphi, Docker 등의 언어는 모두 사용자들이 직접 만든 것이다.
머신러닝과 언어 자동선택
사실 그전까지 서비스를 운영하며 할 수 있는 것이라고는 더 편리한 기능, 더 예쁜 UI/UX를 통해 사용자를 만족시키는 것 밖에 없었다고. 그러던 중 ‘알파고’ 열풍이 불었고, 그 역시 인공지능을 통해 무언가를 해보고 싶다는 생각을 하게 된다. 이는 ‘사용자가 코드를 입력하면 자동으로 코드를 분석해 언어를 추천해주는 기능을 만들면 어떨까?’하는 아이디어로 정리됐고, 약관에 코드를 수집한다는 점을 추가해 안내 후 코드를 수집하기 시작했다. 코드가 일정 수준 이상 모인 후 Python을 통해 학습기 및 분류기를 만들었다. 처음에는 2만 개의 코드로 학습을 돌렸고, 최근에는 10만 개 이상의 코드로 학습을 돌려 둔 상태. 학습 셋(Set)을 정리하고, 키워드뿐만 아니라 언어별 문법을 기준으로 한 주요 패턴이 얼마나 매칭 되는지에 대한 기준도 추가하는 등 몇 차례의 개선 작업을 거쳐 현재는 약 80%의 정확도가 나오고 있다.
Mini interview
한양대학교 컴퓨터공학부 이영수
“중요한 프로젝트에서는 자신이 잘하는 기술만 써야 하지만 개인 프로젝트는 ‘새로운’, 또 ‘하고 싶은’ 기술을 써볼 수 있고, 그 과정 중에 상당한 성장을 할 수 있다.”
Q. 먼저 본인 소개를 부탁드립니다.
안녕하세요, 한양대학교 컴퓨터공학부에 진학 중인 이영수라고 합니다. 어릴 때부터 컴퓨터에 관심이 많아 초등학교 때 처음 프로그래밍이라는 것을 접했고, 간단한 취미로 시작했던 처음과 달리, 알아가면 알아갈수록 적성에도 맞는 것 같아 계속해서 공부하고 있습니다. 개인적으로 남이 시키는 것을 무작정 따라 하기 보다는, 혼자 무언가를 만드는 것을 좋아해 이런저런 서비스를 만들어 보기도 했습니다. 대부분의 서비스는 빛을 보지 못했지만, 몇몇 서비스는 다른 분들께도 쓸모가 있었는지 지금까지 잘 운영되고 있습니다.
Q. ‘Color Scripter’라는 개인프로젝트가 6년 동안 이어져올 수 있었던 동력은 무엇일까요?
Color Scripter를 만들 당시에는 비슷한 기능을 제공하는 사이트나 프로그램이 거의 없었습니다. 정확히 말하자면 있기는 했지만 한국 내 플랫폼(네이버 블로그, 티스토리 등)과 호환이 되지 않아 많은 사람들이 불편함을 겪었죠. 무언가 대단한 서비스를 만들겠다는 다짐으로 시작 한 것이 아니라, 당장 저부터 필요성을 느낀 기능을 서비스로 만든 것입니다. 프로젝트가 이어져 올 수 있었던 것은 이런 ‘필요성’에 첫 번째 이유가 있다고 생각합니다.
두 번째로는 사용자의 뜻을 반영한 것에 있습니다. 6년이라는 시간 동안 서비스를 운영하면서, 새로운 기능이 추가되고 디자인이 바뀌는 등 꽤 많은 변화가 있었습니다. 그러나 이런 변화 중 상당수는 사용자들의 필요에 의해 만들어졌습니다. 서비스 하단에 문의사항이 있으면 메일을 보내달라는 문구와 함께 이메일 주소를 적어 두었는데, 그 주소로 많은 사용자께서 건의를 주셨습니다. 그런 요구사항들을 묶어서 새로운 기능을 출시하는 등 나름의 ‘고객’ 대응을 해나간 것도 중요한 요소가 아니었을까 개인적으로 생각합니다.
Q. 개발 영역에서도 개인프로젝트를 진행하는 분들이 점점 늘고 있습니다. 어떤 이유일까요?
제 사례처럼 개인적 필요성이 가장 큰 이유일 것 같습니다. 내가 필요해서 만드는데 왠지 남들도 필요할 것 같고, 그러면 남들도 이용할 수 있게 조금 다듬어서 공유하는 것이죠. 많은 프로그래머들은 무언가 공유하고 배포하는 것을 좋아하는 일종의 변태 기질(?)이 있어서 더더욱 개인 프로젝트가 많이 공개되는 것 같습니다. 개인 프로젝트의 장점으로는 우선 자신이 만들고 싶은 것을 만들 수 있어 재미있다는 점과, 실패해도 큰 리스크가 없다는데 있습니다. 특히 중요한 프로젝트에서는 자신이 잘하는 기술만 써야 하지만 개인 프로젝트는 ‘새로운’, 또 ‘하고 싶은’ 기술을 써볼 수 있는데, 그 과정 중에 상당한 성장을 할 수 있다는 것도 큰 장점이라 생각합니다.
Q. 앞으로 Color Scripter는 어떻게 운영되나요?
Color Scripter를 개발했던 당시와 달리 이제 N포털 에디터에서 코드를 지원하고, jsfiddle등 코드와 더불어 결과까지 확인할 수 있는 서비스들도 많이 등장하고 있습니다. 때문에 최근에는 굳이 시간을 내서 업데이트를 하기보다는, 머신러닝 등의 공부를 할 때 이 서비스에 활용해보자는 목표를 가지고 이용하는 용도로 개발과 운영을 진행하고 있습니다.
물론 Color Scripter는 여전히 제 포트폴리오에 빠지지 않고 들어가는 프로젝트이고, 그만큼 많은 애정이 있기에 사용자가 계속 줄어들어도 서비스는 계속 운영을 하지 않을까 싶습니다. 지금 상황에 있어서는 운영을 꾸준히 하면서 확장 스토어나 언어 탐지기처럼 새로운 시도를 해볼 만한 재미있는 아이디어가 생길 때, 그 기능들을 추가해가며 조금씩 업데이트 할 예정입니다.
Q. Color Scripter와 같은 개인 프로젝트가 ‘개발자 이영수’에게 미친 영향은 무엇일까요?
사용자가 있는 서비스를 운영해본 경험은 쉽게 얻기 힘들다고 생각합니다. 대부분의 개발자들은 회사에 들어가서야 아마 그런 경험을 얻을 수 있겠죠. 저는 운이 좋게도 고등학교 시절부터 Color Scripter라는 서비스를 통해 ‘사용자’라는 것이 무엇인지를 알 수 있었습니다. 공부하고 있는데 서버가 죽었다고 메일이 오는 경험은 어릴 때 쉽게 할 수 없는 거겠죠? 내가 괜찮을 것 같다고 생각했던 기능이 실제로 반응이 좋은지, 또 내가 놓친 부분이 어떤 것이 있는지를 실제 사용자로부터 배울 수 있다는 점이 가장 크다고 생각됩니다. 이런저런 아이디어를 바탕으로 만들고 싶은 새로운 기능을 제 마음대로 추가해 볼 수도 있고요.
Q. 개인프로젝트를하며 느낀 어려움과, 그것을 해결하기 위해 어떤 노력을 하셨는지 궁금합니다.
아무래도 학생이다 보니 금전적인 문제가 가장 큰 걸림돌입니다. 안정적인 서비스 운영을 위해서는 서버 임대가 필수적인데, 사용자가 아무리 적다 해도 수입이 없다시피한 학생에게는 나름 큰 부담이죠. 그래서 기존까지는 집에 초소형 서버를 하나 사서 설치하다가, 다른 외부 프로젝트를 진행하면서 얻은 서버에 기생(?)해 서비스를 돌렸습니다. 물론 그 프로젝트가 끝나면 다시 집에 있는 서버로 옮기거나 했어야 했죠. 그래서 최근 이런 문제를 해결하고자 후원 프로젝트를 진행했습니다. 적은 금액이라도 모금을 받아 서버 운영비에 보태 보려 반신반의 한 채 캠페인을 진행해봤습니다. 그런데 우려하던 것과는 달리 정말로 많은 분이 후원을 해 주셔서 1년은 거뜬히 운영이 가능한 서버 비용을 모았습니다. 그렇지 않아도 애착이 있던 서비스였는데, 이번 계기로 그 마음이 더 커진 것 같기도 합니다.
Q. 개인프로젝트를 해볼까 싶지만 막막해하는 학생들도 많을 것 같습니다. 해주실 말씀이 있다면?
개인 프로젝트는 무조건 재미있어야 된다고 생각합니다. 회사 프로젝트나 외부 프로젝트는 어쩔 수 없이 해야 하는 측면도 있는데, 개인 프로젝트는 본인 의지가 아니면 절대 그렇게 못하니까요. 평소에 ‘이런 게 있으면 좋겠다’ 했던 것들을 직접 실행에 옮겨 보는 것이 가장 좋다는 생각이 들고, 그렇지 않다면 배우고 싶은 기술을 이용해 실험 해보기 좋은 아이디어를 찾되, 재미있다고 세뇌라도 해야 합니다. 그렇지 않으면 중간에 포기할 가능성이 굉장히 높을 거라고 생각해요. 하지만 한 번 완성시키고 나면 이후에는 그 뿌듯함과 자신감을 바탕으로 다음 프로젝트를 시작하기 훨씬 쉬워지니 첫 발걸음만 잘 떼면 된다고 생각합니다.