2014
...

저는 캔디바라는 사이트에서 한국어 쿵쿵따와 영어 쿵쿵따를 즐겨 했었습니다.
단어를 넘길 때 느낄 수 있는 특유의 애니메이션과 소리가 마음에 들어 재밌게 했었습니다.
하지만 시간이 지나면서 사람들이 캔디바에서 쿵쿵따를 즐기려 하지 않았고 언제부턴가 게임에 접속하면 항상 대기실에 혼자 있게 되었습니다.
친구들에게 게임을 같이 하자고 이야기를 해도 ActiveX와 함께 게임을 컴퓨터에 설치하는 것에 대한 부담감, 창 모드로 실행되지 않는 문제 등으로 결국에는 혼자가 되었습니다.
일반적인 쿵쿵따 모드는 여타 사이트에서도 제공하고 있기 때문에 괜찮았지만 캔디바의 영어쿵쿵따만큼은 하나밖에 없는 온라인 영어 끝말잇기 게임이었기 때문에 참 아쉬웠습니다.
캔디바 영어쿵쿵따
▲ 캔디바 영어쿵쿵따

8

여름 방학 보충 수업으로 학교에 다녔을 시절 친구와 함께 재미있는 쉬는 시간을 보낼 궁리를 하다가 문득 떠오른 것이 있었습니다.
한국어의 한 글자가 두세 자모로 이루어져 있기 때문에 한국어 끝말잇기는 적당히 끝낼 수 있는 반면 영어에서는 그렇지 않다는 사실이었습니다.
한국어 끝말잇기의 '끝말'은 사실 두세 자모가 포함되어 있는 것이었습니다. 그리고 곧

라는 생각이 들었고 학교에서 공부 좀 한다는 친구를 불러 이 규칙으로 끝말잇기를 해보았습니다.
예상대로 한국어 끝말잇기처럼 적당한 정도에서 끝을 볼 수 있었고 친구도 영어 단어를 생각해 내느라 애를 좀 먹은 모양이었습니다.
이 때부터 저는 이 끝말잇기를 영어 끝두세말잇기라고 부르기 시작했습니다.

9

소프트웨어 마에스트로 5기 연수생으로서 1단계 프로젝트의 주제로 '대용량 트래픽에 대응하는 실시간 랭킹 게임 시스템'이 결정되었습니다.
실시간 랭킹 게임을 만들 때 랭킹 제도를 구축하기 쉽도록 랭킹 부분을 하나의 서비스로 제공하는 시스템이었습니다.
당시 ...aaS(... as a Service)라는 용어가 퍼지고 있을 즈음 이 시스템도 RaaS(Ranking as a service)라는 약어로 표현되곤 했습니다.
이 프로젝트는 매사에 주도면밀하셨던 멘토 한 분과 저를 포함한 4명의 멘티가 함께 진행해 나갔습니다.
실시간 랭킹 게임 시스템이 개발되는 과정에서 이 시스템이 잘 동작하는지 확인하기 위해 실시간 랭킹 게임 몇 개를 기획해야 할 필요가 생겼습니다.
게임 기획에 대한 회의 중 저는 친구와 했던 영어 끝두세말잇기가 생각나 이를 게임으로 구현하면 어떻겠냐고 이야기했습니다.
다행히 팀원들은 모두 수긍했고 만들 게임 목록에 영어 끝두세말잇기가 추가되었습니다.
그리고 사람들이 보다 쉽게 게임 이름을 익힐 수 있도록 이 게임의 이름을 영어 끝두세말잇기의 '끝두'를 적절히 단순화한 '끄투'로 짓게 되었습니다.
회의록1
▲ 2014년 9월 10일 회의록 중. 끄투에 대한 이야기가 기록된 첫 서류이다.
회의록2
▲ 2014년 9월 18일 회의록 중
끄투1
▲ 2014년 9월 25일 버전의 로비
끄투2
▲ 2014년 9월 25일 버전의 게임 대기실
끄투3
▲ 2014년 9월 25일 버전의 게임 화면
회의록3
▲ 2014년 9월 26일 회의록 중
회의록4
▲ 2014년 9월 29일 회의록 중

10

코드 네임 KKuTu, 끄투는 그렇게 랭킹 게임 시스템과 연계되어 개발되고 있었습니다.
회의록5
▲ 2014년 10월 8일 회의록 중
회의록6
▲ 2014년 10월 17일 회의록 중
끄투4
▲ 2014년 10월 26일 버전의 로비
끄투5
▲ 2014년 10월 26일 버전의 게임 대기실
끄투6
▲ 2014년 10월 26일 버전의 게임 화면
회의록7
▲ 2014년 10월 31일 회의록 중

11

그렇게 약 3개월 정도 지나 처음으로 세상에 공개되었습니다.
당시 게임 서버는 루비로 되어 있었으며 클라이언트는 jQuery도 쓰지 않은 순수 자바스크립트로 작성되었습니다.
주변 사람들에게 끄투를 알리고 같이 플레이해 보기도 했습니다.
회의록8
▲ 2014년 11월 5일 회의록 중
git
▲ 2014년 11월 8일 git 기록
발표자료
▲ 2014년 11월 13일 프로젝트 발표 자료 중
발표자료
▲ 2014년 11월 13일 프로젝트 발표 자료 중

▲ 2014년 11월 16일 플레이 영상

▲ 2014년 11월 17일 끄투 홍보 영상
알알께임즈
▲ 알알께임-즈 페이스북 페이지
끄투버그
▲ 첫 끄투 버그 제보 글

12

실시간 랭킹 게임 시스템을 구축한 이후 끄투를 포함한 프로젝트 전체는 프로젝트가 끝난 이후 한동안 조용했습니다.
저도 팀원들도 일상으로 돌아가야 했기 때문이었습니다.
11월 오픈 베타 때 유입된 몇몇 사람들이 가끔 들어와 끄투를 즐기곤 했습니다.

2015
1

리그 오브 레전드 전적 검색 사이트라는 명목으로 쪼롤이 만들어지기 시작했습니다. 앞서 끄투를 만든 경험이 있었기 때문인지 비교적 빠르게 만들 수 있었습니다.
끄투를 만들면서 객체를 다루는 데에 많이 불편했는지 쪼롤에는 jQuery 라이브러리가 도입되었습니다.
쪼롤1-1
▲ 쪼롤 1의 메인 화면
쪼롤1-2
▲ 쪼롤 1의 소환사 정보 화면

2

예전부터 개인 홈페이지를 운영해 보려고 노력한 저는 쪼롤을 만들면서 이참에 개인 홈페이지를 여기에 두자는 생각을 했습니다.
이전까지는 개인 홈페이지의 이름을 '쪼리핑의 일상생활'이라고 붙였고 이는 제 네이버 블로그의 이름이기도 합니다.
아무튼 이 시기에 쪼롤을 만들어 나갔고 끄투는 조금씩 잊혀지고 있었습니다.
쪼롤 개발에 대한 자세한 이야기는 네이버 블로그에 기록해 두었습니다.

3

새 학기가 시작되면서 쪼롤 개발도 더디게 진행되었습니다.
거기에 소프트웨어 마에스트로 2단계 과정에도 참여하면서 좀처럼 쪼롤이나 끄투에 신경쓸 여력이 없었습니다.
그렇게 별반 업데이트 없이 4개월이 흘렀습니다.

4
5
6

소프트웨어 마에스트로 과정도 끝났고 한 학기도 끝났습니다.
쪼롤에 대한 주변 사람들의 피드백이 많았기에 이번 방학에도 끄투는 밀려났습니다.
이 때 쪼롤의 내부 구조를 Node.js로 바꾸게 되면서 처음 Node.js를 이용한 서비스 개발을 하게 되었습니다.
쪼롤 2 개발에 대한 자세한 이야기는 네이버 블로그에 기록해 두었습니다.

7

쪼롤 2가 공식적으로 게시되었습니다.
쪼롤2-1
▲ 쪼롤 1(왼쪽)과 쪼롤 2(오른쪽)를 비교한 모습
문제는 쪼롤 내부 구조를 바꾸면서 끄투는 작동하지 않게 되었고, 사실상 끄투가 잊혀지고 있었습니다.

8

그렇게 끄투가 잊혀질 무렵, 소프트웨어 마에스트로 1단계 프로젝트를 주도하신 멘토님으로부터 연락이 왔습니다.

당시 멘토님의 실망하신 듯한 말투는 지금껏 제 마음에 남을 정도로 크게 다가왔습니다.
이 일을 계기로 저는 끄투를 놓지 않겠다고 다짐했고, 곧 끄투를 쪼롤의 하위 메뉴로 옮겼습니다.
끄투다짐
▲ 끄투 서버 이전 공지

9

쪼롤 2로 리뉴얼하면서 데이터베이스도 MongoDB로 바꾸게 되었습니다.
이 과정에서 InnoDB 기반의 모듈을 쓰고 있었던 끄투는 제대로 작동하지 못했습니다.
이따금 단어를 불러오는 데에 실패해 서버가 종료되는 때도 많았습니다.
디비제보
▲ 데이터베이스가 없어 단어 조회에 실패하는 문제를 제보한 끄투 사용자

10
11

언제부턴가 끄투 서버가 오류로 닫혀버려도 그걸 인지하지 못할 만큼 끄투 운영에 소홀해 졌습니다.
간간이 끄투에 찾아와 주시는 분들의 제보로 한동안 닫힌 서버가 그 때에서야 열리곤 했습니다.

12

하지만 끄투를 그렇게 방치하는 것이 정말 멘토님과 끄투 사용자분들이 바라는 것인지 생각해 보게 되었습니다.
정말 끄투를 운영하는 것이라면 방치가 아닌 운영한다는 점을 보일 필요가 있었습니다.
그래서 이번 방학 때에는 오랫동안 묵힌 끄투를 대대적으로 개편할 계획을 했습니다.
끄투2
▲ 개편 안내 공지
끄투 2 개발 일지

2016
1

끄투의 개편 작업은 최대한 빠르게 진행되어 착수 약 1주일 뒤에 게시되었습니다.
기존 끄투에서 꼭 필요한 기능만을 추려 구현하다 보니 빠진 기능이 더러 있었습니다.
하지만 누군가 끄투를 기다리고 있을지도 모른다는 생각에 당장 그런 기능들을 구현할 여유는 없었습니다.
끄투4
▲ 끄투 2 오픈 공지

2

끄투가 끄투 2로 개편될 무렵 쪼롤도 버전 3으로 한 번 더 개편이 이루어졌습니다.
이 개편으로 사전에 없는 단어를 조금씩 넣기 시작했습니다.
'어인정' 모드라는 이름이 붙게 된 이유는 사전에 없는 단어로 가장 먼저 들어간 단어가 '어인정'이었기 때문입니다.
저 또한 이전에 여러 쿵쿵따 게임을 즐긴 유저로서 사전에 없지만 허용되는 단어(윰키밀, 릇샘파, 즘게남, ...)들의 존재를 알고 있었기 때문에
그런 단어들을 단어 분류와 함께 관리하기로 했습니다.

3

끄투를 즐겨주시는 한 분으로부터 어인정 모드에 단어를 추가해 달라는 요청을 받았습니다.

저는 이런 쪽에 문외한이라 정확히 어떤 단어를 넣어야 되는지 몰라서 일단 어인정 개념만 두고 제가 아는 단어들만 넣은 상태였습니다.
중요한 점은 누구도 온라인 끝말잇기 게임에 그런 단어를 넣어 운영하지는 않았기에,
여느 끝말잇기 게임과는 차별되는 끄투의 특징을 명확히 하기 위해서라도 이런 단어를 넣는 것이 정말로 재밌겠다고 생각했습니다.

4

학교 생활에 점차 적응하면서 단어 추가 외에도 콘텐츠를 조금씩 개발하기 시작했습니다.
10초 모드, 제시어 개편, 미션 모드, 관전 등이 추가되었습니다.

5

끄투 1부터 있었던 끄투의 화폐 단위 핑을 아직까지 전혀 쓸 수 없었기 때문에 상점에 대한 이야기가 많았습니다.
하지만 상점 관련 사항은 버그가 생기면 핑이나 아이템을 비정상적으로 얻을 수 있다는 문제 때문에 보다 신중해야 했습니다.
그렇게 상점 구현을 미루기를 반복했습니다.

6

8일, 소프트웨어 마에스트로 시절 빌린 서버의 임대 기간이 끝나면서 그 위에서 돌아갔던 쪼롤과 끄투가 닫혔습니다.

7

서버가 닫힌 이후 적절한 새 서버를 구매하기까지 약 보름이 걸렸습니다.
서버를 구매한 뒤에도 이사하는 것만큼이나 할 일이 많았습니다.
새 서버는 기존의 MongoDB가 제대로 지원되지 않아 데이터베이스를 PostgreSQL로 옮기는 과정에서 수많은 삽질이 있었습니다.
이런 이유로 쪼롤과 끄투는 예상보다 좀 더 늦은 7월 26일 경 열렸습니다.
이 때 비단 끝말잇기뿐만이 아닌 단어들을 이용한 게임들을 두루 묶을 생각을 하고

을 표어로 삼았습니다.

8

국립국어원의 인가를 받고 단어에 뜻을 표기하기 시작했습니다.
모레미와 상점이 도입되었습니다.
모레미는 좁쌀의 은어 '모래미'에서 유래했습니다.
모레미
▲ 모레미 기획
페이스북 계정으로 로그인할 수 있게 되면서 자신의 프로필 사진이 부담된다는 제보가 더러 있었습니다.
초창기에도 조금 염두는 했었지만 상점과 함께 수요가 상당했기 때문에 이번 기회에 끄투 전용 캐릭터를 만들기로 했습니다.
끄투 자체가 아기자기한 색채로 꾸며진 만큼 모레미도 귀여우면 좋겠다고 생각했습니다.
이 외에도 자음퀴즈, 모바일 웹, 십자말풀이 등 여러 게임 모드들을 추가하기 시작했습니다.
네이버 블로그에 패치 노트를 기록하기 시작했습니다.

9

타자 대결, 앞말잇기 유형이 추가되었습니다.
귓속말, 팀전 기능이 추가되었습니다.
글자 조합소가 추가되었습니다.
끄투에서의 인기 단어를 매주 네이버 블로그에 올리기 시작했습니다.

10

트위터에서 끄투가 조금씩 퍼지고 있다는 사실을 아마도 이 때 알게 되었습니다.
제가 모르는 누군가가 주변으로 끄투를 알리고 있는 모습으로부터 희망과 보람을 많이 느낄 수 있었습니다.

11

제 직접적인 홍보가 없이도 게임이 조금씩 알려지고 있는 점이 흥미로웠습니다.
이 때부터 새벽이 아닌 날에는 항상 누군가 끄투를 즐겨 주었습니다.
어느 날에는 한동안 동시 접속자 수가 10명을 웃돌기도 했습니다.
아마 유챗이라는 곳에서 끄투로 접속했던 것 같았습니다.

12

눈에 띄는 정도는 아니었지만 통계 수치를 봤을 때 슬금슬금 이용자 수가 증가하는 것을 확인했습니다.
6월 ~ 8월 서버 이전 이후 토막난 이용자 수가 점점 회복되는 것 같았습니다.
그렇게 기대를 가지고 이번 방학에는 여태껏 미루어 왔던 개인 홈페이지 구축을 하기로 결심했습니다.
''이라는 언어를 만들고 그 언어를 바탕으로 글을 쓰는 방식이었습니다.

2017
1

순조롭게 갤러리를 만들어 글을 쓰고 있었습니다.
하지만 13일, 큰 사건이 일어났습니다.
세션
▲ JJO.KR 방문자 그래프
그 날 아침이었습니다. 갤러리를 만들다 잠시 확인 차 끄투에 접속해 보았습니다.
동시 접속이 10명을 아득히 넘어가는 수치가 눈앞에 펼쳐졌습니다.
놀란 마음에 새로 고침을 계속해 보았지만 그 값은 버그가 아니었습니다.
170113
▲ 1월 13일 당시 동시 접속자 수
이 때부터 저는 방학 계획을 모조리 치우고 끄투 관리에 열중하기 시작했습니다.
이용자가 적어 얼마나 많은 버그가 숨어있는지 몰랐기 때문에 이 시절 서버는 심심하면 터졌습니다.
조그만 서버에 100명이 넘는 사람들을 수용하느라 데이터 처리가 더뎌지면서 예기치 못한 문제도 적잖아 일어났습니다.
한동안은 서버가 터지면 즉시 대응할 수 있도록 손님 계정으로 끄투에 들어가 있곤 했습니다.
이 시기에 내부적으로 채널을 나누는 등 소스 코드를 최적화하려 했지만 설과 겹치면서 사용자가 나날이 늘어나 역부족이었습니다.
결국 17일 끄투 서버를 쪼롤 서버와 분리시키는 작업을 시작했고 이 때 서버 수용 인원이 크게 늘었습니다.
170117
▲ 1월 17일 당시 동시 접속자 수
이윽고 한 서버에 천 명이 몰리게 되면서 서버가 문제가 아니라 클라이언트가 버벅이기 시작했습니다.
천 명의 목록과 수백 개의 방을 갱신하는 것이 만만치 않은 작업이기 때문이었습니다.
170130
▲ 1월 30일 당시 동시 접속자 수
이런 이유로 31일 끄투 서버를 여러 프로세스로 나누어 처리하기 시작했습니다.
만들어지는 중
▲ 서버 분할 과정 중의 모습

2

끄투가 유명 방송인에게 여러 차례 소개되면서 정말 많은 사람들이 끄투를 찾아와 주셨습니다.
이 일로 사업을 해도 충분할 만큼 사업 가치도 있다고 생각했었고 실제로도 몇몇 사업가 분들의 연락이 있었습니다.
정말 귀한 경험이었습니다. 비록 지금은 이렇게 글로만 남은 이야기지만 끄투를 운영하면서
새로 만든 콘텐츠를 사람들이 즐기는 것을 관찰하고,
서버를 터뜨려 욕을 먹고,
약속된 업데이트 시간을 어겨 욕을 엄청 먹고,
아무도 모르게 지급하는 경험치나 핑의 양을 바꾸고,
부정 이용으로 차단된 사용자의 쪽지를 읽어보고,
손님 계정으로 몰래 접속해 사람들의 생각을 알아보고,
상점에 어떤 신상품을 내놓을지 고민하고,
끄투팬카페 운영진과 '공식' 카페 문제로 다투는 것을 지켜보고,
나무위키에 개설된 끄투 문서를 엿보고,
유튜브나 티비플에 올라온 끄투 영상을 찾아서 보고,
트위터에서 '끄투'가 포함된 트윗을 검색하고,
불량 사용자와 버그와 개선 사항을 제보받고,
아무튼 가능한 많은 이야기를 듣고 이를 반영하기 위해 노력했습니다.
그렇게 해야 끄투를 찾아와 주는 분들이 언제나 재미있고 유쾌하게 이용할 수 있겠다고 생각했습니다.
이 쯤 끄투의 이용자 수는 제 기록 중 최고이고 개설된 6개 서버가 모두 찼습니다.
170205
▲ 2월 5일 오후 9시 경 동시 접속자 수

하루 평균 270 GB 정도의 트래픽이 발생했고, 하루 평균 3만 명의 사용자가 끄투를 방문해 주었습니다.
저는 사람들의 성원을 최대한 저버리지 않기 위해
모든 사람들이 저를 대신해 끄투의 뒤를 맡을 수 있도록 했고
지금까지 그런 분들의 서버 목록을 보여드리고 있습니다.
그리고 이 곳에서 끄투의 앞을 보여드렸습니다.

끄투 이야기