• 2주차 진행상황 : 배포 직전에 이름부터 정했습니다

    컨텐츠 이미지
    컨텐츠 이미지

    지난주 활동기 끝에 다음 할 일로 세 가지를 적었습니다. 배포해서 폰에 설치하기, 예시 데이터 정리하기, 계정 방식 정하기입니다. 이번 주에 끝낸 건 계정 방식 하나입니다. 배포는 누르기 직전에 멈췄습니다. 멈춘 이유는 이름이었습니다. 한 번 배포해서 주소가 생기고 폰에 설치되면 이름을 바꾸기 어렵습니다. 나중에는 다른 나라 사람들도 쓰는 앱으로 만들고 싶어서 영어 이름부터 정하기로 했습니다. 후보를 여럿 뽑아 미국·한국 상표, 앱스토어의 같은 이름 앱, 도메인을 하나씩 조회했습니다. Runway와 Ramp는 이미 큰 회사가 상표를 갖고 있었고, 부제로 쓰던 StartLine은 쓸 만한 도메인이 전부 등록돼 있었습니다. 그렇게 걸러서 남은 이름이 Backcast입니다. 일기예보(forecast)와 반대로, 목표 날짜에서 거꾸로 계획을 세우는 방법을 가리키는 실제 용어입니다. 앱이 하는 일을 그대로 설명하는 이름이라 골랐습니다. 영어권에서는 낚시 용어로 먼저 읽힌다는 약점이 있어서 소개 문구로 보완할 생각입니다. 로고는 B 한 글자로 만들었습니다. 세로 기둥을 빨간색으로 칠해 출발선으로 쓰고, 둥근 칸 두 개는 일정 두 개로 읽히게 했습니다. 앱 아이콘과 사이트 로고를 같은 모양으로 맞췄습니다. 계정 방식은 원칙 두 개로 정했습니다. 수익이 나기 전까지 비용은 0원, 그리고 보안은 포기하지 않는다는 것입니다. 실제 사용자를 받을 생각이라 보안 쪽을 더 무겁게 봤습니다. 처음에는 호스팅을 Vercel로 하려고 했는데, 무료 요금제는 상업적 이용이 금지돼 있었습니다. 나중에 구독제를 붙일 계획이라 뺐습니다. Firebase는 무료 요금제에서 서버 함수를 올릴 수 없었습니다. AI API 키를 숨겨둘 곳이 서버 함수라서 이것도 뺐습니다. 결국 화면은 지금의 HTML 파일 하나를 그대로 쓰고, 로그인과 데이터베이스는 Supabase 무료, 호스팅은 Cloudflare Pages나 Netlify 무료로 가기로 했습니다. Supabase 문서를 읽다가 알게 된 것도 있습니다. SQL로 만든 테이블은 접근 제어(RLS)가 꺼진 상태로 생깁니다. 이걸 모르고 AI에게 테이블 설계를 맡기면 다른 사람 일정이 그대로 읽힐 수 있습니다. 그래서 테이블을 만들면 바로 다음 줄에서 접근 제어를 켜고, 계정 두 개로 서로의 데이터가 정말 안 보이는지 눈으로 확인한 뒤에 사람을 받기로 했습니다. 이메일 로그인도 뺐습니다. Supabase 기본 메일 서버는 팀원 주소로만, 시간당 2통까지만 보낼 수 있어서 실제 서비스에 쓸 수 없었습니다. 로그인은 구글 계정만 받습니다. 플레이스토어 요건도 찾아봤습니다. 개인 개발자 계정은 테스터 12명이 14일 연속으로 비공개 테스트를 해야 출시 신청을 할 수 있습니다. 스토어 등록은 서두르지 않고 앱을 먼저 제대로 만들기로 했습니다. 이 결정들을 모아 PRD를 썼습니다. 스터디 4주 안에 만들 것과 그 뒤 로드맵을 나눴고, 기능마다 완료 기준을 붙였습니다. 웹과 앱 중 무엇을 먼저 만들지도 고민했는데 웹으로 정했습니다. PWA로 만들면 웹 주소로 열 수도 있고 폰 홈 화면에 설치할 수도 있어서, 하나를 만들면 둘 다 생깁니다. 개발은 한 가지 했습니다. 공모전 때는 노트북에서 폰처럼 보이게 폰 테두리를 그려뒀는데, 이대로 폰에 설치하면 폰 화면 안에 폰 테두리가 또 그려집니다. 그래서 홈 화면 아이콘으로 열렸는지 감지해서, 그때는 테두리와 소개 문구를 걷어내고 앱 화면만 꽉 차게 바꿨습니다. 막힌 곳도 있었습니다. 노트북 크롬에서는 "홈 화면에서 열었다"는 상황을 흉내 낼 수 없어서, 브라우저가 알려주는 값을 바꿔 끼우는 방식으로 확인했습니다. 진짜 확인은 폰에 설치한 뒤에 해야 합니다. 사용한 도구는 클로드 코드, 각 서비스 공식 문서, 미국·한국 상표 검색, 그리고 화면 확인용 Playwright입니다. 다음 주에는 먼저 배포해서 폰에 설치하겠습니다. 그다음 실제 공모전 공고 5개로 마감일을 제대로 읽는지 확인하고, 준비 기간을 직접 입력하는 기능을 붙이려고 합니다.

  • 💬 댓글이 아직 없습니다.