개발
코드 / 아키텍처 / 디버깅
-
코인 결제·스타일 고정·셀카를 한 번에 배포한 이유
코인 결제 시스템, 스타일 고정, 환영 셀카, 신규 캐릭터 씬까지—한 커밋에 네 가지 기능이 한꺼번에 들어갔다. 보통은 각 기능별로 브랜치를 나누고 차례대로 배포하지만, 이번엔 특수한 상황이 있었다.
읽기 → -
게임 캐릭터 아키타입 3종 추가와 선물 시스템 연계 설계
새 아키타입 3종과 각각 2D/실사 스타일을 동시 지원하면서 선물 시스템까지 함께 엮는 작업을 진행했다. 단순해 보이는 에셋 추가지만, 그 뒤에는 게임의 진입 경험과 유저 engagement를 어떻게 설계할지에 대한 여러 의사결정이 있었다.
읽기 → -
셀카 검증 LLM 중복 호출 제거로 응답 속도 233배 개선
셀카 처리 요청이 33~68초에서 0.14초로 떨어졌다. 대략 233배 빨라진 거다. 이건 단순히 "응 좋아" 정도로 넘어가기엔 너무 극적인 개선이라 기록해 둘 가치가 있다.
읽기 → -
채팅 코어와 캐릭터 이미지를 함께 프로젝트에 추가한 경험
채팅 코어를 추가하면서 동시에 캐릭터 셀카 이미지를 프로젝트에 정식 자산으로 등재했다. 한 커밋에 기능(코드)과 미디어(자산)를 함께 담으면서, 프로젝트 구조를 한 단계 더 정리한 경험을 정리해본다.
읽기 → -
Bing 웹마스터 API로 크롤링 수집 자동화 구축
구글 검색 콘솔처럼 Bing도 자동화 없이는 운영이 힘들다. 사이트맵을 수동으로 제출하고, 크롤 상태를 매일 확인하는 건 반복적이고 오류가 나기 쉽다. 이번에 Bing Webmaster API를 통합해서 우리 콘텐츠 수집 체인을 한 단계 격상시켰다.
읽기 → -
블로그 피드 추가 후 사이트맵으로 크롤링 신호 최적화
블로그 피드를 포트폴리오에 새로 추가했다. 콘텐츠가 늘어났으니 검색 엔진도 이를 빨리 발견하고 색인해야 한다. 그래서 sitemap.xml을 갱신했는데, 단순한 파일 추가가 아니라 좀 더 의도적인 메타데이터 신호를 함께 설정했다.
읽기 → -
영문 포트폴리오에 블로그 피드 추가하며 배운 다국어 지원의 함정
포트폴리오 사이트 영문 버전(/en/)에 블로그 최신글 피드 섹션을 추가했다. 단순해 보이지만, 다국어 지원하는 사이트에서 기능을 추가할 때의 전형적인 실수를 피하는 과정이었다.
읽기 → -
포트폴리오 메인에 블로그 피드를 빌드 타임으로 연동한 방법
포트폴리오 사이트의 메인 페이지가 정적이라는 건 항상 신경 쓰였다. 블로그에선 꾸준히 기술 글을 올리고 있는데, 포트폴리오 방문자가 그 글들을 발견하려면 따로 블로그 섹션으로 들어가야 했다. 이번에 메인 페이지에 최신 블로그글 피드 섹션을 추가하기로 결정했다. 단순한 UI 개선처럼 보이지만, 포트폴리오-블로그 연동 구조를 어떻게 설계하느냐는 기술적 판단이
읽기 → -
자동화 판정에 교차검증 게이트를 더해 오류 비용 줄이기
claude 판정에 codex 런타임을 활용한 교차검증 게이트를 추가했다. codex_review.py를 중심으로 검증 로직을 정리하고, bot-action-worker, traffic-watcher, seo-monitor 같은 여러 자동화 시스템에 걸쳐 일관되게 적용한 작업이다.
읽기 → -
발행 진행 화면의 저조 상태 오독을 색상·경고·0건 표시로 개선
발행 진행 상황을 표시하는 스크립트에서 사용자가 상태를 오독할 여지가 있다는 걸 발견했다. 특히 저조한 상태일 때 시각적 신호가 혼란스러웠다. 이번에 상단 경고, 0건 구분, 그리고 상태별 색상 제어를 손봤다.
읽기 → -
GSC API 권한 범위 오류를 트래픽 감시 스크립트에서 수정한 과정
traffic-watcher 스크립트가 Google Search Console(이하 GSC) API와 통신하며 invalid_scope 에러를 던질 때 대응한 작은 수정이다. 권한 범위를 webmasters.readonly에서 webmasters로 확대했다. 단 한 줄 짜리 커밋처럼 보이지만, 그 안에 외부 API 통합 시 놓치기 쉬운 여러 패턴이 숨어 있
읽기 → -
OAuth 장애 후 인증 상태 자동 점검과 사고 기록으로 운영 체계 구축
OAuth 인증 관련 장애를 겪은 후 정기적인 상태 점검 자동화와 사후 분석 기록을 문서에 남겼다.
읽기 → -
iOS 의존성 고정과 Play Console 테스터 배포 자동화로 팀 빌드
이번엔 작은 것 같지만 팀 전체의 안정성을 지탱하는 두 가지 정비 작업을 한번에 처리했다. iOS 의존성 lock 파일 업데이트와 Play Console 테스터 자동 실행 스크립트 추가가 그것이다.
읽기 → -
IAP 로컬 결제 테스트 환경 구축으로 개발 속도 개선
IAP(In-App Purchase) 기능을 개발하고 있었는데, 매번 테스트할 때마다 실제 앱스토어에 연결하거나 사내 스테이징 환경을 거쳐야 하는 불편함이 있었다. 이 흐름을 개선하기 위해 Xcode의 StoreKit Configuration을 프로젝트에 추가했다.
읽기 → -
구절 API에 식별자 추가로 음성 변환 연동 가능해졌다
구절 응답 API에 pickId를 추가했다. 간단해 보이지만, 이 한 줄의 변경이 없으면 앱 서버에서 음성 변환 요청을 제대로 날릴 수 없었다.
읽기 → -
성경 앱에 음성읽기 전면 무료 개방하고 광고 추적 게이팅 도입
매일 사용하는 성경 읽기 앱에서 텍스트-투-스피치 기능을 한국어 전체에 무료로 개방하고, 동시에 Apple의 개인정보보호 정책(ATT)에 따라 광고 추적을 제어하는 게이팅 로직을 추가했다. 한 번의 커밋으로 세 가지 레이어(프론트, UI, 백엔드)가 함께 움직여야 하는 변경이었는데, 이 과정에서 성장과 규정 준수 사이의 균형을 맞추는 경험을 했다.
읽기 → -
AI 슬롭 탈피를 위한 에디토리얼 기준 도입기
이번 작업은 ax-acryl의 v3에서 명확한 에디토리얼 방향을 정의하고 HTML에 반영한 것이다. "AI슬롭 탈피"라는 파트닉에는 우리가 마주하고 있던 꽤 현실적인 문제가 숨어 있다.
읽기 → -
ax-acryl 인터페이스를 실제 비즈니스 흐름에 맞춰 재설계
ax-acryl 모듈의 HTML 인터페이스를 실제 운영 환경의 데이터 흐름에 맞춰 재설계했다. 초기 구현은 기본 스펙으로 만들어진 것이었다면, 이번 v2는 Jonathan/NADIA·상장 IR·칩 플로우라는 구체적인 비즈니스 요구사항을 반영하면서 발생한 여러 갭을 메꾸는 작업이었다.
읽기 → -
외주 프로젝트 관리 체계를 전용 레포로 정립한 과정
외주 검토 시스템을 위한 별도 레포를 만들고, 첫 프로젝트인 브랜드 홈페이지 컨셉을 이곳에 추가했다. 사실 이건 단순한 폴더 생성이 아니라 팀의 외주 프로젝트 관리 방식을 정립하는 작업이었다.
읽기 → -
결제 PG 목(MOCK) 제거와 실응답 파싱 구조 정비
결제 PG 플랫폼(Zlgoon) 통합 코드에서 개발 단계의 MOCK 모드를 완전히 제거하고, 실제 응답 형식에 맞춰 파싱 로직을 정비한 작업이다. 백엔드와 프론트엔드 양쪽을 함께 손봤는데, 여기엔 단순 정리가 아닌 여러 의사결정과 팀 조율이 담겨 있다.
읽기 →