2019-2025 잃어버린 시간들
2019-2025 잃어버린 시간들
2018년 회고를 마지막으로 7년이 지났다.
“블로그 역시, 뭔가 특정 주제에 대해
잘 적어야 한다는 부담감을 스스로 앉고 있어서 인지, 기껏 Github으로 옮겨놓았는데도 잘 안쓰게 되었다.”
2018년 회고에 적었던 그대로였다. 그리고 7년이 지났다.
GitHub 로그를 뒤져보니 그래도 뭔가 했던 흔적이 있어서, 밀린 숙제하듯 정리해본다.
숫자로 보는 7년
| 연도 | 커밋 | PR | 비고 |
|---|---|---|---|
| 2019 | 22 | 3 | Vue.js, AdFit |
| 2020 | 13 | 0 | React 전환 |
| 2021 | 14 | 0 | 자동화 |
| 2022 | 6 | 0 | 유지보수 |
| 2023 | 9 | 0 | 가시성 감지 |
| 2024 | 4 | 0 | 거의 정지 |
| 2025 | 78 | 3 | 유틸리티 |
2019년을 정점으로 점진적 감소, 2024년 거의 정지, 2025년 폭발.
2019
vue-adfit-component를 만들었다. Vue.js에서 카카오 AdFit 광고를 손쉽게 붙일 수 있는 컴포넌트다.
find-referrer도 만들었다. 현재 페이지의 referrer 문자열을 반환하는 라이브러리인데, 지금 보니까 왜 만들었는지 기억이 안 난다.
Homebrew/homebrew-cask에 PR도 날렸다. 오픈소스 기여랍시고.
그리고 얼굴 블러 처리하는 macOS 앱도 만들었다. 사진에서 얼굴 자동으로 찾아서 블러 처리하는 유틸리티.
2020
Vue에서 React로 넘어갔다.
react-adfit-web-component를 만들었다. vue-adfit-component의 React 버전.
cheomdan-ro라는 프로젝트도 있었다. Raspberry Pi와 카메라 모듈을 사용한 간단한 CCTV 프로젝트였다. 5분마다 사진을 찍어서 저장하는 용도.
그리고 생활 밀착형 크롤링 프로젝트들을 만들었다. 항공권이나 예약 관련 자동 새로고침 도구들.
2021
nightmare-webrequest-addon을 만들었다. Electron의 session.webRequest API를 Nightmare.js에서 사용할 수 있게 래핑한 것이다. 요청 가로채기, 헤더 수정, 리다이렉트 처리 등을 할 수 있다.
KakaoAd/kakao-pixel에도 기여했다. 회사 일.
암호화폐 자동매매 봇도 만들어봤다. 당시 코인 열풍에 편승해서 만들었던 것 같은데, 결과는 묻어두자.
2022
“유지보수만 했던 해”
adfit-web-sdk 유지보수. kakao-pixel, kakao-ad-android 유지보수. 회사 일.
새로 만든 건 없다. 커밋 수가 급격히 줄었다. 6개.
2023
element-visible을 만들었다. DOM 요소가 화면에 보이는지 감지하는 라이브러리다. threshold를 지정하면 요소의 특정 비율 이상이 보일 때만 true를 반환한다. IE 6부터 지원한다.
그림 관련 스케치 프로젝트도 조금 건드렸다.
2024
거의 정지.
개인 프로젝트 커밋 1개. 회사에서 luckydraw 작업 조금.
암호화폐 트레이딩 봇을 다시 손봤다. 2021년에 만들었던 걸 개선하려고 했는데, 역시 결과는 묻어두자.
“이 시기에 뭘 했던 거지?”
기억이 안 난다. 아마 회사 일에 치여 살았거나, 아니면 그냥 쉬고 있었거나.
2025
갑자기 폭발했다. 78 커밋.
Public
brew-sync (22 커밋): 여러 Mac에서 Homebrew 패키지를 동기화하는 도구.
brew-sync backup과brew-sync restore두 명령어로 Homebrew, Cask, Mac App Store 앱을 동기화한다. iCloud, Dropbox, Git 등 여러 저장소를 지원하고, 프로필별로 다른 설정을 관리할 수 있다.tfpp (12 커밋): FMPP에서 영감을 받은 Thymeleaf 기반 파일 전처리기. Kotlin으로 작성했다. JSON/YAML 데이터 바인딩, 디렉토리 일괄 처리, watch 모드를 지원한다.
raycast-kozip-extension (11 커밋): Raycast용 한국 우편번호 검색 확장. Postcodify API를 사용한다. 도로명/지번 주소 전환, 카카오맵/네이버맵 연동 기능이 있다.
tetris-multiplayer (5 커밋): PeerJS를 사용한 P2P 멀티플레이어 테트리스. Cursor + Claude로 만들었다. 로컬 네트워크 자동 매칭 기능이 있다.
apkpure-go: APKPure에서 APK 파일을 다운로드하는 Go 라이브러리 및 CLI 도구. apkeep의 Go 포팅이다. 버전 목록 조회, 특정 버전 다운로드, CSV 배치 처리, 병렬 다운로드를 지원한다.
rfc8107-js: RFC 8107(Advertising Digital Identifiers) JavaScript 구현체. Ad-ID URN 생성 및 검증 기능을 제공한다. Node.js, Bun, Deno에서 동작하고 TypeScript를 지원한다.
story-generator: Google Trends 데이터를 기반으로 한국적 정서가 담긴 소설을 자동 생성하는 도구. GGUF, OpenAI, Transformer, LMStudio 등 여러 LLM을 지원한다. 8개 챕터로 구성된 소설을 생성한다.
pyubcc: Upbit API에서 캔들 데이터를 수집하는 Python 라이브러리. SQLite3 또는 CSV로 저장한다. 데이터 갭 분석 기능이 있다.
pyubci: UBCI(Upbit Crypto Index) 조회 모듈. 시장/전략/테마/섹터 인덱스를 조회하고 캐싱한다.
lucky-draw-paper: 이메일 목록으로 번호가 부여된 종이 추첨권을 생성하는 도구. A4 용지에 맞춰 HTML로 출력한다.
epub-compare: 두 EPUB 파일의 압축 방식과 구조를 비교하는 CLI 도구. mimetype 파일이 EPUB 스펙대로 첫 번째이고 비압축인지 확인할 수 있다.
Private (유틸리티들)
- 전자책 CLI 도구들: 여러 전자책 플랫폼용 CLI
- 콘텐츠 다운로더들: 웹툰, 게임 등 콘텐츠 백업용
- AI 트레이딩 봇: 2021년, 2024년에 이어 세 번째 시도
회사에서도 adfit-android-sample 작업 조금.
흐름 분석
기술 변화
- Vue.js에서 React로
- JavaScript에서 Go, Python, Kotlin으로 확장
- 웹 컴포넌트에서 CLI 도구, Raycast 확장으로
관심사 변화
- 2019-2023: 광고 SDK, 웹 컴포넌트
- 2025: 개인 유틸리티, CLI 도구, 자동화
일관된 패턴
돌아보니 계속 유틸리티를 만들고 있었다. 필요에 의해 만들고, 쓰고, 잊어버리고.
“필요한 게 있으면 만들어 쓴다”
라는 패턴이 7년간 이어져 온 것 같다.
2024년 침묵 vs 2025년 폭발
2024년은 뭔가 쌓이고 있었던 시기였던 것 같다. 그리고 2025년에 터졌다.
Claude Code 덕분인 것 같기도 하고…
여튼, 7년치 기록을 복원했다. 앞으로는 주간 로그라도 남겨봐야겠다.