OpenCode 로 앱 개발 및 출시 회고




배경

  • 우리 회사에서는 개발 업무에 AI를 적극 도입해 활용하고 있음.
  • 업무에서의 활용을 넘어, AI Agent를 개발 파트너로 두고 실제 제품을 기획부터 출시까지 끝까지 완주해보는 경험을 해보고 싶었음.
  • 이전에 직접 사용하려고 스캔 앱을 하나 만들었고, 그걸 출시해보려고 했음.
  • 스캔 앱은 너무 타겟팅 되어 있고, 고도화 기능들이 필요하기 때문에 간단한 앱을 추가로 해서 배포를 검토함.
  • 그러던 중 지하철에서 영상 같은걸 보면서 출퇴근 시간을 보내기 보단 간단하게 뇌를 활성화 하기 위해 스도쿠 게임을 하고 싶었음.
  • 스도쿠 게임을 받았는데 광고가 너무 많고 게임 자체를 방해하는 것에 화가 나서 직접 만들기로 결정.
  • 하나만 하면 아쉬우니까 아이들이 간단하게 즐길 수 있는 게임도 하나 개발하기로 결정.

목적

  • 내가 직접 할 “스도쿠” 게임을 만들자

  • 아이들에게 시킬 간단한 게임으로 “세모 땅따먹기” 게임을 만들자

    (회고를 작성하던 도중 2일 정도 투자하여 “메모리 게임” 도 추가)

  • iOS / Android 출시까지 진행해보자

방식

  • Agent 에게 일을 시키고 직접 확인하고 다시 일을 시키고 다시 확인하고, 더 나은 방향을 검토하고 지속적으로 개선

진행

초기 뼈대 작업

  • OpenCode 를 통해서 Flutter 로 앱 개발 진행
  • 어떻게 설명해야 좋을지 LLM과 대화를 통해 방향을 같이 정하고, 어떻게 Agent 에게 일을 시켜야할지 정리를 함
  • 초기에는 작은 기능으로 시작하기로 결정하고 Agent 에게 간단한 기능 부터 구현

개발자 라이센스 취득

  • Apple Developer 등록
    • 개인 개발자 계정으로 등록
    • 1년마다 연장해야하고, 비용이 약간 있는 편, 프로세스 별로 진행을 하면 어렵지 않게 가능
  • Google Developer 등록
    • 개인 개발자 계정으로 등록 (혹시 모르니 유료 상품 가능한 계정으로 등록)
    • 한번만 결제하면 영구적, 비용 저렴
    • 다만, 계정을 생성을 하기 위해 인증을 해야하는 과정이 상당히 복잡했음
      • 현 주소를 인증할 수 있는 자료를 제공해야함. 주민등록등본 제출이 제일 간단

광고 삽입 검토

  • Google AdMob 을 통해서 앱에 광고를 심어보기로 결정
  • 역시 어떻게 가입하고 설정 해야할지 부분은 LLM과 대화를 통해 진행
  • 일단 코드 개발을 했다가, AdMob 에 앱인증이 출시 후 가능해서 .. 화면 영역에서 제거 진행

인앱 상품 검토

  • RevenueCat 이라는 서드파티를 통해서 진행 검토
  • 테스트 모드로는 손쉽게 가능해서 릴리즈에도 사용가능할 것이라는 것을 검토함
  • 코드 구현 까지 해서 연동은 했지만 초기 출시시 제외하기로 결정

앱 심사 요청

  • 앱 심사의 복잡한 절차를 어떻게 해야할지 LLM과 대화를 통해 진행

  • 심사요청은 Apple Store, Google Play 둘다 일단 어렵지 않게 올릴 수 있었음

    → 개인 정보 처리 방침 페이지가 있어야 하기 때문에 Notion 으로 생성

고난의 시작

  • 애플 심사 도중 광고가 없는데 왜 광고 있다고 하냐고 리젝 당함

    → 코드 완전 클린하게 제거해버림

  • 구글 심사 는 무난하게 통과 했지만 예기치 못한 상황에 직면

    • 수익을 내가 위한 계정으로 만들면 Google Play 에 가입 시 인증했던 “주소” 가 노출이 되어버림..
    • 수익 = 인앱 외 광고도 수입으로 보기 때문에 주소가 노출이 되버림.
    • 이건 사업자 등록도 하고 공유 오피스 같은곳의 주소로 인증을 해야하기 때문에 포기.. ㅠㅠ
  • 연관해서 애플쪽 정책도 알아 봄

    • 주소공개 같은 것 없이도 광고까지는 개인 개발자도 가능
    • 인앱 결제를 추가하려고 하면 사업자 등록을 해야 함

앱 심사 통과

  • 앱스토어는 어렵지 않은 수정으로 통과 됨
  • 플레이 스토어는 일단 포기

앱스토어 출시 후 빠르게 기능 업데이트

  • 공유를 해서 사용자가 직접 바이럴을 하면 좋을 것 같아 공유 가능한 컨텐츠 추가

  • 초기 의도가 나와 아이들이 하기 위한 것을 만드는 것이었기 때문에 아이들의 과한 플레이를 제한하기 위한 방어장치 도입

  • 제거 했던 광고를 다시 붙여보기로 결정

  • 본인과 아이들이 사용하는 환경이 iOS 이기 때문에 안드로이드 출시는 과감하게 보류

    → 그래도 아까우니까 원스토어에 출시. (원스토어는 개인 개발자도 광고를 붙일 수 있음)

    → 갤럭시 스토어도 검토를 했었으나, 해당 스토어에 앱을 등록하려면 사업자 등록증을 제출해야 했음

결과물

앱 소개 페이지

iOS (App Store)

Android (원스토어)

회고

  • 단순 개발까지는 빠르게 진행할 수 있었고, LLM 과의 핑퐁을 통해 서드파티를 사용하는 것이나 빠르게 진행가능한 방향성도 결정할 수 있었음.
    • Agent 에게 개발을 요청할 때 뼈대를 처음에 만들고.
    • 작은 기능 단위로 요청 & 확인을 반복하는 방식의 작업이 상당이 용이 했음.
    • 그리고 기능 개발을 할 때 실패하는 것에 대해서는 과감하게 되돌리고 시작할 수 있는 용기도 생겨야하기 때문에 작은단위 및 git 을 사용하며 진행해야 용이 할 수 있음.
    • 그리고 한번 만들고 나면 그 다음부터는 속도가 더 빨라졌음.
      • 진행을 하면서 관련된 지식을 획득하고, 그 기반으로 Agent 에게 요청하기 때문이라 생각함.
  • 하지만 더 어려운건 그 다음 이었음.
    • 앱 심사 및 출시를 하는 것이 의외로 스트레스 영역이었음.
    • 개발자 계정 같은것은 제대로 사전조사를 통한 검토하지 않고 시작한 문제도 있었음.
  • 앱을 만들고 내가 직접 플레이를 하고, 아이들이 재미있게 플레이를 하는 모습을 보면 뿌듯했음.
  • 하지만, 누군가 경험을 위해 앱을 만들고 소소하게 돈을 벌어보고 싶어서 앱을 만든다고 하면 말리고 싶음.
    • 그냥 웹 기반의 서비스가 훨씬도 빠르고 간편하게 셋업이 가능할 것이라고 생각했음.
    • OCI 같은것을 이용하면 비용없이 초기 서버 셋팅도 가능하고, DB 도 firebase 같은걸 활요해서 무료로 시작해볼 수 있을 것이라 생각함.

댓글 없음:

댓글 쓰기

AI Coding Assistant 개인 프로젝트 그 이후 업무에 적용하기 위한 고민

  최근 사이드 프로젝트로 앱을 만들고 출시하면서 AI Agent 기반 개발을 여러 방식으로 실험해봤습니다. 개인 프로젝트에서 이것저것 부딪혀보고 나서, 실제 업무에 적용해보기 위해 회사에서 사용하던 스프린트 방식을 이 흐름에 적용해보고 싶어졌습니다....