[메신저를 한 화면에 ④] 채팅+, 안 된다고 적었다가 지운 결론

2026. 10. 13. 15:14·Develop

카카오톡, 텔레그램, 슬랙, 디스코드, 채팅+ 대화를 브라우저 한 화면에서 보는 도구를 만든 기록, 네 번째다. 3편이 다른 메신저들을 한 줄로 세운 이야기였다면, 이번에는 마지막으로 붙은 채팅+ 이야기다. 통신사 문자를 PC에서 주고받는 앱이다. 10월 3일 밤에 "보내기는 안 된다"고 적었고, 다음 날 저녁 그 결론을 지웠다.

읽기는 반나절

10월 3일 오후, 채팅+ 어댑터 저장소를 새로 팠다. 채팅+ PC 앱도 카카오톡처럼 받은 대화를 내 컴퓨터에 암호화해서 저장해 둔다. 그 저장소를 여는 열쇠도 같은 컴퓨터 안에 있었다. 첫 커밋부터 방 목록과 메시지를 읽었다.

처음에는 이 어댑터만의 API를 따로 만들었다. 두 시간 남짓 뒤에 버렸다. 3편에서 만든 tsuba 규격이 이미 있었기 때문이다. 같은 규격으로 답하게 바꾸자 화면(saya)은 설정만으로 채팅+를 그렸다. 그날 오후 5시쯤 saya에 채팅+ 방 목록이 떴다.

네 번 실패하고 적은 문장

문제는 보내기였다. 채팅+ PC 앱은 Flutter로 만들어져 있다. 창 안에 버튼이나 입력칸 같은 부품이 따로 없고, 그림 한 장처럼 통째로 그려진다. 카카오톡 도구가 쓰던, 입력칸을 찾아 글자를 넣는 방식이 통하지 않았다.

그날 저녁 방법 네 가지를 실제로 시험했다. 창에 글자를 메시지로 보내기, 접근성 기능으로 입력칸 값 바꾸기, 창을 강제로 앞으로 가져온 뒤 입력하기, 창을 맨 앞으로 올리기. 넷 다 실패했다. 저녁 8시 32분, README에 적었다. 보내기는 선언하지 않는다. 선언하지 않으면 saya에는 채팅+ 입력창이 그려지지 않는다.

20분 뒤에는 판정 문서를 하나 더 썼다. 앱 안으로 코드를 밀어 넣는 방법까지 하나씩 따져 본 문서였고, 결론은 "이 예산으로는 NO-GO"였다. 다만 한 줄을 남겨 두었다. 이건 예산에 대한 판정이지, 기술적으로 불가능하다는 주장이 아니다.

커밋 기록으로 본 이틀. 안 된다고 적은 뒤 사진을 보내기까지 22시간이 걸렸다.

실패를 다시 보니

다음 날 같은 방법을 다시 시험했다. 이번에는 창에 보낸 클릭과 글자가 그대로 들어갔다.

달라진 것은 방법이 아니라 조건이었다. 전날 실패한 측정들은 창이 잠금 화면 뒤에 있거나, 화면 밖으로 나가 있거나, 최소화된 상태에서 한 것이었다. 잠금을 풀고 창을 화면에 정해진 크기로 띄워 두자, 앞으로 끌어오지 않아도 클릭과 글자를 받았다. 실패는 사실이었지만, 그 실패가 무엇에 대한 실패인지는 잘못 적혀 있었다.

그날 저녁 7시, 사진 보내기를 붙였다. 사람이 하듯 한다. 받는 사람 찾기에 번호를 치고, 결과를 고르고, 방 위쪽의 번호를 다시 읽어 맞는 방인지 확인하고, 파일을 고르고, 보내기 버튼이 초록색으로 바뀐 걸 본 다음에 누른다. 화면은 윈도우에 들어 있는 글자 인식으로 읽는다. 생각한 화면이 맞는지 확인하고 나서야 다음 단계로 넘어간다.

README의 그 문장은 지웠다. 판정 문서는 지우지 않았다. 돌아보면 "예산 판정이지 불가능 판정이 아니다"라는 한 줄이 그 문서에서 가장 정확한 문장이었다.

사진만, 그리고 46분 뒤

처음에는 사진만 열기로 했다. 글도 같은 방식으로 보낼 수 있다는 걸 알면서 선언하지 않았다. 46분 뒤 글도 열었다. 동영상과 다른 파일은 지금도 열지 않았다.

방을 고르는 규칙은 좁게 잡았다. 채팅+ 앱은 대화방 제목이나 목록을 접근성 기능에 내보이지 않는다. 방 이름으로 확인할 길이 없으니 번호로 확인한다. 휴대폰 번호가 정확히 하나인 방에만 보낸다. 받는 사람 검색 결과 중 번호가 숫자 하나까지 똑같은 결과가 딱 하나일 때만 연다. 입력칸에 쓰다 만 글이나 사진이 남아 있으면 보내지 않는다. 화면이 잠겨 있어도 보내지 않는다. 결과를 확인하지 못한 전송은 다시 보내지 않는다. 1편부터 지켜 온 원칙 그대로다.

saya에 붙은 채팅+ 방. 입력창 왼쪽에 사진 버튼이 있다. 이름과 대화는 모두 지어낸 것이다.

남의 앱 화면을 빌린다는 것

창을 대신 누르는 방식에는 손이 많이 갔다. 같은 날 저녁, 방 제목이 'tel:+82…' 같은 주소로만 보이던 것을 연락처 이름으로 바꿨다. 다음 날 아침에는 앱이 스스로 잠그는 잠금 모드를 만났다. 미리 적어 둔 잠금 비밀번호로 그 화면을 풀고 나서 보내게 했다. 화면 배율이 100%가 아니면 창 크기가 몇 픽셀씩 어긋나는 것, 오래 두면 앱이 로그아웃해 버리는 것도 차례로 고쳤다.

10월 6일에는 맥에서도 같은 일을 했다. 맥의 채팅+는 열쇠를 키체인이 아니라 앱 설정 파일에 두고 있었고, 버튼과 입력칸이 접근성 기능에 드러나 있었다. 윈도우에서는 화면을 글자 인식으로 읽어야 했는데, 맥에서는 그럴 필요가 없었다. 같은 앱이 플랫폼마다 이렇게 다르다.

아직 못 푼 것

읽지 않은 메시지 수는 아직 늘 0이다. 저장된 데이터의 어느 값과 이어지는지 찾지 못했다. 창을 누르는 좌표는 지금 버전의 화면에서 잰 값이라, 앱이 업데이트되면 언제든 어긋날 수 있다. 맥의 잠금 모드는 실물로 아직 확인하지 못했다.

그리고 이 도구는 SK텔레콤과 아무 관련이 없다. 공식 API가 아니라 내 컴퓨터에 저장된 데이터를 읽고, 내가 로그인해 둔 앱을 대신 누른다. 그러니 무엇을 읽고 보낼지의 책임은 쓰는 사람에게 있다. 10월 13일 저장소를 공개하면서 맨 위에 그렇게 적었다.

다음 편은 마지막이다. 카카오톡 도구 둘을 한 저장소로 합치고, 이 모든 걸 남의 컴퓨터에 설치하게 만든 이야기다.


메신저를 한 화면에

  1. 카톡을 터미널에서 읽던 작은 도구
  2. saya, 아무것도 모르는 화면
  3. tsuba, 하루 만에 메신저가 넷
  4. 채팅+, 안 된다고 적었다가 지운 결론 (이 글)
  5. nichirin과 heimdal, 남에게 건네기
저작자표시 비영리 변경금지 (새창열림)

'Develop' 카테고리의 다른 글

[메신저를 한 화면에 ③] tsuba, 하루 만에 메신저가 넷  (0) 2026.10.12
[메신저를 한 화면에 ②] saya, 아무것도 모르는 화면  (0) 2026.10.09
[메신저를 한 화면에 ①] 카톡을 터미널에서 읽던 작은 도구  (0) 2026.10.07
삼성 갤러리의 OneDrive 동기화가 끝난다길래, 갤러리 앱을 직접 만들었다 - Miettes 개발기  (0) 2026.09.30
카카오톡을 터미널에서 읽는다 — 윈도우 kanao-cli, 맥 kamado-cli  (0) 2026.09.21
'Develop' 카테고리의 다른 글
  • [메신저를 한 화면에 ③] tsuba, 하루 만에 메신저가 넷
  • [메신저를 한 화면에 ②] saya, 아무것도 모르는 화면
  • [메신저를 한 화면에 ①] 카톡을 터미널에서 읽던 작은 도구
  • 삼성 갤러리의 OneDrive 동기화가 끝난다길래, 갤러리 앱을 직접 만들었다 - Miettes 개발기
상구너
상구너
개발, AI, 자동화, 일상 기록을 담는 상구너의 작업노트. 직접 해본 것, 써본 것, 정리한 것을 가볍고 실용적으로 남깁니다
  • 상구너
    상구너의 개발노트
    상구너
  • 전체
    오늘
    어제
    • 분류 전체보기 (67) N
      • Day by day (4)
        • Diary (1)
        • TV (0)
      • Challenge (6)
      • Study (32)
        • AI (10)
        • NodeJS (0)
        • JavaScript (3)
        • Markup (1)
        • Linux (6)
        • Java (1)
        • BCI&BCEL&ASM (8)
        • WAS (1)
        • DB (1)
      • Develop (18) N
        • inKrKamus (3)
        • SmartDropPoint (2)
        • rhwptopdf (1)
      • Faith (0)
  • 블로그 메뉴

    • 홈
    • GITHUB
    • LinkedIn
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    openclaw
    Hermes
    Ai
    tts
    나노바나나
    html5
    사이드프로젝트
    AI에이전트
    saya
    회고
  • 최근 댓글

  • 최근 글

상구너
[메신저를 한 화면에 ④] 채팅+, 안 된다고 적었다가 지운 결론
상단으로

티스토리툴바