개발
코드 / 아키텍처 / 디버깅
-
성경 앱에 음성읽기 전면 무료 개방하고 광고 추적 게이팅 도입
매일 사용하는 성경 읽기 앱에서 텍스트-투-스피치 기능을 한국어 전체에 무료로 개방하고, 동시에 Apple의 개인정보보호 정책(ATT)에 따라 광고 추적을 제어하는 게이팅 로직을 추가했다. 한 번의 커밋으로 세 가지 레이어(프론트, UI, 백엔드)가 함께 움직여야 하는 변경이었는데, 이 과정에서 성장과 규정 준수 사이의 균형을 맞추는 경험을 했다.
읽기 → -
AI 슬롭 탈피를 위한 에디토리얼 기준 도입기
이번 작업은 ax-acryl의 v3에서 명확한 에디토리얼 방향을 정의하고 HTML에 반영한 것이다. "AI슬롭 탈피"라는 파트닉에는 우리가 마주하고 있던 꽤 현실적인 문제가 숨어 있다.
읽기 → -
ax-acryl 인터페이스를 실제 비즈니스 흐름에 맞춰 재설계
ax-acryl 모듈의 HTML 인터페이스를 실제 운영 환경의 데이터 흐름에 맞춰 재설계했다. 초기 구현은 기본 스펙으로 만들어진 것이었다면, 이번 v2는 Jonathan/NADIA·상장 IR·칩 플로우라는 구체적인 비즈니스 요구사항을 반영하면서 발생한 여러 갭을 메꾸는 작업이었다.
읽기 → -
외주 프로젝트 관리 체계를 전용 레포로 정립한 과정
외주 검토 시스템을 위한 별도 레포를 만들고, 첫 프로젝트인 브랜드 홈페이지 컨셉을 이곳에 추가했다. 사실 이건 단순한 폴더 생성이 아니라 팀의 외주 프로젝트 관리 방식을 정립하는 작업이었다.
읽기 → -
결제 PG 목(MOCK) 제거와 실응답 파싱 구조 정비
결제 PG 플랫폼(Zlgoon) 통합 코드에서 개발 단계의 MOCK 모드를 완전히 제거하고, 실제 응답 형식에 맞춰 파싱 로직을 정비한 작업이다. 백엔드와 프론트엔드 양쪽을 함께 손봤는데, 여기엔 단순 정리가 아닌 여러 의사결정과 팀 조율이 담겨 있다.
읽기 → -
실시간 주식 시세를 엑셀 인터페이스로 조회하는 도구 제작기
실시간 주식 시세 정보를 엑셀 같은 인터페이스로 조회할 수 있는 도구를 만들었다. 백엔드 API와 프론트엔드 페이지를 깔끔하게 분리해서 구성했는데, 이 과정에서 몇 가지 중요한 설계 결정들이 있었다.
읽기 → -
모니터링 알림 피로를 30분 윈도우 상태 전환 가드로 해결
인증 체크 스크립트의 알림 폭탄 문제를 30분 윈도우 기반 상태 전환 가드로 해결했다. 단순해 보이지만 모니터링 시스템 신뢰도에 영향 주는 작은 하지만 중요한 변경이다.
읽기 → -
인증 헬스체크의 캐시 의존을 실시간 핑으로 교체해 감지 사각지대 제거
인증 상태를 캐시에 의존해 판정하던 스크립트를 실제 1회 핑 방식으로 바꿨다. 거짓 정상 상태가 감지되지 않던 사각지대를 제거한 작업이다.
읽기 → -
gov 분류기를 정책 기준에 맞게 상위 모델로 교체한 이유
classification 모델을 Haiku에서 Sonnet으로 변경했다. 간단해 보이는 한 줄 변경이지만, 뒤에 정책 준수와 실제 운영 사이의 갈등이 있었다.
읽기 → -
리뷰 루프 함수에 모델 선택 인자를 추가해 유연성 확보
리뷰 루프의 rewrite_post 함수에 model 인자를 추가했다. 기본값은 여전히 Sonnet으로 유지했는데, 이 작은 변경이 생각보다 고민이 많이 들어간 결정이었다.
읽기 → -
LLM 판단 모듈별 모델 티어 차등 상향으로 수익성 개선
LLM을 사용한 판단(judgment) 로직에서 모델 티어를 상향했다. 기존의 더 가벼운 모델에서 Opus(가장 강력한 모델)와 Sonnet(중급 모델)으로 올렸고, 모듈별로 필요한 수준에 따라 차등 적용했다.
읽기 → -
insights를 blog로 통합할 때 URL과 데이터를 모두 지키는 법
기존 insights 서비스를 blog로 통합하면서 URL 무결성을 지키고 사용자 영향을 최소화하기 위해 nginx 리다이렉트와 자동화된 마이그레이션 스크립트를 함께 구축했다.
읽기 → -
iOS 광고 추적 권한 리젝 대응과 기능 결함 일괄 수정
한 번 App Store 심사에 걸리면 진짜 힘들다. 이번 커밋은 그 고민을 모두 담은 작업이었다. iOS의 ATT(Apple Tracking Transparency) 리젝에 맞춰 권한 선언을 정리하고, 동시에 발견된 여러 기능 결함까지 묶어서 수정했다.
읽기 → -
SMS 포워딩 발신번호를 여러 개 등록할 수 있게 개선한 과정
SMS 포워딩 기능을 다루다 보면 "특정 발신번호에서 온 메시지만 전달해야 한다"는 요구사항이 자주 나온다. 초기에는 발신번호 1개만 지원했는데, 실제 사용하는 사람들은 여러 개를 등록해야 하는 상황이 자주 발생했다. 은행 여러 곳, 배송업체 여러 곳, 각각 다른 번호로 오는 중요한 메시지들을 모두 한 번에 필터링하려는 거였다.
읽기 → -
대시보드 일별 정산 데이터를 자정에 최종 확정하도록 개선
어제 데이터를 자정에 확정하는 작업을 했다. 겨우 한 줄처럼 들리는 커밋이지만, 그 안에는 daily 통계 시스템에서 자주 마주치는 시간대 처리의 까다로움이 담겨 있다.
읽기 → -
앱스토어 마이크 권한 누락으로 배포가 막혔던 이야기
App Store 검증 오류(ITMS-90683)가 떴을 때, 배포를 며칠 앞두고 있었다. 마이크 권한 설명이 빠져 있다는 오류였는데, 단순히 Info.plist에 한 줄 추가하는 것만은 아니었다.
읽기 → -
배포 스크립트 경로를 모노레포 표준에 맞게 바로잡다
publish.sh의 환경 변수 경로가 개발 환경(BOT_DIR/venv) 중심으로 박혀있었고, 실제 프로덕션 배포 환경의 표준 경로(/opt/bots 모노레포)와 맞지 않던 부분을 교정했다. 작아 보이지만 배포 파이프라인 일관성과 팀 온보딩에 생각보다 큰 영향을 주는 작업이었다.
읽기 → -
브레인스토밍 시스템에 SEO 실행 타입을 추가한 이유
brainstorm.py에 SEO 실행 유형을 추가했다. 이게 뭐 별 것 아닌 거 아닐까 싶을 수 있는데, 의외로 여기에 팀 리딩 관점에서 고민할 게 많다.
읽기 → -
브레인스토밍 AI 환각 제거로 데이터 기반 신뢰성 확보
브레인스토밍 기능에서 AI가 생성한 콘텐츠를 실제 데이터 소스에 기반하도록 수정했다. 단순해 보이지만 생성 AI를 활용하는 모든 시스템에서 겪을 수 있는 전형적인 문제 — 그리고 늘 뒷전으로 밀리는 작업이었다.
읽기 → -
크롤링 데이터에 AI 콘텐츠 자동 생성 차단 로직 추가
brainstorm 실행 스크립트에서 크롤 기반 사이트로부터 수집한 데이터에 대해 자동으로 AI 콘텐츠를 생성하지 않도록 막는 로직을 추가했다. 얘기는 간단하지만, 뒤에는 여러 문제 정황이 있었다.
읽기 →