Jinyoung Hong

Journal of building things, business and life

우월 웨딩 앱

  • Day 23 · 실행하기 (16)

    목요일이다. 오늘은 좋은 소식이랑 아쉬운 소식이 같이 왔다.
    우월 웨딩 앱 2.0 출시까지 이제 5일. 빌드 27까지 왔고, 서버 핫픽스랑 약관 게시도 끝냈다.
    그리고.. 모두의창업 재도전 결과가 나왔다. 그 얘기는 조금 뒤에 ^^;

    어제의 나에게 보내는 성적표

    • 아침에 로그인 이어지는지 확인 ✅
      이건 뭐 1.1.x 버전에서도 잘 되는 거였다. 역시 잘 된다.
    • 약관·방침 보완본 게시, 앱 공지 수정 ✅
      둘 다 끝! 공지는 본문만 고치고 푸시는 다시 보내지 않았다.
    • 스토어 정보 입력 → 심사 제출 ❌
      대신 심사에 올릴 빌드가 바뀌었다. 제출은 내일!

    스플래시, 세 번째 옷

    앱을 켤 때 잠깐 뜨는 첫 화면, 스플래시를 또 고쳤다.
    빌드 25에서는 진한 보라 바탕에 흰 지갑이었는데, 막상 폰에서 보니 우월이랑 결이 안 맞았다.
    그래서 빌드 26은 연한 보라 바탕에, 로그인 화면에 있는 보라 지갑을 그대로 가져왔다. 다크 모드도 똑같이.

    문제는 아이폰이었다.
    아이폰은 첫 화면을 한 번 기억하면 잘 놓아주지 않는다 ㅋㅋ 새 빌드를 깔아도 예전 진보라가 튀어나올 수 있다.
    그래서 첫 화면 파일 이름 자체를 바꿔서, 폰이 ‘처음 보는 화면’으로 알아듣게 했다.
    나중에 또 헷갈릴까 봐 방법은 문서에 적어 뒀다.

    덤으로 iOS 빌드가 명령줄에서 서명에 실패했다. 알고 보니 Xcode 계정이 로그아웃되어 있었다 ^^;
    결국 Xcode에서 직접 만들어서 올렸다.

    “업데이트해 주세요”라고 말할 방법이 없었다

    출시 체크리스트를 보다가 하나가 비어 있는 걸 발견했다.
    2.0에도, 1.1.x에도 ‘이 버전은 이제 업데이트해 주세요’라고 막을 수단이 없었다 ㅠㅠ
    출시 뒤에 심각한 버그가 나도, 이미 깔린 앱에는 손쓸 길이 없다는 뜻이다.

    그래서 빌드 27에 강제 업데이트를 넣었다.

    • 서버가 기준을 정한다
      서버에 최소 버전을 적어 두면, 그보다 낮은 앱은 전체 화면 업데이트 안내가 뜨고 뒤로 가기도 막힌다.
    • 이유 없이 가두지 않기
      서버 응답이 3초 안에 안 오거나 실패하면 막지 않는다. 내 서버 사정 때문에 사용자가 앱에 못 들어가면 안 되니까.
    • 풀 때는 바로
      서버에서 값을 빼면 앱도 바로 풀린다. 잘못 걸었을 때 돌아갈 길부터 깔아 두는 습관 ^^

    테스트 428개 통과. 아이폰 시뮬레이터랑 안드로이드 에뮬레이터에서 가짜 서버를 붙여 막히는 것, 풀리는 것까지 직접 봤다.
    평소엔 꺼 두고, 정말 필요할 때만 쓰는 비상 스위치다.

    서버 핫픽스, 그리고 남의 지출

    서버도 오늘 한 번 갈아 끼웠다. 리허설 서버에서 먼저 돌려 보고, 테스트 492건 통과한 뒤 오후 2시쯤 운영 교체.

    • D-day 사진 오류
      사진 없이 D-day를 저장하면 서버 오류가 나던 문제 수정.
    • 1.1.x 평균 지출
      이게 오늘 제일 뜨끔했다.
      1.1.x 비용 화면에서 다른 커플들의 평균 지출이 동의 없이, 그것도 단 1건부터 보이고 있었다. 1건짜리 평균이면 사실상 남의 지출 그 자체다 ^^;
      바로 0으로 막았다. 아예 빼 버리면 1.1.x 화면이 깨져서, 값을 0으로 고정하는 쪽으로.
    • 시세를 처음 본 순간 기록
      출시 후에 사람들이 어디서 멈추는지 보려고, 회원이 시세를 처음 열어 본 시각을 남기게 했다. 기록이 실패해도 시세 화면은 정상으로 뜬다.

    약관·방침 10월 14일 보완본도 웹에 게시했다. 올리기 전에 백업부터, 올린 뒤엔 바뀐 문구가 다 들어갔는지 하나씩 확인.
    시행일 10월 20일은 그대로다.

    가입자가 늘었는데.. 로봇이었다

    운영 DB를 보다가 낯선 회원 12명을 발견했다.
    전부 안드로이드 2.0, 무작위 영어 이름, 비슷한 패턴의 메일 주소.
    가입 시각을 보니 내가 Play 내부 테스트에 빌드를 올린 시각이랑 딱 겹친다 ㅋㅋ

    범인은 구글 Play의 사전 출시 보고서였다.
    빌드를 올릴 때마다 구글 테스트 기기들이 진짜로 가입하고, 온보딩까지 마치고, 커플까지 만들고 간다.
    앱이 잘 돌아가는지 봐 주는 고마운 로봇들이지만, 출시 후 이탈 측정이나 예산 평균에 섞이면 숫자가 오염된다.
    보고서는 켜 두고(충돌이랑 접근성 확인엔 쓸모 있다), 계정은 측정 시작 전에 걸러내기로.

    그리고 작업 폴더에 ‘새로운 메일이 있습니다’라는 이름의 파일이 하나 생겨 있었다. 터미널 메일 알림이 파일로 떨어진 것 같다 ^^;
    Day 21에 정한 규칙대로, 운영 빌드는 폴더가 깨끗할 때만. 내일 빌드 전에 치운다.

    10월 20일, 순서까지 정해 두기

    출시날 아침에 할 일도 순서대로 적어 뒀다.
    약관·방침 교체 → 앱스토어 수동 출시 → 플레이스토어 게시 → 양쪽 스토어에 2.0이 실제로 보이면 그때 최신 버전 값 올리기.

    마지막 순서가 중요하다.
    최신 버전 값을 먼저 올리면, 1.1.x 사용자가 ‘업데이트’를 눌렀을 때 아직 1.1.x밖에 없는 스토어로 가게 된다 ㅋㅋ
    업데이트하라고 해 놓고 업데이트할 게 없는 상황. 이런 건 미리 막아야 한다.

    2.1도 오늘 결정 6개를 확정하고 서버 설계 문서까지 써 뒀다. 출시가 끝나면 바로 이어 갈 수 있게.

    아직 오지 않은 것들

    오늘은 KAIT 개인정보 교육 수료증이 나오는 날이었다.
    그런데.. 아직 안 왔다 ㅠㅠ 오늘까지 기다려보고 안오면 내일 문의해야지.
    참가격 이용 협의로 넣은 국민신문고 민원도 여전히 ‘접수’ 상태다. 처리 예정일은 28일.

    Day 20에 배운 대로, 기다리지 말고 물어보는 중이다 ^^

    모두의창업, 우수한데 탈락

    오늘은 대망의 모두의창업 2기 1차 재도전 결과 발표날이었다.
    결과는.. 이번에도 탈락 ㅠㅠ

    모두의창업 2기 1차 결과 화면

    그런데 심사평을 열어 보고 더 헷갈렸다.

    웨딩 시장의 심각한 가격 정보 비대칭을 해결하기 위해 소비자가 직접 등록한 계약서 이미지를 바탕으로 실거래가 기준을 구축하려는 아이디어가 매우 우수합니다.

    해당 산업에 대한 이해도와 문제 해결의 진정성이 엿보이며, 실재하는 고객의 페인포인트 정의와 향후 확장성 측면에서 사업 타당성이 높게 평가됩니다.

    기존 대안 대비 독창적인 접근법을 제시하였고, 초기 구현 역량을 통한 차별성도 긍정적입니다.

    향후, 핵심 가설에 대한 현실적 테스트 및 비판적 피드백 수용을 통해 비즈니스 모델을 보강하시기를 권장합니다. 이를 통해 더욱 고도화된 성과를 거두시기를 기대합니다.

    우수하다는데 떨어졌다.
    탈락 사유는 어디에도 없었다.
    솔직히 우울했다. 한 5분 정도 ^^;

    Claude랑 이야기하면서 정리해 보니, 1만 명을 뽑는데 8만 명이 지원했다고 한다. 그리고 거기서도 서울 지역만 보면 사실상 약 10:1의 경쟁률.
    사유가 없다는 건, 뭔가 틀려서라기보다 우선순위에서 밀렸을 가능성이 크다는 뜻일 수도 있다.
    그래도 혹시 내가 모르는 이유가 있을까 싶어서 주관기관에 메일은 보내 뒀다.

    심사평에서 하나는 가져가기로 했다.
    ‘핵심 가설에 대한 현실적 테스트’. 그건 지금 내가 하려는 일 그대로다.
    5일 뒤 출시하고, 사람들이 정말 계약서를 올리는지, 시세를 보고 돌아오는지. 그걸 숫자로 보여 주면 된다.

    피드백이 이만큼 좋았으면, 방향은 틀리지 않았다는 거다.
    빨리 잊고, 다른 길로 계속 두드려 보자. 끝까지 ^ㅅ^

    성공편지, 첫 삽

    우울함을 털어 내는 데는 역시 손을 움직이는 게 제일이다 ㅋㅋ
    어제 기획한 ‘성공편지 – 미래에서 온 편지’를 이어서 했다.

    먼저 기획서 복원.
    디자인 시안 6개를 바탕으로 기획서를 처음부터 다시 정리했다.
    배경(『퓨처 셀프』, 서버 없이), 보관 방식 세 가지, 화면 흐름, 화면별 상세, 알림 정책, 데이터 구조, 예외 처리, 디자인 규칙까지.
    미정으로 남겨 둔 20개 항목은 제안을 만들고, 오늘 전부 그대로 확정했다.

    오늘 정한 것들

    • Expo 대신 Flutter
      어제는 Expo로 짠다고 적었는데, 우월을 Flutter로 만들어 온 손이 있으니 Flutter로. iOS와 안드로이드 동시 출시!
    • 작게 시작하기
      v1은 폰 세로 화면, 라이트 모드만. iPad는 나중에.
    • 미래는 언제나 3년 뒤
      편지 속 미래 연도는 쓴 해 + 3으로 고정. 잠금은 ‘언제 열 수 있는지’ 도착일만 정한다.
    • 시안 없는 화면은
      디자인이 없는 화면 몇 개는 Claude Code가 이미 있는 부품으로 만들고, 나중에 한 번에 검수.

    프로젝트도 만들어서 비공개 저장소에 올렸다.
    기획서랑 디자인 시안, 개발 계획(PLAN.md), Claude Code 규칙 파일(CLAUDE.md)까지 넣고,
    Claude Code 자동 모드는 이 프로젝트 안에서만 움직이게 범위를 묶어 뒀다. 우월 운영 서버 근처엔 얼씬도 못 하게 ^^;

    계획을 세워 보니 약 70일, 14주.
    10월 19일에 시작하면 심사 제출은 2027년 1월 15일쯤이다.
    첫 단계의 첫 항목, 앱 이름을 ‘성공편지’로 바꾸는 것까지 끝냈고 나머지는 Claude Code가 지금 진행 중.

    남은 일

    • 내일 오전
      빌드 27 실기기 확인: 예전 진보라 스플래시가 안 나오는지, 로그인 유지, D-day 저장, 공지와 약관 화면
      작업 폴더 정리 → 빌드 파일 백업, 그리고 동국대 실전창업 전투강좌. 1분 스피치 준비
    • 내일 오후
      App Store Connect, Play Console 정보 입력 → 양쪽 심사 제출!
    • 주말
      성공편지 첫 단계 결과 확인, 폰트 넣기, 기획서 최신본으로 교체, Play 테스터 12명 모으기 시작
    • 10월 20일 아침
      약관·방침 교체 → 앱스토어 출시 → 플레이스토어 게시 → 최신 버전 값 올리기 → 로그 확인
    • 출시 직후
      Play 로봇 계정 걸러내기, 운영자 확인 루틴 만들기, 2~4주 이탈 측정 시작

    기다리는 것들

    • NEXTMADE 기사·영상 게시
    • 참가격 이용 협의 답변 (국민신문고 아직 접수 상태, 처리 예정일 28일)
    • 애드센스 재심사
    • 컴업 자율 매칭 답장 (대기 9건)
    • KAIT 교육 수료증 (오늘이었는데.. 문의 중)
    • 모두의창업 주관기관 회신

    남이 열어 주는 문은 오늘도 닫혔다.
    그래도 내가 만드는 문은 계속 열고 있다. 하나는 5일 뒤에 열리고, 하나는 오늘 첫 삽을 떴다.
    3년 뒤의 내가 편지를 쓴다면, 오늘은 ‘5분만 울고 다시 일어난 날’이라고 적어 줄 것 같다.

    어제가 당장 안 쓸 짐을 내려놓은 날이었다면, 오늘은 현관 등 색을 바꾸고 비상 스위치를 달아 둔 날.
    내일은 진짜로 문 열어 달라고 신청하러 간다.
    오늘도 고생한 나, 굿밤~ ^ㅁ^

  • Day 22 · 실행하기 (15)

    수요일이다. 오늘은 큰 결정을 하나 했다.
    우월 웨딩 앱 2.0은 포인트 없이 출시한다.
    Day 19에 ‘제휴처가 없는데 포인트가 의미 있을까’를 제일 오래 고민했는데, 결국 답은 ‘지금은 아니다’였다 ^^;

    어제의 나에게 보내는 성적표

    • 운영에서 2.0 확인 ✅
      밤사이 운영 로그 오류 0건! 아침부터 기분 좋게 시작 ^ㅁ^
    • 테스트 빌드 올리기 ✅ (반쯤)
      테스트플라이트로 한 번 확인했고, 마지막 빌드는 오늘 밤에 올린다.
    • 스토어 콘솔 입력 ❌
      넣을 내용은 다 만들었다. 입력은 내일!

    포인트를 껐다

    토요일엔 ‘모으기만 하고, 제휴처가 열리면 할인’으로 정했었다.
    그런데 출시 직전에 다시 펼쳐 보니 마음에 걸렸다.
    제휴처도 없고, 포인트를 돌려줄 재원도 없다.
    쓸 곳 없는 포인트를 쌓아 주는 건 결국 ‘나중에 뭔가 줄게요’라는 약속인데, 지킬 수 있을지 모르는 약속은 하지 않는 게 맞다.

    그래서 2.0은 포인트와 이벤트 없이 나간다.
    코드는 지우지 않고, 스위치 하나로 화면과 서버에서 꺼 두었다. 준비되면 다시 켜면 된다.

    • 시세는 그대로
      우월의 핵심은 결국 시세다. 운영자 확인(승인)은 계속하되, 이제 승인은 시세에 반영하는 일만 한다.
    • 확인 대상도 좁혔다
      운영자가 확인하는 건 ‘가격 데이터 보태기’에 동의한 계약서만.
    • 사업자 확인은 계속
      어제 받은 국세청 사업자 확인은 포인트와 상관없이 켜 둔다. 시세가 진짜 업체 데이터로 쌓여야 하니까.

    앱에서 포인트가 빠진 자리는 사용자가 실제로 얻는 것들로 채웠다.
    이벤트 배너, 메뉴, 알림도 전부 가리고, 알림함의 안 읽은 숫자까지 가린 만큼 맞췄다.
    (숫자는 3인데 열어 보면 1개.. 이런 거 은근 거슬리니까 ^^;)

    로그인이 풀리지 않게

    앱을 쓰다가 갑자기 로그인 화면으로 튕기는 것만큼 짜증 나는 게 없다.
    그래서 오늘은 로그인 연장을 꼼꼼히 다시 짰다.

    • 쓰는 도중에 로그인이 만료되면, 조용히 한 번 갱신하고 하던 요청을 다시 보낸다.
    • 여러 화면이 동시에 갱신하려고 부딪히지 않게, 갱신은 앱 전체에서 한 번에 하나만.
    • 앱을 한참 내려 뒀다가 다시 열 때도 미리 갱신.
    • 정말 안 될 때만 로그인 화면으로.

    오늘 밤에 마지막 빌드를 폰에 켜 둔 채로 자고, 내일 아침에 로그인이 이어지는지 본다.
    내가 자는 동안 앱이 시험을 치는 셈 ㅋㅋ

    말 한 줄도 방침이랑 맞게

    • 시세가 비어 있을 때
      “이 조건의 계약은 아직 적어요. 내 계약서를 올리면 진단은 바로 받을 수 있어요.”
      처음엔 시세가 비어 있는 게 당연하다. 대신 빈 화면이 막다른 길이 되지 않게.
    • 계약서 안내
      “시세에 보태면 회사 담당자가 확인할 수 있어요.”
      방침에 적은 그대로, 앱 화면에서도 똑같이 말한다.

    약관과 방침도 오늘 한 번 더 고쳤다.
    포인트와 이벤트는 ‘회사가 따로 정해서 안내하는 경우에만’, 운영자 열람은 ‘동의한 계약을 시세 목적으로’만.
    시행일 10월 20일은 그대로 간다. 게시는 내일!

    랜딩 페이지에서도 포인트 메뉴, 카드, 구역을 전부 걷어냈다.
    그러다 운영 중인 파일이랑 저장소 파일이 서로 달라져 있던 것도 발견해서 먼저 맞춘 다음 게시했다. (또 하나 배웠다 ^^;)

    그리고 반가운 발견 하나.
    1.1.x에서 쓰던 예산 체크리스트가 2.0 예산 탭에 칸 그대로 잘 보인다. 예전 사용자 기록이 그대로 넘어온다는 것!

    스토어에 걸 얼굴

    스크린샷 16장을 만들었다.
    첫 장은 질문으로 시작한다.
    “이 견적, 괜찮은 거 맞아?”
    결혼 준비하면서 내가 제일 많이 했던 생각이다. 우월은 결국 이 질문에 답하려고 만든 앱이니까.
    (화면 속 내용은 예시라고 작게 적어 두었다)

    스토어에 표시될 우월 휴대폰 에셋

    2~5장은 기능을 하나씩 보여 주고, iPad는 실제 iPad로 캡처했다.
    Play 스토어용은 안드로이드 화면으로 다시 만드는 중.
    출시 노트, 앱 설명, 부제, 프로모션 문구까지 확정!

    출시는 10월 20일 이후로 잡았다.
    약관·방침 시행일에 맞춰서, 앱스토어는 수동 출시, 플레이스토어는 관리형 게시로.
    심사가 먼저 통과돼도 내가 버튼을 누르기 전까지는 나가지 않는다.

    스토어에 표시될 우월 그래픽 이미지

    포인트 대신 무엇으로

    포인트를 끄고 나니 질문이 남았다. 그럼 사람들이 왜 계약서를 올릴까?
    오늘 정리한 생각들.

    • 올려야 보여 주기
      내 계약서를 올리면 다른 사람들의 시세를 볼 수 있게. 비용은 0원이다. 포인트보다 이게 더 정직한 교환 같다.
    • 빈 시세는 공공 데이터로
      참가격 공공 시세로 처음의 빈칸을 채우는 안. 협의 답변을 기다리는 중이다.
    • 제휴 영업의 무기
      제휴사 입장에서 우월은 ‘곧 혼수를 살 예비부부’를 만나는 곳이다. 신뢰 문제는 예치금으로 풀 수 있을 것 같다.
    • 리워드를 다시 켤 때는
      제휴처 할인보다 먼저, 상품권 교환처럼 바로 쓸 수 있는 것부터.

    이건 2.1 목록에 차곡차곡 넣어 뒀다.
    참가격 시세, 올려야 보여 주기, 예산·지출 평균, 상대 프로필 사진, iPad 정렬, 할 일 체크리스트까지.
    출시도 안 했는데 다음 버전 할 일이 벌써 한 바닥이다 ㅋㅋ

    3년 뒤의 나에게서 온 편지

    오늘은 일 말고 하나 더.
    『퓨처 셀프』를 읽고, 미래의 내가 지금의 나에게 편지를 쓰는 걸 해 보고 싶어졌다.
    기간은 3년. 손글씨, 블로그, 영상, 이메일 예약까지 비교해 봤는데 결론은 하나였다.
    중요한 건 3년 뒤에 ‘확실히 도착하는 것’.

    그런데 쓸 곳을 찾아보니.. 마땅한 게 없었다.
    해외 서비스는 있는데, 3년 동안 믿고 맡길 만한 국내 서비스는 찾기 어려웠다.
    그래서 또 직접 만들기로 했다 ㅋㅋㅋ (결혼 준비하다 불편해서 우월을 만든 사람의 습관이다 ^^;)

    이름은 ‘성공편지 – 미래에서 온 편지’.
    보통은 지금의 내가 미래의 나에게 쓰는데, 이건 반대다. 미래의 내가 되어서, 지금의 나에게 쓴다.

    • 서버 없이
      편지는 내 폰에만 저장하고, 알림도 폰이 직접 울린다. 운영비도 없고, 내 편지를 누군가에게 맡길 필요도 없다.
    • 보관 방식 세 가지
      매일 아침 읽기, 봉인(언제든 열고 다시 봉인), 잠금(정한 날까지 못 엶).
    • 답장
      편지 아래에 지금의 내가 답장을 쌓아 간다. 처음엔 회고 점수를 넣었는데, 볼 곳이 없어서 답장으로 바꿨다.

    기획서랑 흑백 디자인 시안 6개까지 만들었다.
    다음은 이 디자인으로 Expo 코드를 짜는 것. 물론 우월 출시가 먼저다!

    남은 일

    • 오늘 밤
      마지막 빌드를 테스트플라이트랑 플레이 내부 테스트에 올리고, 폰에 켜 둔 채로 하룻밤
    • 내일
      아침에 로그인 이어지는지 확인, 약관·방침 보완본 게시, 앱 공지 수정
      스토어 정보 입력(출시 노트, 설명, 스크린샷, 연령 등급, 개인정보 항목) → 심사 제출!
    • 금요일
      동국대 실전창업 전투강좌
    • 10월 20일 아침
      약관·방침 교체 → 앱스토어 출시 → 플레이스토어 게시

    기다리는 것들

    • NEXTMADE 기사·영상 게시
    • 참가격 이용 협의 답변 (처리 예정일 28일)
    • 애드센스 재심사
    • 컴업 자율 매칭 답장 (대기 9건)
    • KAIT 교육 수료증 (내일!)

    출시 직전에 기능을 빼는 건 생각보다 아쉬웠다.
    며칠 동안 만든 포인트 원장, 이벤트, 룰렛까지.. 그래도 지금 줄 수 없는 걸 화면에 띄워 두는 것보다는 낫다.
    오늘 편지 앱을 기획하면서 문득 생각했다. 3년 뒤의 내가 지금의 나에게 편지를 쓴다면, 이 결정을 잘했다고 해 줄 것 같다.

    어제가 이사 갈 집 현관 앞까지 짐을 옮겨 둔 날이었다면, 오늘은 문을 열기 전에 당장 안 쓸 짐을 내려놓은 날.
    가볍게 들어가자.
    오늘도 고생한 나, 굿밤~ ^ㅁ^

  • Day 21 · 실행하기 (14)

    화요일이다. 오늘은 좀 길다 ^^;
    우월 웨딩 앱 2.0이 드디어 운영 서버에 올라갔다. 리허설도 끝냈다.
    어제 금요일에 하겠다고 적어 둔 리허설을 화요일에 해 버린 셈 ㅋㅋ

    어제의 나에게 보내는 성적표

    • 1.1.x 공지 푸시 확인 ✅ (반쯤)
      확인해 보니 안 간 사람이 있었다. 원인은 찾았고, 고친 건 2.0에 실려 나간다.
    • 개인정보 상담 후 백업 파기 ❌
      오늘은 손이 안 갔다. 출시랑 별개로 이번 주 안에!
    • 엔진 마감 (원래 수요일) ✅
      하루 당겨서 끝냈다 ^ㅁ^

    어제 배포한 게.. 잘못 만든 거였다

    아침에 확인하다가 등골이 서늘해졌다.
    어제 올린 운영 서버에 2.0 코드가 섞여 있었고, 정작 넣으려던 보안 2차는 빠져 있었다 ㅠㅠ
    되돌리기 파일까지 만들어 두고 신중하게 배포했다고 일지에 자랑했는데.. 애초에 만든 게 잘못된 거였다 ^^;

    원인은 두 가지였다.
    하나는 로컬 서버를 띄워 둔 터미널에서 빌드를 한 것. 그 터미널이 로컬용 설정을 그대로 물려받고 있었다.
    다른 하나는 빌드하기 전에 지금 어느 폴더, 어느 브랜치인지 확인을 안 한 것.
    바로 제대로 만든 버전으로 교체했다. 약 23시간 동안 잘못된 버전이 돌고 있었던 셈인데, 다행히 큰 문제는 없었다.

    규칙 두 개 추가.
    로컬 서버 띄운 터미널에서는 테스트도 빌드도 하지 않기. 이미지 만들기 전에 폴더랑 브랜치부터 보기.
    (Day 17 Redis, Day 19 운영 설정 파일, 그리고 오늘.. 로컬과 운영 사이의 벽은 아무리 높여도 모자라다)

    공지 푸시가 왜 안 갔을까

    어제 약관 개정 공지를 1.1.x 앱에 푸시로 보냈는데, 못 받은 사람이 있었다.
    파 보니 1.1.x는 커플 중 한 명에게만 보내게 되어 있었다 ㅋㅋ
    2년 전의 내가 왜 그렇게 만들었는지는.. 기억이 안 난다 ^^;
    고친 건 2.0에 같이 실려 나간다.

    엔진 최종 성적표

    우월 웨딩 앱 2.0 계약서 OCR 엔진 최종 성적표

    주말에 돌려 둔 재측정 결과를 드디어 봤다.
    Day 19에 고른 조합 그대로, CLOVA OCR + HyperCLOVA X로 출시 확정!

    • 합성 계약서
      총액 92%, 날짜 89.6%, 항목 66%. 개인정보 노출 0건.
    • 내 진짜 계약서
      총액 7/7 전부 정답! 날짜 5/10, 항목 16/27. 전화번호 같은 번호류 노출 0건.

    날짜랑 항목은 아직 아쉽다. 손글씨 ‘9/1’, ’10월’의 벽은 여전히 높다 ㅋㅋ
    그래도 제일 중요한 총액은 다 맞혔고, 개인정보는 한 건도 새지 않았다.
    나머지는 ‘AI가 읽은 초안 → 확인 필요 표시 → 사람이 확인’으로 받친다.
    더 재 봐야 지금 데이터로는 비슷한 숫자가 나올 거라 추가 측정은 없이 간다. 이제부터는 실제 사용자가 고쳐 주는 기록이 진짜 시험지다.

    운영 준비, 체크리스트 지우는 날

    • 국세청 사업자 확인 API
      신청하고 승인받고 키 동작까지 확인. 계약서에 사업자번호가 있으면 진짜 업체인지 확인할 수 있게 됐다.
    • 운영 설정
      2.0용 설정을 넣고 원본 계약서를 둘 비공개 폴더도 만들었다. 엔진이랑 관리자 기능은 리허설 끝날 때까지 꺼 둔 채로.
    • 관리자 기능은 바깥에서 안 보이게
      운영자 승인 화면은 서버 안에서만 열리고, 바깥에서 두드리면 ‘없는 페이지’가 뜬다.
    • 카카오 로그인
      카카오 콘솔에 서비스 도메인이랑 스토어 주소 등록.
    • 키 재발급
      작업 중에 OCR 키가 노출될 뻔한 순간이 있어서 바로 새로 발급했다.
      Claude Code 규칙 파일에도 ‘설정 파일, 비밀 파일 내용은 화면에 출력하지 않기’를 추가. 실수는 막는 장치로 갚는다 ^^;

    리허설, 운영 데이터 복사본으로

    오늘의 하이라이트.
    운영 데이터를 복사해서 DB, Redis, 서버까지 똑같은 환경을 하나 더 만들고 그 위에서 출시를 미리 해 봤다.
    복사본이니까 마음껏 부숴도 된다 ㅋㅋ

    • 1.1.x 안드로이드
      가입, 로그인, 예식일, 예산, 일정 전부 정상. 업데이트 안 한 사용자도 문제없다.
    • 2.0 iOS
      심사용 로그인, 계약서 분석, 저장, 포인트, 커플 초대, 알림까지 정상!
    • 2.0 안드로이드
      로그인, 분석, 저장, 예산 정상.
    • 업데이트 시나리오
      1.1.x 쓰던 사람이 2.0으로 업데이트해도 로그인이 풀리지 않는 것까지 확인. 이게 제일 걱정이었다.
    • 운영자 승인
      안에서만 되고 밖에서는 막히고, 열람 기록도 제대로 남는다.

    그리고 리허설을 한 보람이 있었다.
    2.0을 처음 켜자마자 서버 오류가 났다 ㅋㅋㅋ
    첫 실행 때 예식 정보를 두 군데서 동시에 만들려다 부딪히는 문제였다.
    진짜 출시 날 첫 화면에서 터졌으면.. 상상만 해도 아찔하다.
    바로 고쳐서 새로 빌드하고, 리허설 서버도 교체했다.

    그리고 그 고친 버전을 운영 서버에도 올렸다.
    엔진, 관리자 기능, 사업자 확인까지 켠 2.0 서버가 지금 운영에 떠 있다.
    사용자가 실제로 2.0에 닿는 문은 내일 아침에 연다 ^ㅁ^

    랜딩 페이지랑 소개서도 지금에 맞게

    기능이 정해졌으니 바깥에 보이는 말도 맞춰야 한다.
    랜딩 페이지에서 분석 시간(15초), 포인트(1,000P)를 지금 기준으로 고치고, 아직 없는 결제 증빙 문구는 지웠다.
    신뢰 섹션은 ‘원본은 비공개로 보관하고, 운영자가 확인한다’로.
    포인트 사용처는 ‘제휴처가 열리면’으로 솔직하게.
    사업소개서도 포인트, 검증 단계, AI(네이버클라우드), 개인정보 설명을 전부 지금 기준으로 다시 썼다.

    우월 랜딩 페이지 신뢰 섹션 수정 1,500p -> 1,000p
    우월 랜딩 페이지 신뢰 섹션 수정

    NEXTMADE 기사 때부터 계속 붙잡고 있는 원칙. 안 되는 걸 되는 것처럼 쓰지 않기.

    투자사 문을 두드리는 중

    컴업 2026 자율 매칭도 다시 정리했다.
    지난주에 넣은 4건이 한꺼번에 ‘취소됨’으로 바뀌어 있었다 ㅠㅠ
    알고 보니 7일 안에 답이 없으면 자동으로 취소되는 것 같다. 거절이 아니라 기한 만료!

    그래서 투자사 13곳을 하나씩 다시 봤다.
    우리랑 맞는 곳, 잠깐 보류할 곳, 같은 회사인데 계정만 다른 곳(이건 몰랐다 ㅋㅋ)까지 나눠서
    취소된 4건은 다시 넣고, 새로 5건을 추가했다. 지금 대기 9건!

    프로필도 손봤다.
    가입자 수를 320명으로 업데이트하고, ‘AI’ 표현도 소개서랑 맞췄다. 소개 자료도 사업계획서에서 새로 다듬은 사업소개서로 교체.
    바깥에 나가는 모든 자료가 같은 말을 하게 만드는 것도 일이다 ^^;

    내년에 도전할 것

    구글플레이 ‘창구 프로그램’도 찾아봤다.
    구글플레이, 중기부, 창업진흥원이 함께 하는 앱·게임 스타트업 지원 프로그램인데 사업화 자금에 컨설팅, 클라우드 크레딧, VC 오피스아워까지 있다.
    올해 기수는 이미 끝났고, 다음 기수는 내년 초 공고가 유력하다.
    우월은 AI 기반 앱이라 잘 맞는 편인데, 해외 진출 이야기는 아직 비어 있다. 이건 숙제로.

    내년엔 정창경도, 창구도 다 도전해 볼 생각이다.
    그러려면 그때까지 보여 줄 숫자가 있어야 한다.

    결국 지금 출시가 시작이다 ^ㅅ^

    남은 일

    • 내일
      리허설 마지막 확인이랑 사업자 확인 실행, 아침에 2.0 문 열기 → 운영에서 직접 확인
      테스트플라이트·Play 내부 테스트 빌드 올리기, 실기기 확인, 스토어 콘솔 입력
    • 이번 주
      개인정보 상담 후 옛 사진 백업 파기, 예전 저장소 공개 설정 마저 닫기
      금요일은 동국대 실전창업 전투강좌! 1분 스피치 준비
    • 다음 주
      앱 심사 제출 → 20일 아침 약관·방침 교체 → 출시!

    기다리는 것들

    • NEXTMADE 기사·영상 게시
    • 참가격 이용 협의 답변 (국민신문고 처리 예정일은 28일)
    • 애드센스 재심사
    • 컴업 자율 매칭 답장 (대기 9건)
    • KAIT 교육 수료증 (내일 모레!)

    리허설은 실수를 미리 해 보는 자리라더니, 오늘 진짜 그랬다.
    잘못 만든 빌드도, 첫 화면 오류도, 안 간 푸시도 전부 사용자보다 내가 먼저 만났다.
    그리고 리허설을 당겨 끝낸 덕분에 금요일 강좌는 마음 편히 갈 수 있게 됐다 ^^

    어제가 금고에 자물쇠를 채운 날이었다면, 오늘은 이사 갈 집 현관 앞까지 짐을 다 옮겨 둔 날.
    문은 내일 아침에 연다.
    오늘도 고생한 나, 굿밤~ ^ㅁ^

  • Day 20 · 실행하기 (13)

    월요일이다. 주말 동안 쌓아 둔 걸 배포하는 날 ^^;
    우월 웨딩 앱 2.0 출시까지 이제 일주일. 토요일 일지 마지막에 월요일 할 일을 세 개 적어 뒀는데, 오늘은 그것보다 훨씬 많은 일이 있었다.
    계약서 사진 이사, 약관 보완, 동국대 강좌, 그리고.. 애드센스까지 ㅋㅋ

    어제의 나에게 보내는 성적표

    • 운영 보안 2차 + 문의 메일 배포 ✅
      점심 무렵 한 번에 배포 완료!
    • 엔진 재측정 결과 확인 ❌
      측정은 돌렸고 기록도 남았는데, 결과를 아직 제대로 못 봤다. 수요일 엔진 마감 때 같이 보기로.
    • 교육 만족도 조사 ✅
      진짜로 했다! 이제 15일에 수료증만 받으면 된다 ^ㅁ^

    배포 전에 되돌리는 길부터

    보안 2차랑 랜딩 페이지 문의 메일을 묶어서 운영에 올렸다.
    이번엔 배포 전에 두 가지를 먼저 했다.
    하나는 문제가 생기면 바로 이전 상태로 돌아갈 수 있는 되돌리기 파일 만들어 두기.
    다른 하나는 SNS 이벤트 신청 건들이 배포 후에도 멀쩡한지 미리 확인해 두기. 11건 전부 통과!

    Day 17 운영 Redis 사건 이후로 운영을 건드릴 땐 ‘돌아갈 길’부터 깔아 두는 습관이 생겼다.
    다행히 오늘은 쓸 일이 없었다 ^^

    계약서 사진, 비공개 저장소로 이사

    토요일에 ‘사진 저장 방식을 새 비공개 저장소 하나로 통일하겠다’고 적었는데, 오늘 실제로 옮겼다.
    서버 디스크에 있던 사진, 예전 저장소에 있던 사진을 전부 새 비공개 저장소로.
    옮긴 뒤에는 예전 자리에서 지우고, 바깥에서 하나하나 열어 봐서 전부 막혀 있는 것까지 확인했다.

    혹시 몰라 백업은 따로 남겨 뒀다.
    백업도 결국 개인정보라, 어떻게 지우는 게 맞는지 내일 개인정보 상담(118)에 물어보고 파기할 예정이다.
    KAIT 교육에서 배운 게 이렇게 바로바로 쓰인다 ^ㅅ^

    약관과 방침, 한 번 더

    토요일에 공지한 약관·방침을 오늘 두 번 더 고쳤다.
    이유는 어제 정한 ‘처음엔 내가 직접 보고 승인한다’.
    사람이 계약서를 본다면, 그걸 방침에 적어야 한다. 누가, 언제, 왜 보는지.
    그래서 운영자가 계약서를 열람하는 경우와 승인 방식을 넣고, 열람 기록은 2년 보관하기로 했다.
    2차 보완에서는 탈퇴한 뒤에 무엇이 얼마나 남는지도 구체적으로 적었다.

    1.1.x 앱 공지 본문도 같이 보강했다.
    내용이 바뀌었으니 다시 알리고, 시행일(10월 20일)은 그대로 간다.

    우월 웨딩 앱 2.0, 오늘도 앱이랑 서버 동시에

    서버 (v2, 전부 테스트 통과 후 반영)

    • 운영자 열람
      승인 대기 중인 계약서 상세와 원본을 운영자가 볼 수 있는 기능. 누가 언제 봤는지 기록이 남는다.
    • 합계 줄 버그
      계약서 합계 줄에서 총액 대신 부가세 같은 작은 금액을 고르던 문제 수정. 돈을 다루는 서비스에서 제일 무서운 종류의 버그다 ^^;
    • 사진 파기 규칙
      계약서 삭제나 탈퇴 때 사진을 언제 지우는지 정한 대로 구현. 커플 둘 다 탈퇴하면 그때 바로 파기.
    • 중복과 탈퇴 처리
      같은 계약은 막고, 애매한 건 ‘중복 의심’으로 표시해서 내가 판단. 탈퇴한 회원의 대기 건은 승인되지 않게.
    • 반려 안내
      반려되면 알림함에 담담한 문구 한 줄. 푸시는 보내지 않는다. 굳이 기분 나쁜 알림을 울릴 필요는 없으니까.
    • 11월 정리 배치
      열람 기록 보관 기한 같은 정리 작업 목록을 만들고, 마감은 11월 18일로.

    앱 (리브랜딩 v1.2)

    • 실제 엔진으로 끝까지
      계약서 찍기부터 포인트 적립까지 실제 엔진으로 한 바퀴 돌려 봤다. 완료!
    • 문구 정리
      저장 완료, 진단 문구를 실제로 되는 기능만 말하게 고쳤다. NEXTMADE 기사 때 배운 것. 안 되는 걸 되는 것처럼 쓰지 않기.
    • 첫 사용 안내
      세 줄짜리 안내 시트. 작은 폰에서도 한 줄씩 딱 떨어지게 맞췄다.
    • 혜택 알림
      폰 설정에서 알림을 꺼 둔 경우 ‘기기 알림이 꺼져 있어요’ 안내를 4초 동안. 온보딩에서는 권한 창 뒤에 나오게.
    • 1.1.x 사용자 배려
      예전 버전 사용자를 위한 업데이트 안내 이미지, 계약서 원본을 볼 때마다 새 주소를 받는 방식(10분 만료)까지.

    iOS 온보딩 권한 창이랑 홈 혜택 알림 순서도 실제로 확인했고, 테스트 계정도 깔끔하게 정리 완료.

    오늘 내린 결정들

    • 심사 제출일
      금요일 리허설이 깔끔하면 토요일(17일)에 v2 배포하고 바로 제출. 아니면 원래대로 19일.
    • 1.1.x 로그인 개선은 나중에
      지금 넣으면 2.0 일정이 흔들린다. 2.0 출시 2주 뒤 따로.
    • 앱에 없는 칸은 세지 않기
      앱 화면에서 고칠 수 없는 칸(지역 등)이 ‘확인 필요’로 잡혀서 포인트가 막히면 사용자만 억울하다. 그런 칸은 운영자 화면에만 보이게.
    • 탈퇴한 사람의 데이터
      상대가 남아 있으면 원본은 유지, 시세 통계에서는 다음 집계부터 제외.
    • 알림 동의는 기기와 따로
      폰에서 알림 권한을 거부해도 서버의 혜택 알림 동의는 그대로 둔다. 대신 꺼져 있다고 알려 주기.

    기다리던 결과, 전화 한 통으로

    ‘기다리는 것들’에 일주일 넘게 적어 둔 서울앵커사업단 실전창업 전투강좌.
    교육이 이번 주 금요일인데 아무 연락이 없어서 떨어진 줄 알았다 ㅠㅠ
    신청한 구글폼을 다시 열어 보니 빈 폼이라 신청이 됐는지도 헷갈리고..

    그래서 직접 전화했다. 처음엔 안 받았는데, 조금 뒤에 회신이 왔다.
    “일정대로 오시면 돼요.” ^ㅁ^
    투자 유치, IR 자료 작성, 피칭까지 하루 종일 배우는 강좌라 법인 전환이랑 투자 유치를 고민하는 지금 딱 필요한 내용이다.
    첫 순서가 1분 스피치라, 우월을 1분 안에 소개하는 연습부터 해 가야겠다.

    오늘 배운 것. 기다리지 말고 물어보자 ㅋㅋ

    애드센스, 또 떨어졌다

    이 도메인으로 두 번째, 그 전까지 합치면 서른 번이 넘는다 ㅋㅋ ㅠㅠ
    이번에도 거절 이유는 안 나왔다. 그래서 하나씩 뜯어봤다.

    사이트 소유를 증명하는 ads.txt 파일을 열어 봤더니 게시자 ID가 두 개 들어 있었다.
    하나는 내 것, 하나는.. 모르는 것.
    가지고 있는 구글 계정에 전부 로그인해 봐도 애드센스에 가입한 계정은 없었다. 아마 블로그 세팅할 때 따라 한 예시가 남아 있었던 것 같다 ^^;
    FTP로 들어가서 내 ID 한 줄만 남기고 정리한 뒤 재신청을 넣었다.

    애드센스 3n번 탈락화면

    (이 페이지좀 제발 그만 보내주세요.. 정확한 사유라도 알려주시던지…ㅠ)

    그리고 이참에 블로그를 왜 하는지도 다시 생각해 봤다.
    지금 트래픽으로는 승인이 나도 광고 수익은 아주 작다.
    이 블로그는 우월을 만드는 과정을 기록하고 알리는 곳이고, 수익은 그다음이다.
    그래서 블로그는 연장한다.
    그리고 우월에 쌓인 실제 계약 데이터로, 결혼 준비하는 사람들에게 진짜 도움이 되는 글도 써 볼 생각이다.
    그 글이 우월로 사람을 데려오고, 광고 수익이 생기면 다시 우월에 재투자하는 선순환. 그게 목표!

    NEXTMADE, 최종 확정

    NEXTMADE 기사 초안도 최종 확정 회신을 보냈다.
    이번엔 [대괄호]도 {중괄호}도 없이 보냈다 ㅋㅋ (세 번 읽었다)
    이제 게시만 기다리면 된다.

    남은 일

    • 오늘 밤
      서버는 탈퇴 관련 처리 마무리, 앱은 탈퇴 안내 문구 경우별 정리
      나는 약관·방침 2차 보완 재게시, 예전 저장소 공개 설정 마저 닫기
    • 화요일
      1.1.x 공지 푸시 확인, 개인정보 상담 후 백업 파기
    • 수요일
      엔진 마감. 새 코드로 실제 계약서 측정하고, 미뤄 둔 재측정 결과까지
    • 목요일
      운영 환경 설정, 권한, v2 경로 준비
    • 금요일
      배포 리허설, 실기기 확인, 스토어 콘솔 입력, 그리고 전투강좌!
    • 토요일 또는 다음 주 월요일
      v2 배포 → 앱 심사 제출 → 20일 약관·방침 시행 → 출시!

    기다리는 것들

    • NEXTMADE 기사·영상 게시
    • 참가격 이용 협의 답변
    • 애드센스 재심사, 컴업 자율 매칭 답장
    • KAIT 교육 수료증 (15일!)

    기다리던 목록에서 처음으로 하나가 빠졌다. 그것도 기다리기만 했으면 몰랐을 답으로.
    계약서를 맡기는 서비스라면, 사용자가 묻기 전에 먼저 답할 수 있어야 한다.
    누가 보는지, 언제 지우는지, 어디에 두는지. 오늘은 그 답을 하나씩 적은 날이었다.

    어제가 그 집에 문패를 단 날이었다면, 오늘은 금고에 자물쇠를 채운 날.
    오늘도 고생한 나, 굿밤~ ^ㅁ^