현재 나는 두 가지의 서비스(보컬라디오, 마훅)를 운영하고 있다.
오늘은 그중에서 마훅의 개발 스토리를 써보자 한다.
1. 마훅의 시작
나는 2020년도부터 마후마후를 알게 되어 덕질을 시작했다. 그러면서 자연스레 마후마후의 트위터를 보기 시작했다.
하지만 당시에는 트위터를 활발하게 하지 않았기에 마후가 올리는 트윗을 몇일 ~ 몇 주 뒤 뒤늦게 확인하는 경우가 잦았고, 당시 나는 그게 마음에 들지 않았다. 그리고 개인적으로 트위터 내장 구글 번역기 퀄리티도 별로 신뢰하지 않았기에 "마후마후 트윗을 디스코드랑 카톡으로 보내는 봇을 만들어보자!"로 mafuTranslate 프로젝트를 시작하였다.
당시에는 트위터의 v1 API가 무료로 풀려있어서 v1 API과 Python을 통해 5분 간격으로 트윗을 감지해 번역 후 전송하는 코드를 완성하였다.
디스코드 웹훅 전송까지 구현하고 난 뒤 당시 카카오톡 봇 제작자들 사이에서 유행처럼 번지던 '카링'(구 카카오링크, 현 카카오쉐어)을 통한 전송을 구현하려고 했는데, 개발 당시 카카오에서 카카오링크 관련 인증 로직을 변경한 지 얼마 지나지 않았던 때라 Python에서 작동하던 카카오링크 모듈이 존재하지 않았다.
이에 Python으로 작성된 카카오링크 모듈 수정을 시도하였다가 결국 실패하였다. 그래서 카카오톡 봇용 카카오링크 모듈이 RhinoJS로 작성되어 있다는점에 착안, 같은 JS인 NodeJS를 사용하여 카카오링크까지 전송되도록 다시 제작하였다.
그렇게 2년동안 큰 문제없이 즐겁게 마후마후 트윗을 한글로 즐기고 있었다.
2. 갑작스런 이별
즐겁게 마후 트윗을 한국어로 즐기던 중 갑자기 트위터에서 메일이 하나 날라온다.
갑자기 트위터가 v1 API를 지원종료한다고 메일을 보내왔다.
당시 나는 '뭐 v2에도 프리티어 있을 텐데 그냥 v2 마이그레이션만 딸깍하면 되겠지~'하고 가벼운 마음으로 v2 마이그레이션 작업을 시작했다.
그런데 뭔가 이상하다. 분명 공식 문서대로 작성하는데 계속 트윗이 불러와지질 않는다.
인터넷을 검색해 본다. 일론머스크가 트위터 API를 유로화 했단다. v2 API 프리티어론 자기가 올린 트윗 조회밖에 안 된단다. 이런 젠장.
그렇게 2023년 10월. mafuTranslate 프로젝트는 관짝에 들어가게 된다.
3. 부활
그렇게 mafuTranslate 프로젝트가 관짝에 들어간 지 3달 뒤인 2024년 1월 새해, 갑자기 뭔 바람이 들었는지 mafuTranslate 프로젝트를 다시 살려보고 싶다는 욕구가 셈 솟았다. 하지만 당연하게도 3달 동안 트위터 API는 변한 게 없었고, 원래 목적대로 사용하려면 돈을 내야 했다.
하지만 학생이 대충 깔짝이는 프로젝트에 거금을 들이기란 있을 수 없는 일이다. 그래서 대안책으로 embed 사이트에서 텍스트를 뽑아와 우회하는 방법을 생각하여 구조를 뜯어보던 중 수상한 걸 발견했다.
"__NEXT_DATA__"라는 아주아주 수상해 보이는 json..
펼쳐서 이곳저곳 뒤져보니
!!!
트윗 타임라인 데이터가 쓰기 편하게 json으로 있는것 아닌가!!
신나게 대응 코드를 작성하고 테스트해보았다.
근데 어라? 이상하다. 마지막 트윗이 당시 홍백가합전 트윗으로 표시되었다.
분명 브라우저로 볼 때는 최근 트윗이 제대로 보였는데?
좀 더 확인해 보니 쿠키를 안 주면 최신 타임라인을 주지 않는다는 것을 알았다.
로그인 쿠키도 같이 보내도록 수정하고, 개발 당시 파파고 API도 같이 유로화가 돼서 Kakao i 번역기도 같이 뜯어서 이식하였다.
그렇게 mafuTranslate 프로젝트는 중단 3개월 만에 다시 재가동을 선언하였다.
4. 욕심
그렇게 혼자 만족하면서 5분 간격 사이에 트윗이 여러 개 올라왔을 때 대응, Kakao i 번역이 마음에 안 들어서 DeepL 번역기로 작동하게 수정 등 여러 가지 수정을 거치면서 문뜩 한 생각이 들었다.
"이거 나만 쓰기엔 좀 아까운 듯? 분명 수요 있긴 할거 같은데?"
이 생각을 시작으로 '유사 왁스코드(우왁굳과 관련인들의 범용 알림 웹훅)를 만들어보자'라는 생각으로 mafuTranslate 프로젝트를 기반으로 위에다가 웹페이지를 얹는 방식으로 빠르게 제작하였다.
이름은 단순하게 '마후마후' + '웹훅'을 합쳐 마훅이라고 지었다.
그리고 홍보를 해야 하는데.. 홍보할 길이 없었다. 내가 트친이 많은 것도 아니고 내 주변인중에 마후 팬이 있는 것도 아닌데 이걸 어떻게 퍼트리지?
그렇게 고심하다 생각난 곳이 '디시인사이드'다. 전에도 마후마후 마이너 갤러리의 존재를 알았기에 이곳에 올리면 그나마 사람들이 와서 써주지 않을까라는 생각에 일단 무작정 올렸다
결과는 꽤 괜찮았다. 개념글도 가고 사용자도 한 3명 생겼었던 거 같다.
그렇게 업데이트도 꾸준히 하고 업데이트하다가 찐빠도 내면서 어찌어찌하다 보니
이용자도 11명으로 나쁘지 않게 생겼고 (2개는 내 디코 서버에 등록해 두었다)
갤러리 공지랑 관련 링크 글에 내 서비스가 박제되는 엄청난 성과도 이루었다.
5. 마치며
솔직히 처음 트윗 번역 웹훅을 제작할 때까지만 해도 그냥 혼자 깔짝이는선에서 끝날 줄 았았다.
근데 점점 욕심이 생기니 많지는 않지만 그래도 쓰는 사람이 있는 서비스가 되었다는 게 나름 뿌듯하다.
이렇게 보면 사람 일 어떻게 될지 진짜 모르는 게 맞는 거 같다.
'코딩 스래기' 카테고리의 다른 글
[Web] NodeJS로 웹 푸시알림 구현하기 (0) | 2024.04.03 |
---|---|
[Android] Intent로 웹페이지를 열면 웹뷰 충돌이 발생할때 (0) | 2024.04.03 |
[Web] form 태그에서 js 추가 안하고 원하는 페이지로 리다이렉트하기 (0) | 2021.04.01 |
[Python] win32api 모듈을 사용한 코드를 exe로 변환시 'win32api : 지정된 모듈을 찾을수 없습니다.' (0) | 2020.03.09 |