매일 140개 게시판을 돌던 오타쿠, 결국 크롬 확장프로그램을 만들다

핵심 요약
좋아하는 아티스트와 게임 소식을 놓치지 않으려고 매일 140여 개의 웹사이트를 직접 순회하던 한 개발자가, 이 '노동이 되어버린 취미'를 해결하기 위해 웹사이트 변경사항을 자동으로 추적해주는 크롬 확장프로그램을 직접 만들어 공개했습니다. RSS를 지원하지 않는 게시판이나 독립 사이트도 추적할 수 있다는 점이 핵심입니다.
어떤 문제를 해결하려 했나요?
요즘은 디스코드 피드 봇 덕분에 다양한 소식을 한 채널에서 모아볼 수 있습니다. 하지만 여전히 사각지대가 존재하죠.
- RSS를 지원하지 않는 개인 창작 웹게시판
- 각종 독립 게시판 사이트
- 아카이브형 커뮤니티나 팬 동영상 사이트
이런 곳들은 자동화할 방법이 마땅치 않아, 개발자는 지금까지 북마크에 등록해두고 매일 일일이 방문해 새 글을 확인해야 했습니다. 그런 사이트가 약 140개에 달하다 보니 하루 30분 이상을 순회에만 쓰게 되었고, "애니 한 편을 더 볼 수 있는 소중한 시간"이 매일 사라지고 있었던 거죠.
아이디어의 출발점: 광고 차단 프로그램
흥미로운 점은 해결의 실마리를 광고 차단 프로그램에서 얻었다는 것입니다. 광고 차단기에는 특정 요소를 DOM 구조로 지정해 차단하는 기능이 있는데, 이를 역으로 활용하면 '게시글이 올라오는 영역'을 DOM 선택자로 지정해 변경 여부를 감지할 수 있겠다고 생각한 것이죠.
만들면서 부딪힌 기술적 난관들
물론 구현이 순탄치는 않았습니다. 개발 과정에서 겪은 문제들은 웹 스크래핑이나 DOM을 다뤄본 분이라면 공감할 만한 내용입니다.
- 글 영역 판별의 어려움: 페이지에서 어디부터 어디까지가 '게시글'인지 자동으로 파악해야 했습니다.
- 깨지기 쉬운 DOM 선택자: 선택자가 너무 길고 정교해지면, 새 글이 하나만 올라와도 DOM 구조가 달라져 추적이 실패했습니다. 긴 선택자 중 의미 있는 부분과 없는 부분을 구별하는 로직이 필요했죠.
- Shadow DOM과 CSS 클래스명 오인식: 이외에도 Shadow DOM 처리, 스타일 이름을 잘못 인식하는 문제 등 수많은 엣지 케이스를 며칠에 걸쳐 잡아냈다고 합니다.
누구에게 유용할까요?
개발자 본인은 '오타쿠의 필요'로 만들었지만, 사실 활용처는 훨씬 넓습니다.
- RSS 없는 사이트의 새 글 알림을 받고 싶은 분
- 경쟁사 공지사항, 채용 공고, 재입고 소식 등을 모니터링해야 하는 분
- 수십~수백 개 사이트를 주기적으로 확인하는 리서처
현재 크롬 웹 스토어에 배포 심사를 신청한 상태이며, 승인 전에는 개발자 모드로 설치해 사용할 수 있습니다. 소스는 GitHub(tchinso)에 공개되어 있으니 관심 있다면 Star와 피드백으로 응원해 보세요.
마치며
'귀찮음은 개발자의 원동력'이라는 말을 다시 한번 증명하는 사례입니다. 반복 작업에 하루 30분을 쓰고 있다면, 그 시간을 자동화 도구 제작에 투자하는 것이 장기적으로 훨씬 남는 장사일 수 있습니다.