첫 앱 출시기 1 — 물타기 계산기에서 빼기로 한 것들
반복하던 평단가 계산을 앱으로 만들었습니다. 시세 연동, 보유 자산 관리, 서버를 제외하고 첫 커밋에서 Play 테스트 트랙 업로드까지 12일 동안 작업한 기록입니다.
들어가며
보유 주식의 가격이 내려가면 추가로 몇 주를 살지 계산하곤 했습니다. 72,500원에 20주를 샀고, 58,000원에 15주를 더 산다면 새 평단가는 이렇게 나옵니다.
(72,500 × 20 + 58,000 × 15) ÷ 35 = 66,285.71…
일반 계산기로는 곱셈 두 번, 덧셈, 나눗셈을 합니다. 목표 평단가를 66,000원으로 먼저 정하면 이번에는 필요한 수량을 역산해야 했습니다.
x = q₁(p₁ − t) / (t − p₂)
이 계산을 할 때마다 숫자를 다시 넣는 게 번거로웠습니다. 그래서 첫 안드로이드 앱으로 물타기 계산기를 만들었습니다. 추가 매수 뒤의 평단가를 구하고, 목표 평단가를 넣으면 필요한 수량을 역산하게 했습니다.
계산 기록과 계좌 현황 사이
계산 결과는 저장하고 종목별로 모아볼 수 있게 했습니다. 삼성전자에 계산 두 건, 카카오에 한 건을 남기는 식입니다. 여기에 라이트·다크 모드와 열한 개 언어를 더했습니다.
여기서 시세 연동이나 보유 자산 관리까지 넣을지 고민했습니다. 2주 안에 만들어 보려던 앱이라 범위를 정해야 했습니다. 빼기로 한 기능은 README에도 적어 뒀습니다.
시세는 직접 입력
현재가를 자동으로 가져오면 입력은 줄어듭니다. 하지만 당시에는 계속 바뀌는 시세를 무료로 안정적으로 받아올 방법을 찾지 못했습니다.
사용자가 넣어둔 가격을 현재 시세처럼 보여줄 수도 없었습니다. 입력한 뒤 시장 가격이 바뀌면 앱이 계산한 수익률과 실제 수익률은 달라집니다. 시세를 제공하기 시작하면 실시간 갱신과 알림까지 고려해야 했고, 2주 안에 만들려던 범위를 벗어났습니다. 계산에 쓸 가격은 사용자가 직접 입력하도록 남겼습니다.
종목은 기록을 묶는 이름표
증권사 계좌에 연결하지 않으므로, 앱은 사용자가 실제로 매수했는지 모릅니다. 추가 매수를 가정한 계산을 계좌 현황처럼 보여주면 의미가 달라집니다.
그래서 종목 정보에는 이름, 아이콘, 목록 순서만 저장했습니다. 보유 수량과 평단가를 관리하는 기능은 넣지 않았고, 이력 화면에도 다음 문구를 붙였습니다.
실제 매매가 아닌 계산 기록입니다
서버와 계정 없이
계정, 로그인, 기기 간 동기화도 제외했습니다. 계산 기록은 기기 안에만 둡니다.
기기를 바꿀 때 기록을 가져오는 기능은 포기했습니다. 대신 서버에 계산 데이터를 보관하고 관리하는 일은 맡지 않아도 됐습니다. 개인정보 처리방침에도 기록을 기기 안에 두는 구조를 설명했습니다.
12일 뒤 테스트 트랙에 올리기까지
첫 커밋은 8월 9일, Play 테스트 트랙 업로드는 8월 21일이었습니다.
2026-08-09 Initial commit: add stock calculator app and design mockup
2026-08-21 Play 테스트 트랙 게시
계산 기능 외에 AdMob과 결제를 붙였고, 서명 키와 스토어 등록정보를 처음 준비했습니다. 커밋 로그에는 다음 일정이 남아 있습니다.
| 날짜 | 한 일 |
|---|---|
| 8/9 | 첫 커밋 — HTML 목업과 앱 뼈대, 디자인 시스템 이식 |
| 8/18 | 광고·개인정보 처리방침·브랜드 아이콘·영어·스플래시 |
| 8/20 | 계산 로직 분리, Room 마이그레이션, 키패드 개선 |
| 8/21 | UMP 동의 · 실제 AdMob 3종 · 업로드 키 서명 · 광고 제거 결제 |
| 8/21 | Play 비공개 테스트 트랙 게시 |
| 8/22 | 아이콘 16종, 디자인 정리, 통화 아홉 · 언어 열하나 |
마치며
앞의 열흘은 주로 앱을 만들고, 마지막 이틀은 업로드를 준비했습니다. 계산 화면 외에도 서명 키, 광고 단위, 결제 상품, 스크린샷과 정책 설문을 챙겨야 했습니다. 이 글을 쓰는 8월 22일에는 아직 테스트 트랙에 있습니다.
당시 작업은 네 편에 나눠 적었습니다. 이 글에서는 기능 범위를, 2편에서는 HTML 목업과 앱을 함께 고친 과정을 다룹니다. 광고와 동의 흐름은 3편, 스토어 업로드 준비는 4편에 이어집니다.