
카카오톡, 텔레그램, 슬랙, 디스코드, 채팅+ 대화를 브라우저 한 화면에서 보는 도구를 만든 기록, 마지막 편이다. 1편부터 4편까지는 내가 쓰려고 만든 이야기였다. 이번에는 그걸 남의 컴퓨터로 건넨 이야기다. 10월 6일부터 13일까지, 일주일 사이에 문을 한 번 닫아서 열었다가 다시 활짝 열었다.
저장소 둘을 하나로
카카오톡 도구는 처음부터 둘이었다. 윈도우의 kanao, 맥의 kamado. 같은 약속 파일을 나눠 쓰면서 저장소는 따로 있으니, 한쪽만 고쳐지고 다른 쪽은 그대로인 일이 자꾸 생겼다. 1편에서 쓴 '보냈다' 문제도 그랬다. 맥은 이미 맞게 하고 있었고, 윈도우만 틀려 있었다.
10월 6일, 둘을 한 저장소로 합쳤다. 두 저장소의 커밋 기록을 그대로 살린 채 windows와 macos 폴더로 나눠 넣고, 약속 파일은 맨 위에 하나만 두었다. 둘이 똑같이 쓰던 코드는 공용 폴더로 뺐다. 명령어 이름과 사용법은 하나도 바꾸지 않았다. 합치는 날 윈도우 테스트 1,169개와 맥 테스트 1,341개를 각자의 컴퓨터에서 돌려 확인했다.
이름은 nichirin이라고 붙였다. 일륜도, 칼날이다. 화면이 칼집(saya), 메신저 연결부가 코등이(tsuba)였으니, 카카오톡을 직접 읽고 보내는 이 도구가 날이 되는 게 자연스러웠다. 예전 윈도우 저장소에는 이사 안내문을 남기고 보관 처리했다.

한쪽 컴퓨터만 가진 사람
합치고 나니 다른 고민이 생겼다. 기여하는 사람은 대부분 윈도우나 맥 중 하나만 갖고 있다. 공용 코드를 고치면 다른 플랫폼에서도 확인해야 하는데, 그 사람에게는 그 컴퓨터가 없다.
그래서 막지 않기로 했다. 자기 플랫폼에서 작업하고, 다른 쪽 확인이 필요하면 이슈를 남긴다. 이슈 양식을 고르면 'Windows에서 확인 필요'나 'Mac에서 확인 필요' 라벨이 저절로 붙는다. 확인 요청은 권고일 뿐 병합을 막지 않는다. 같은 날 협업자 몇 명을 저장소에 초대했다.
설정을 화면에서 빼다
같은 날 연결 방식도 바꿨다. 그때까지는 saya가 카카오톡 도구와 각 메신저 어댑터의 주소와 토큰을 전부 알고 있어야 했다. 메신저가 다섯이 되자 설정이 화면 쪽에 쌓였다.
방향을 뒤집었다. saya는 등록용 토큰 하나만 갖고, 카카오톡 도구와 어댑터들이 스스로 찾아와 등록한다. 30초마다 다시 알리고, 90초 동안 소식이 없으면 목록에서 조용히 빠진다. 3편의 '안 되는 건 조용히 숨긴다'와 같은 원칙이다. 등록할 수 있는 주소는 내 컴퓨터 안이나 내 사설망 안으로만 제한했다. 등록 토큰이 새더라도 엉뚱한 서버를 가리킬 수 없게 하려는 것이다.
시험해 보니 맥에서 kamado를 켜자 saya의 카카오톡이 맥으로 넘어갔고, 끄자 다시 윈도우로 돌아왔다. 화면은 그 사이에 아무것도 몰랐다.
초대장으로 건네기
10월 7일, heimdal을 만들었다. 이 도구들을 한 번에 설치해 주는 설치기다. 처음 설계는 꽤 무거웠다. 프로그램을 플랫폼별 실행 파일로 묶어 올려 두고, 초대 코드가 있는 사람만 내려받게 했다. 누구에게 어떤 코드를 줬는지는 장부에 남겼다. 설치 스크립트는 파일을 받아 검증하고, 설정 파일을 만들고, 컴퓨터가 켜질 때 저절로 실행되게 등록했다.
남의 컴퓨터는 역시 달랐다. 깨끗한 윈도우 PC에 설치해 보니 자동 실행 등록이 실패했다. 원격으로 접속한 상태에서 사용자 이름을 잘못 읽어, 존재하지 않는 계정으로 작업을 등록하려 한 것이다. 실제 계정을 읽도록 고치고, 등록에 실패하면 그 자리에서 멈추게 했다. 그 뒤 나흘 사이에 열네 명에게 초대 코드를 보냈다.
엿새 만에 걷어낸 문
10월 13일, 그 초대 시스템을 전부 지웠다. 초대 코드도, 장부도, 실행 파일 저장소도. 저장소에 쌓여 있던 실행 파일 묶음만 19개, 530MB쯤 됐다. 새 버전을 낼 때마다 플랫폼별로 다시 묶어 올려야 했던 것들이다.
대신 저장소 넷을 모두 공개했다. 먼저 열어 둔 saya와 tsuba에 이어, 이날 nichirin과 chatplus-core를 열었다. heimdal은 이제 설치 안내문 한 장이다. 에이전트에게 그 안내문을 읽고 설치해 달라고 하면, 공개 저장소 넷을 받아 설치하고 서로 등록하게 한다.
공개하기 전에 두 저장소의 커밋 기록 전체를 훑어 토큰과 개인 정보가 남아 있지 않은지 확인했다. 그리고 README 맨 위에 경고를 달았다. 카카오나 SK텔레콤과 관계없는 도구라는 것, 약관상 계정이 제한될 수 있다는 것, 무엇을 읽고 보낼지의 책임은 쓰는 사람에게 있다는 것. 1편에서 기능 대신 대가를 먼저 적었던 그 자리다.

건넨 것이 돌아오다
건네고 나니 받는 것도 생겼다. CMORE 님은 saya에 테마를 넣어 주셨다. 대화방 벽지와 목록 무늬, 마스코트, 로딩 그림까지 담긴 테마를 별도 저장소에서 받아 오게 만들어서, 새 테마가 나와도 saya를 다시 낼 필요가 없다. 디스코드 서버 방을 디스코드처럼 보이게 바꾼 것도 그분이다. 맥 쪽 도구에는 한 달이 안 되어 외부 PR이 40개 넘게 들어왔다.
혼자 쓰려던 도구가 남의 손을 타기 시작하면, 내가 정한 원칙이 문서에 적혀 있지 않으면 지켜지지 않는다는 걸 알게 됐다. 저장소마다 일하는 원칙을 적은 문서를 두고, 바뀔 때마다 고쳤다.
아직 못 푼 것
카카오톡 PC 버전은 한 번에 한 곳에서만 로그인된다. 등록 방식 덕분에 윈도우와 맥 사이를 옮겨 다니기는 쉬워졌지만, 둘을 동시에 붙이지는 못한다. 그리고 이 도구들이 남의 컴퓨터에서 얼마나 잘 도는지는 아직 잘 모른다. 직접 확인한 건 내 PC와 맥, 그리고 시험용 컴퓨터 몇 대뿐이다.
연재를 마치며
9월 14일, "읽기 전용"이라는 문장으로 시작한 도구가 한 달 만에 저장소 넷이 되었다. 돌아보면 코드보다 문장을 고친 기억이 더 많다. "보냈습니다"를 언제 말해도 되는지, "안 된다"를 어떤 조건에서 적었는지, 없는 것을 어떻게 조용히 숨길지. 남에게 건네는 일도 결국 그 문장들을 README 맨 위로 옮기는 일이었다.
메신저를 한 화면에
- 카톡을 터미널에서 읽던 작은 도구
- saya, 아무것도 모르는 화면
- tsuba, 하루 만에 메신저가 넷
- 채팅+, 안 된다고 적었다가 지운 결론
- nichirin과 heimdal, 남에게 건네기 (이 글)
'Develop' 카테고리의 다른 글
| [메신저를 한 화면에 ④] 채팅+, 안 된다고 적었다가 지운 결론 (0) | 2026.10.13 |
|---|---|
| [메신저를 한 화면에 ③] tsuba, 하루 만에 메신저가 넷 (0) | 2026.10.12 |
| [메신저를 한 화면에 ②] saya, 아무것도 모르는 화면 (0) | 2026.10.09 |
| [메신저를 한 화면에 ①] 카톡을 터미널에서 읽던 작은 도구 (0) | 2026.10.07 |
| 삼성 갤러리의 OneDrive 동기화가 끝난다길래, 갤러리 앱을 직접 만들었다 - Miettes 개발기 (0) | 2026.09.30 |