카카오톡 메시지 변환
카카오톡의 국내 사용자수가 3600만명이라고 한다. 여기에 최근 보이스톡이라는 VoIP 기능이 논란에 휩싸였다. 그러나 난 카카오톡을 사용하지 않았다. '카카오톡'을 운영하는 '(주)카카오에 대한 이미지가 좋지않기 때문이다'. 그러나 보이스톡의 성능을 알고 싶어 최근 다시 카카오톡을 설치했다. 물론 조만간 지울 예정이다. 다만 이왕 설치한 김에 주변 사람들이 자주 질문한 '카카오톡 메시지를 엑셀로 변환하는 방법'에 대한 글을 올리기로 했다. 과정은 조금 복잡하다. 그러나 이 방법을 이용하면 '다른 어플의 데이타도 엑셀로 변환'할 수 있기 때문에 이 기회에 알아 두는 것도 괜찮다. 다만 사설이 조금 길다. 따라서 본론을 바로 읽고 싶은 사람은 중간부터 읽기 바란다.
카카오톡과 보이스톡
얼마 전 이통사를 발칵 뒤집은 기사가 하나 있다. 바로 카카오톡의 VoIP 기능인 보이스톡에 대한 기사다. 현재 카카오톡의 국내 사용자 수가 '3600만명'이라고 한다. 3600만명 모두 보이스톡을 사용할지는 의문이다. 그러나 이미 설치된 '카카오톡'에서 신청[1]만 하면 '보이스톡'을 바로 사용할 수 있다. 따라서 지금까지 등장한 어떤 VoIP(Voice over IP) 어플 보다 파급력이 막강할 것은 분명하다. 이 때문에 이동통신사는 무임승차라고 하며 카카오톡을 제재할 움직임이다. 반면에 비싼 스마트폰 요금을 내는 사용자는 모두 반기는 분위기이다.
세개 중 가장 먼저 출시된 어플이 카카오톡이다. 그 다음으로 마이피플, 마지막으로 틱톡이 출시됐다. 그러나 사용자는 카카오톡, 틱톡, 마이피플 순이다. 틱톡이 마이피플을 따라 잡은 것은 틱톡만의 고유한 기능 때문으로 보인다.
카카오톡의 성공공식
개인적으로 카카오톡 보다는 틱톡, 마이피플을 더 좋아한다. 카카오톡(KakaoTalk)에 비해 틱톡 사용자는 많지 않다. 그러나 일단 기능이 더 풍부하다. 오죽했으면 틱톡을 사용하던 초등학교 6학년도 '카카오톡은 기능이 적어 불편하다'고 한다. 틱톡에서 '분리하겠다'고 하는 구름도 괜찮다. '구름'은 스마트폰을 이용한 마이크로 블로깅 정도로 생각하면 된다. 틱톡(TicTalk)의 모임도 주변 사람들과 어떤 주제를 논의하기 좋다. 카카오톡의 단체대화와 비슷해 보인다. 그러나 실시간성이 없기 때문에 차분히 서로 의견을 주고 받을 수 있다. 그런데 많은 사람들이 카카오톡(KakaoTalk)을 쓰고 있고 아이폰을 사용하고 있는 아이들까지 카카오톡을 깔아 달라고 조른다.
왓츠앱을 배꼈지만 와츠앱 보다 더 성공한 카카오톡. 이 카카오톡을 보면 우리나라의 성공공식 중 하나가 생각난다. "외국에서 인기있는 서비스를 예쁘게 배껴 국내에 출시한다". 이런다고 모두 성공하는 것은 아니다. 그러나 이렇게 성공한 서비스가 많은 것도 사실이다. 기능 보다는 '디자인', 창의력 보다는 '복사'가 성공에 이르는 방법이라는 것은 조금 씁쓸하다. 아무튼 최근 카카오톡을 다시 사용하고 있다. 그러나 카카오톡을 운영하는 (주)카카오를 믿지는 않는다. 따라서 계속 사용할지는 미지수다. 그러나 보이스톡(VoiceTalk)의 성능이 일단 궁금했다.
어플의 기본기
카카오톡을 다시 사용하다 보니 일부 틱톡에서 배낀 기능이 보인다[2]. 바로 '(돈)'과 같은 형태로 이모티콘을 표시하는 기능[3]이다. 틱톡에서 이 기능을 보고 상당히 괜찮은 아이디어로 생각했기 때문이다. 아이폰의 이모지(eMoji) 기능도 좋기는 하지만 아무래도 '(돈)'처럼 이모티콘을 사용하는 것이 이모지 자판을 이용하는 것 보다 편하기 때문이다. 또 마이피플에서 선보인 스티커 기능도 포함되어 있었다. 다만 이미 틱톡과 마이피플에서 경험한 기능이라 그리 신선하지는 않았다.
그런데 카카오톡을 사용하다 보니 마음에 드는 기능이 하나 보인다. 바로 연락처 정렬 기능이다. 우리나라에서 출시된 카톡 비슷한 문자 어플은 아이폰 설정을 참조하지 않고 무조건 '성이름'으로 '정렬'한다. 마이피플, U-Say, M&Talk[4] 모두 마찬가지다. U-Say는 연락처 백업 기능도 있다. 따라서 USay, 주소록이니? 무료 메신저니?라는 글까지 올리며 사용하려고 했었다. 그런데 포기한 이유는 '성이름'으로 표시, 정렬하며 연락처 백업까지 '성이름'으로 하기 때문이었다. 이렇게 백업하면서 아이폰의 '성' 항목이 사라진다.
과거 휴대폰의 연락처를 아이폰 연락처로 변환했다. 문제는 여기서 발생했다. 아이폰은 전세계에서 사용하는 폰이라 성과 이름을 따로 입력한다. 따라서 휴대폰 연락처에서 성과 이름을 분리해야 아이폰 연락처에 정상적으로 삽입됐다. 그런데 이 작업을 하기 귀찮았다. 그래서 쓴 방법이 휴대폰의 '성이름'을 아이폰의 '이름' 항목에 저장하고 '성' 항목에는 트위터 ID, 직업과 같은 관련 정보를 입력해 두었다. 이런 방법으로 이름을 입력하면 전화가 올 때 이름 외에 '관련 정보'까지 표시되기 때문에 상당히 편리했다[5].
그런데 카카오톡, 마이피플, 틱톡등 연락처를 참조하는 대부분의 국산 어플은 무조건 '성이름'으로 표시, 정렬했다. 아이폰 설정을 읽고 표시, 정렬해 주면 좋을 텐데 이런 어플은 많지 않았다. 따라서 이런 문자 어플을 사용하면 '관련 정보(성)'가 먼저 뜨고 '이름'이 나온다. 여기에 정렬도 '성이름'으로 하기 때문에 연락처가 거의 엉망진창이 된다. 어플 개발사에게 아이폰 설정을 참조해서 정렬, 표시하게 해달라고 요청했만 당시에 답이 없었다. 틱톡은 '다음 개발 때 참조하겠다'고 메일을 보내왔지만 아직도 '성이름'으로 표시하고 정렬한다.
그런데 최근 카카오톡과 마이피플을 다시 실행하고 연락처를 보니 아이폰 연락처처럼 보인다. 이런 문제는 비단 문자 어플에만 있는 것은 아니다. 연락처 어플도 비슷하다. 앞에서 설명한 U-Say도 같은 문제가 있었다. 연락처 어플 중 이런 문제가 없는 어플은 인사이트 미디어에서 개발한 i그룹 연락처(iGroup Contacts)[6] 정도 였다. 이런 부분은 개발할 때 가장 기본이 되는 것이라고 생각한다. 시스템 설정이 있으면 시스템 설정을 읽고 설정에 따라 표시하는 것은 기본이다. 카카오톡에 대한 이미지는 별로 좋지 않다. 그러나 지금이라도 기본을 찾은 이런 부분은 칭찬해 주고 싶다.
원래는 세개 프로그램 모두 무조건 '성이름'으로 표시했다. 그런데 이제 카카오톡과 마이피플은 아이폰 설정을 읽고 설정에 따라 정렬, 표시한다.
메시지 변환하기
사설이 조금 길어졌다. 아무튼 카카오톡 사용자가 많다 보니 카톡의 메시지를 엑셀로 저장하는 방법을 묻는 사람들이 종종있다. 이런 채팅 정보를 왜 엑셀로 저장하려 하는지는 모르겠다. SMS 메시지도 그냥 날리는 나로서는 조금 의외다. 그러나 사람에 따라 필요한 사람도 있을 수 있고 지인 중 요청하는 사람이 많아 카카오톡을 설치하고 백업하는 방법을 한번 알아 봤다. 일단 DB를 백업하는 것은 상당히 쉽다. 예전에 SMS 메시지를 엑셀 파일로 백업하는 방법이라는 글을 올리며 소개한 iBackupBot을 사용하면 바로 DB 및 데이타를 백업할 수 있다. 또 백업된 데이타를 다시 아이폰에 심는 것도 가능하다. 따라서 이 글을 읽는 사람은 먼저 다음 세개의 글을 읽고 iBackupBot의 사용법을 먼저 익히기 바란다.
메시지 파일 백업
일단 iBackupBot을 이용해서 카카오톡의 DB를 임의의 폴더에 복사한다. Talk.sqlite
파일만 복사하면 된다. 다른 파일들도 많지만 이모티콘 파일, 설정 파일들로 실제 주고 받은 문자와는 관련이 없다. 백업하는 방법은 간단하다.
- 컴퓨터에 백업된 데이타를 최신으로 유지하기 위해 '아이튠즈'에서 '백업'을 실행한다. 이 과정을 하지 않으면 과거 데이타만 변환될 수 있다.
- 'iBackupBot'을 실행하고 왼쪽 창에서 'KakaoTalk Messenger'를 클릭한다.
- 오른쪽 창에서 파일(Talk.sqlite) 왼쪽의 체크 상자를 클릭한다.
- 선택한 파일을 복사하기('내보내기')위해 'Ctrl-E'를 누른다.
- 'Export only checked file' 체크하고 OK단추를 누른다.
- 적당한 폴더를 선택한 뒤 '확인' 단추를 누른다.
SQLite Manager 설치[7]
불여우(Firefox)를 설치한다. 불여우를 설치하는 이유는 SQLite Manager 때문이다. 카카오톡 메시지를 저장하고 있는 Talk.sqlite
는 일반 파일이 아니고 데이타베이스 파일이다. 이 데이타베이스 파일에서 원하는 메시지만 추출하려고 하면 SQLite를 다룰 수 있는 프로그램이 필요하다. 윈도에서 동작하는 SQLiteManager과 같은 프로그램도 있지만 유료다. 따라서 기능제한없이 무료로 SQLite 파일을 처리하려면 불여우 확장(Firefox Extention)인 SQLite Manager를 사용하는 것이 좋다.
불여우(Firebox)를 설치하는 방법은 간단하다. 불여우 홈페이지를 방문한 뒤 Firebox 무료 다운로드 단추를 클릭, 파일을 내려받아 설치하면 되기 때문이다. 홈페이지에서 불여우 12(Firefox 12)를 받아도 되고 최근에 출시된 불여우 13(Firefox 13)을 받아도 된다. 설치하는 방법은 따로 설명하지 않겠다.
마지막으로 불여우 확장(Firefox Extention)인 SQLite Manager를 설치한다. 설치하는 방법은 간단하다.
- 설치한 불여우(Firebox)를 실행하고 다음 사이트에 접속한다.
https://addons.mozilla.org/ko/firefox/addon/sqlite-manager/ - SQLite Manager에서 'Firefox에 추가' 단추를 클릭한다.
- '소프트웨어 설치' 창에서 '설치' 단추를 클릭하고 불여우를 다시 시작한다.
메시지 변환
이제 남은 것은 SQLite Manager를 이용해서 Talk.sqlite
파일을 읽고 SQL 문을 이용해서 원하는 메시지만 걸러내면 된다. 또 SQL에 대해 모르는 사람도 작업할 수 있도록 SQL 문도 미리 만들어 두었다. 따라서 초보자는 고민할 필요없이 제공된 SQL 문을 '복사/붙여넣기'만 하면 된다.
- 'Alt' 키를 한번 누르고 불여우(Firebox)에 메뉴가 나타나면 '도구/SQLite Manager'를 클릭한다.
- 'Database/Connect Database' 메뉴를 클릭하고 이전에 복사한
Talk.sqlite
를 지정한다. 원래 파일 이름은Talk.sqlite
이지만 복사하면서Documents_Talk.sqlite
로 바뀐다. 'Execute SQL' 탭을 클릭①하고 다음 내용을 복사해서 'Enter SQL' 창에 붙여넣은 뒤② 'Run SQL' 단추를 클릭③한다.
SELECT DATETIME(m.ZSENTAT, 'unixepoch', 'localtime', '+31 year'), u.ZNAME, m.ZMESSAGE, m.ZREPLACEMENTTEXT, m.ZURL FROM ZMESSAGE as m, ZUSER as u WHERE m.ZUSERID == u.ZID ORDER BY m.ZSENTAT
- 'Actions' 단추를 클릭한 뒤 'Save Result (CSV) to File' 메뉴를 클릭한다.
이렇게 하면 카톡 메시지를 엑셀에서 읽을 수 있는 .CSV 파일로 저장할 수 있다. 따라서 이 파일을 엑셀에서 읽은 뒤 원하는 파일 형식으로 다시 저장[8]하면 된다. 여기서는 카톡 메시지를 엑셀로 바꾸는 방법을 설명했다. 그러나 DB에 대해 조금 알고 SQL 문법을 안다면 다른 어플의 데이타도 모두 엑셀로 바꿀 수 있다. 참고로 SMS 메시지는 iBackupBot에서 자동으로 엑셀 파일로 변환해 준다.
남은 이야기
마지막으로 카카오톡 '설정/배경화면/채팅방 설정/대화내용 이메일로 보내기/모든 메시지 보내기'를 하면 대화 상대 각각에 대한 대화기록을 메일로 받을 수 있다. 또 대화방에서 오른쪽 위의 아이콘을 터치하고 '대화내용 이메일로 보내기'를 터치하면 대화방별로 대화내용을 전자우편으로 받을 수 있다. 그러나 이 글대로 하면 한번에 모든 대화내용을 저장할 수 있는 잇점이 있다. 따라서 따라서 이 글이 어렵다고 느껴지며 그냥 편하게 살고 싶은 사람은 고민하지 말고 이 방법을 사용하기 바란다.
- 카카오톡 설정에서 보이스톡 날개 우선적용 신청을 하고 약관에 동의하면 바로 사용할 수 있다. ↩
- 이 부분은 확인한 뒤 수정할 예정이다. ↩
- 이모티콘을 이런 형태로 만드는 것은 상당히 오래됐다. 그러나 이것을 문자메시지에 적용한 것을 틱톡에서 먼저 봤다. ↩
- 카카오톡 보다 왓츠앱을 먼저 베낀 어플이다. 그러나 사용자가 폭증하며 서버가 감당하지 못해 며칠간 서비스를 하지 못했다. 이 사이에 카카오톡이 등장했다. ↩
- 이 때문에 아이폰 강의 중 웃음을 유발한 적도 있다. '이00 김00 기자 친구'라고 화면에 표시됐기 때문이다. ↩
- 내가 인사이트 미디어를 높게 평가하는 이유 중 하나는 바로 이런 기본기에 충실하기 때문이다. ↩
- 글을 쓸 당시 SQLite DB를 처리할 수 있는 프로그램이 거의 없었다. 따라서 SQLite DB를 변경하기 위해 불여우를 사용했다. 그러나 요즘은 SQLite DB를 처리할 수 있는 프로그램이 많기 때문에 이런 프로그램을 사용해도 된다. ↩
- CSV 파일을 읽을 때 문자집합을 지정해야 한다. 아이폰은 UTF-8로 데이타를 저장하므로 UTF-8을 선택하면 된다. ↩