-
이미지 배치 자동화로 발행 파이프라인 단순화
캐릭터 섹션의 이미지들을 자동으로 배치하는 기능을 lib_publish.js에 구현했다. 소제목별로 균등하게(약 3개씩) 이미지를 분배하는 로직인데, 이렇게 하니까 발행 시 수동 배치에 들이던 시간이 확 줄었다.
읽기 → -
블로그 발행 파이프라인 저장소 분리
블로그 발행 기능을 기존 메인 저장소에서 분리하여 별도의 사이드 저장소로 옮기는 작업을 마무리했다. 동시에 개발 환경의 초기화 스크립트도 함께 수정해서 새 저장소 구조를 반영하도록 했다.
읽기 → -
발행 전 드라이런으로 형식 오류 선제 차단
포스트 발행 시스템에서 마크다운 스타일링과 메타데이터 처리를 자동화하는 작업이었다. 단순하지만 꽤 중요한 개선인데, 여러 개의 기능 개선을 한 커밋에 묶은 이유부터 풀어보자.
읽기 → -
블로그 포스트 자동 발행 도구 완성
블로그 자동 발행기를 구축했다. 네이버 블로그에 포스트를 올리는 작업을 반복적으로 수행하던 수고를 덜기 위한 도구다. 새로운 기능 몇 개(capture, cat_explore, del, del_explore 등)를 추가하고 설정을 정비했다.
읽기 → -
결제 검증 오류 복구력 개선
Apple IAP(In-App Purchase) 시스템의 영수증 검증 로직을 개선했다. 기존에는 sandbox 환경에서만 폴백을 적용했는데, 이제 프로덕션 환경의 비정상 응답 전반으로 그 범위를 확대한 변경이다.
읽기 → -
clientID 누락으로 Google 로그인 터지던 iOS 크래시 수정
Google Sign-In 로그인 플로우에서 iOS 사용자들이 겪던 크래시를 추적하고 수정했다. 겉으로는 "GIDSignIn signInWithOptions 예외"로 보였지만, 진짜 원인은 Apple 개발자 콘솔에 등록한 clientID를 앱 설정에서 누락한 것이었다.
읽기 → -
Google/Apple 로그인 콜백 크래시 수정
크로스 플랫폼 앱(Flutter iOS)에서 소셜 로그인 콜백을 처리할 때 일어나는 버그를 잡았다. Google 로그인 후 앱이 크래시 나고, Apple 로그인 취소 버튼이 에러를 뱉던 부분인데, iOS 네이티브 레이어에서 단독으로 처리해야 한다는 걸 깨달으면서 처음으로 심각하게 '프레임워크의 이중성'을 느낀 작업이었다.
읽기 → -
로그인 때마다 앱 뻗던 버그, AppDelegate 방식으로 해결
로그인 버튼을 누르는 순간 앱이 크래시하는 이슈를 겪었다. Apple·Google 소셜 로그인 플러그인을 쓸 때마다 일관되게 터졌는데, 원인은 iOS 생명주기 관리 방식의 충돌이었다. 결국 UIScene 기반 설정을 완전히 제거하고 클래식 AppDelegate 방식으로 복귀해서 해결했다.
읽기 → -
로그인 버튼 누르면 앱이 죽던 버그 수정
Firebase나 Google OAuth 같은 써드파티 인증을 모바일 앱에 연동할 때는 늘 신경 쓸 게 많다. 이번엔 일일 성경 앱에서 Google 로그인을 누르는 순간 앱이 죽어버리는 크래시가 발생했고, 동시에 로그인 버튼의 Google 로고도 제대로 표시되지 않던 문제를 함께 수정했다. 작은 문제처럼 보이지만 로그인은 앱의 첫 진입점이고, 이곳이 깨지면
읽기 → -
스토어 리뷰 요청사항 반영한 빌드 업로드
앱 스토어 리뷰팀의 피드백에 따라 iOS 빌드를 재준비했다. Apple 로그인 capability를 추가하고, Google 관련 설정을 plist에 명시해야 했다. 요청사항 반영 후 1.0.0+6 버전으로 다시 배포했다.
읽기 → -
의존성 버전 명시로 팀 빌드 일관성 확보
url_launcher pod 의존성을 Podfile.lock에 반영했다. 사소해 보이는 작업이지만, 팀 프로젝트에서는 꽤 중요한 동기화 작업이다.
읽기 → -
앱스토어 검수 거부에 대응하는 체계화
빌드 5번 거부는 단순한 실패가 아니다. 각 거부마다 다른 이유가 있었고, 팀은 매번 피드백을 해석하고 수정하고 다시 제출했다. 하지만 과정 속에서 "이전에 왜 거부되었는지", "지금 대응이 충분한지"를 명확히 추적하기 어려워졌다. 그래서 Apple의 회신문을 정리하고, 각 거부 사항에 대한 우리의 대응 계획을 체크리스트로 만들기로 했다.
읽기 → -
Apple 심사 다섯 번 거부를 거쳐 배운 것들
일일 성경 앱을 iOS에 출시하기 위해 Apple App Store 심사에 올린 지 몇 주. 빌드 1에서 4까지 줄줄이 리젝을 맞으며, 다섯 번째 제출 때야 비로소 통과 소식을 받았다. 이번 작업은 그 과정에서 불거진 로그인 버그, EULA 미비, 계정삭제 기능 부재, Kakao 로그인 권한 정책 등 여러 이슈를 한 번에 해결하는 수정이었다.
읽기 → -
머천트 계좌 검증 회귀 버그 수정
결제 플랫폼의 WELCOME 시스템에서 머천트 잔액 조회 및 계좌 검증이 일부 코드 경로에서 누락되었던 로직을 보충했다. 주요 변경은 파트너 관리 웹 계층과 공통 유틸리티 계층에 걸쳐 이루어졌다.
읽기 → -
앱 심사 제출 전 체크리스트, 실제 환경 설정과 검증으로 다시 정리
빌드5를 앱 스토어에 제출하기 직전, 실제 환경에서 작동해야 할 광고와 결제 관련 설정들을 최종 점검했다. 이전 빌드들의 심사 과정에서 놓치기 쉬웠던 부분들을 문서로 정리하면서, 앞으로 팀 내에서도 심사 전 체크리스트로 활용할 수 있겠다는 생각이 들었다.
읽기 → -
iOS 앱 광고·결제 프로덕션 ID 본격 적용
처음으로 광고와 인앱 결제 기능을 실제 운영 환경 설정으로 전환했다. 개발 단계에선 테스트 ID를 썼다면, 이제 실제 사용자가 만나볼 애플리케이션으로 준비하는 단계였다.
읽기 → -
판매자 출금이 잘못된 결제사로 전송되던 버그 고침
이번에는 멀티 PG(결제 게이트웨이) 환경에서 출금 처리 시 잘못된 결제사로 라우팅되던 버그를 고쳤다. sysId별로 사용하는 PG가 다른데, 머천트 잔액조회 로직에서 이 분기를 제대로 반영하지 않아서 웰컴(쇼핑몰 플랫폼)의 출금 기능이 재차 깨지는 회귀가 생겼던 것.
읽기 → -
한글 슬러그 301 리디렉션으로 SEO 중복 콘텐츠 문제 해결
초기에 구축한 서비스에서 한글 문자가 포함된 슬러그(URL 경로)를 레거시 형태로 그대로 두고 있었는데, 이게 결국 검색 엔진 입장에서 중복 콘텐츠로 인식되는 문제가 발생해서 301 리디렉션으로 정리하게 됐다. 단순한 URL 정리처럼 보이지만, SEO 관점에서 생각할 점들이 꽤 많이 있었다.
읽기 → -
한글 URL을 정규화해서 검색 엔진 최적화 완성
한글 문자가 직접 포함된 기존 URL들을 정규 형태로 301 리다이렉트했다. cms_legacy_slug 필드로 레거시 경로와 새 경로를 매핑하고, DB 쿼리와 라우팅 로직에서 이를 처리하는 식이다.
읽기 → -
레거시 게시물 URL을 새 주소로 자동 이동
지난 세션에서 콘텐츠 경로 구조를 /{slug} 에서 /p/{id} 로 개편했는데, 이때 이전 URL들이 깨지면 사용자가 북마크한 링크나 외부 인링크가 모두 dead link 가 되어 버린다. 특히 검색 엔진이 그 페이지들을 색인 해제하려고 기다리는 동안 SEO 손실이 누적된다. 그래서 301 리다이렉트를 사용해 레거시 경로를 새로운 구조로 자동 이동시키는
읽기 →