끄투온라인 DB 파헤치기
제목은 거창하지만 사실은 그냥 끄투온라인 단어 DB 뜯어본 결과이다. 끄투온라인은 소스코드와 DB가 모두 Github 쪽에서 공개되고 있기 때문에 뜯어보는건 사실 일도 아니었다. 되게 특이하게 PostgreSQL을 쓰길래 내 서버에 설치해서 Regex 지원하도록 만들어 단어검색용으로 써보려하다가….. 귀찮아져서 테스트겸 무슨 단어 들어가있는지 정도만 확인해보기로 했다.
본 글은 개발자스러움이 매우 많이 (-_-;;) 묻어나 있는 글이므로, 혹시나 끄투온라인 단어 알아보러 들어오신 분이라면 적당히 걸러 읽으며 필요한 정보만 가져가시면 되겠다.
Github에서 DB를 받고, PostgreSQL 윈도우용 버전 설치 후 Import하여 일단 데이터가 잘 나오는지 확인해 보았다.
잘 나오고 있음이 확인되었다. 이제 예전부터 궁금했던 몇가지를 검색해보자.
- 끄투온라인에서 어인정 룰 포함, 가장 긴 단어는 무엇인가?
- 끄투온라인에서 10글자 이상의 긴 단어들은 총 몇개인가? 그리고 그 목록은?
- 옛 고어나 사투리 조합 등으로 인한 특이한 글자로 끝나는 단어들의 경우 받아칠 수 있는 경우는? (ex. 이믜 -> 믜신것 -> 것챵)
혹시나 본 글을 읽은 사람 중에 궁금하거나 하는 부분이 있다면 최대한 반영하여 업데이트하도록 하겠다.
어인정 포함 가장 긴 단어는?
이를 위한 SQL문을 작성해보면, 다음과 같다.
select _id from public.kkutu_ko order by length(_id) DESC limit 1;
_id
필드의 길이로 내림차순 정렬하는 SQL문이다. 이에 대한 결과값은 다음과 같다.
아니나 다를까 많이들 보이는 “인기라이트노벨작가인남고생이연하의클래스메이트이자성우인여자아이에게목을졸리고있다” 되시겠다. 일본애들 4글자로 줄여부르기 좋아하는데 이건 뭐라고 부르는지 찾아도 잘 안나와서 모르겠다….
10글자 이상의 단어 갯수와 목록
아래의 SQL문을 작성하고 실행시킨다.
select _id from public.kkutu_ko where length(_id) > 10 order by length(_id) DESC;
결과값을 보도록 하자
자주보던 단어들은 생각보다 적었다는 사실 보다, 10글자 이상 단어가 이렇게 많이 입력되어 있다는 사실이 더 놀라웠다. 끄투 초기 개발자 이 사람은 도대체 이것들을 어디서 긁어온 것일까….. 쿼리 결과 목록 파일은 아래의 링크를 누르면 다운로드 받을 수 있다.
특이한 단어 받아치기
사실 뜯어보려는 목적은 이게 제일 컸다. 고어나 사투리 같은건 도대체 저런 단어가 존재는 하는지 의심스러울 정도로 받아치기 어렵기 때문이다. 하도 당해서 이젠 익숙한 이믜 → 믜신것 → 것챵 → 챵포검 콤보라던가, 장징궈 → 궈모뤄 → 뤄챵페이 같은 의미도 모르겠는 중국어라던가….
일단 최근에 개인적으로 재미를 보고 있는 단어 의몌를 받아치는 단어가 있는지 검색해보았다.
생각보다 많다!? 끽해야 한두개 정도 생각했는데 역시 DB에 직접 검색하니 정보량이 차이가 많이 난다. 그럼 은근히 어려웠던 것으로 시작하는 단어는 어떤지 검색해보았다.
내가 아는게 것챵하고 것구리밖에 없었는데… 것셥 좋다. 그럼 셥은 뭘로 받아쳐야 할까.
셥삭질이 있었다. 한방단어가 아니니 매너룰에서도 사용할 수 있겠다.
조금 검색의 방향성을 바꿔서, 끄투의 그 유명한 장주릅 -> 늡늡의 2방단어 콤보에서, 장주릅을 다른걸로 바꿔서 좀더 다양하게 점수를 노려볼 수 있는 방법으로는 뭐가 있을까. 릅으로 끝나는 단어를 검색해보자.
이야 써먹을만한게 많이 보인다. 몇개 외워둬서 매너모드에서도 더티한 플레이를 즐겨보도록 하자.
작성하다보니 단어검색툴을 만들어보고 싶어지긴 했지만 글쎄… 원본이 PostgreSQL 파일이다보니 직접 DB 설치하고 SQL문 작성해서 검색하는 거 말고는 딱히 더 나은 방법이 떠오르질 않는다. 그렇다고 이걸 SQLite로 변환하자니 또 귀찮고….
여튼 심심해서 끄투온라인 DB를 뜯어본 하루였다.
댓글 9
이제 주릅시리즈 매너에서 안되요
혹시 줘로 끝나는단어 올려주실수있을까요??
저는 걍 SQL 파일을 가져와서 grep RegEx로 검색…했더니 요런게 나오네요. ‘봉구야말해줘’, ‘널오타쿠로만들어줄테니까날리얼충으로만들어줘’ 둘 다 ‘어 인정’단어라서 사전에는 없을듯. grep ‘^.*wnj>’ db.sql > 줘로끝나는단어.txt
덕분에 이것도 나왔네요.. http://blog.naver.com/rnrwp0007
끄투온라인은 원 저작자가 오픈소스로 풀어버린 게임이라 이런류의 핵이 나오기가 쉽습니다. 지금 끄투 서버 노드를 운영하는 관리자들이 원 소스에 보안 코드를 기여한다면 조금은 나아질지도 모르겠지만 글쎄요…..
6글자 목록 8글자 목록이 필요해서 해보려고 했는데 역시 이런 분야에 아무것도 모르는 사람은 어럽군요 끄투 데이터베이스 Postgre? 그둘은 깔았는데 어떻게해야할지…
PostgreSQL을 비롯해서 모든 SQL DB를 다루시려면 SQL 문법을 배우셔야 합니다. 당장 댓글로 알려드리기엔 내용이 많아서 힘들겠군요. 사실 말씀하신대로 개발해본 경력이 없는 사람이 갑작스럽게 이런 것을 다루기는 힘듭니다. 저도 본문에서 밝혔구요. 그래도 한번 시도해보고 싶으시다면 아래의 사이트를 참고하시기 바랍니다. 조금 구글링 해봤는데 개중엔 여기가 그나마 정리가 잘 되어 있는 느낌이네요.
http://www.w3ii.com/ko/postgresql/postgresql_select_query.html
DB 뜯는법좀 알려주세요 ㅜㅜ
끄투온라인 DB는 Postgre SQL로 작성되어 있으며, Postgre SQL 사용법에 대해서는 다른 블로그에 이미 잘 나와있습니다. 저도 그러한 블로그들을 참고하였습니다.