CASE 01 / APP
Life-Up — 습관 관리 앱
앱 결제와 웹 결제를 한 구독으로 묶고, 고치는 주기가 다른 기능을 서버 6개로 나눈 습관 앱입니다.
- 분야
- 습관 관리 앱
- 플랫폼
- iOS · Android(한 코드) · 웹 포털
- 언어
- 한국어 · 영어 · 일본어
- 상태
- App Store · Google Play 출시, 운영 중

SUMMARY
요약
- 무엇
- 매일의 작은 실천을 퀘스트로 바꾸는 습관 관리 앱. 습관을 기록하면 코인을 받고, 그 코인으로 버디를 키웁니다
- 맡은 일
- 기획 · 디자인 · 앱 · 웹 포털 · 서버 · 결제 · 스토어 출시 · 운영, 전부 직접
- 기술
- React Native(Expo) · React · Spring Boot · RevenueCat · Paddle · Kubernetes
Life-Up은 의지로 버티는 대신 계속할 이유를 만드는 앱입니다. 할 일과 습관을 기록하면 코인이 쌓이고, 그 코인으로 버디를 키웁니다. 매주 새 글이 올라오는 매거진, 정해 둔 시간에 오는 알림, 광고 없이 쓰는 구독도 들어 있습니다. 작은 앱처럼 보여도 성격이 다른 기능이 다섯 갈래로 얽혀 있어서, 처음 구조를 어떻게 잡느냐가 그 뒤의 수정 비용을 정했습니다.
판단 01
서버를 기능별 6개로 나눴습니다
- 문제
- 습관 기록, 버디 키우기, 매거진, 알림, 구독은 바뀌는 속도가 다릅니다. 매거진은 매주 새 글이 올라가고 기능도 자주 손보지만, 결제는 거의 바뀌지 않는 대신 한 번 틀리면 돈 문제가 됩니다. 서버 하나에 모두 넣으면 매거진 화면 하나를 고치려고 결제 코드까지 함께 다시 배포해야 합니다.
- 선택
- 인증·습관·게임·매거진·알림·구독을 각각의 서버로 나누고, 앞에 게이트웨이를 하나 두었습니다. 앱과 웹은 게이트웨이 주소 하나만 알고, 그 뒤가 어떻게 나뉘었는지는 모릅니다. 배포도 서버마다 따로 하도록 자동화했습니다.
- 이유
- 고친 곳만 다시 올리면 되니, 매거진을 손보는 날에도 결제 서버는 그대로 둡니다. 한 서버에 문제가 생겨도 나머지 기능은 계속 돕니다. 대신 운영할 서버가 늘어나는 비용이 있어서, 고객 앱에 처음부터 이렇게 나누자고 권하지는 않습니다. 기능 수와 바뀌는 속도를 보고 정합니다.

판단 02
앱 결제와 웹 결제를 한 등급으로 묶었습니다
- 문제
- 앱 안에서 구독을 팔려면 애플·구글의 인앱 결제를 써야 합니다. Life-Up은 웹 포털에서도 구독을 팝니다. 두 결제가 따로 놀면, 웹에서 결제한 사람이 앱을 열었을 때 무료 회원으로 보이고 광고까지 뜹니다.
- 선택
- 앱은 RevenueCat으로 App Store·Google Play 결제를, 웹은 Paddle을 붙였습니다. 두 곳에서 오는 결제 완료 신호를 서버가 받아 계정마다 하나의 등급으로 합치고, 둘 다 있으면 높은 쪽을 씁니다. 결제 신호는 미리 맞춰 둔 인증값이 있을 때만 받습니다. 주소만 알면 누구나 "결제됐다"고 보낼 수 있기 때문입니다.
- 이유
- 어디서 결제했든 같은 권리를 받아야 하기 때문입니다. 등급을 확인하지 못한 순간에는 광고를 띄우지 않는 쪽을 골랐습니다. 무료 회원에게 광고를 한 번 덜 보여 주는 것보다, 돈을 낸 사람에게 광고가 보이는 쪽이 훨씬 나쁘기 때문입니다.

판단 03
한 코드로 두 플랫폼, 세 언어는 처음부터
- 문제
- iOS와 Android를 따로 만들면 고칠 때마다 두 번 고쳐야 하고, 시간이 지나면 두 앱이 조금씩 달라집니다. 언어도 같습니다. 화면 글자를 코드에 바로 적어 두면, 나중에 번역을 붙일 때 모든 화면을 다시 열어야 합니다.
- 선택
- React Native(Expo)로 한 코드에서 두 플랫폼 앱을 만들고, 첫 화면부터 글자를 언어 파일로 분리해 한국어·영어·일본어를 함께 넣었습니다. 스토어 설명, 업데이트 안내, 매거진 글도 세 언어로 냅니다.
- 이유
- 두 결정 모두 나중에 바꾸려면 사실상 다시 만들어야 하는 것들입니다. 처음에 정해 두면 해외 출시를 언제 정하든 앱을 다시 만들 필요가 없습니다.
RESULTS
결과물
- 앱iOS·Android, 한 코드(React Native·Expo), 한국어·영어·일본어
- 웹 포털구독 결제, 계정 관리
- 서버기능별 6개(인증·습관·게임·매거진·알림·구독) + 게이트웨이, 서버별 자동 배포(Kubernetes)
- 로그인Google·Apple 로그인, 가입 없이 둘러보는 게스트 모드
- 결제앱 인앱 구독(RevenueCat) + 웹 구독(Paddle), 계정 하나의 등급으로 병합
- 알림·매거진정해 둔 시간의 리마인더, 세 언어 매거진(주 1회 발행)
- 출시App Store·Google Play. 애플 심사에서 로그인 방식(4.8), 계정 삭제(5.1.1), 구독 화면의 약관 링크(3.1.2), 홍보 이미지 속 가격(2.3.2)으로 반려를 받았고, 고쳐서 통과했습니다

맡기실 일에 주는 것
구독·결제가 있는 앱을 맡기신다면
앱 결제와 웹 결제를 둘 다 붙여 운영해 본 경험이 그대로 들어갑니다. 상품을 어디서 팔지, 두 곳에서 산 구독을 어떻게 합칠지, 결제 신호를 어떻게 검증할지를 기획 단계에서 정합니다.
애플이 결제 앱에서 보는 것 — 구독 화면의 약관 링크, 구매 복원 버튼, 홍보 이미지 — 을 제출 전에 점검하고, 반려되면 고쳐서 다시 올리는 것까지 추가 비용 없이 합니다.
서버를 몇 개로 나눌지는 앱 규모를 보고 정합니다. 작은 앱은 서버 하나로 시작하는 편이 운영비가 적게 듭니다.
앱 개발
500만원 / 1개월
CONTACT
LET'S
TALK.
만들고 싶은 것을 편하게 적어 주세요.
홈페이지·앱 제작 문의, 비즈니스 제휴, 그 밖에 궁금한 점 무엇이든 괜찮습니다. 로고나 원고가 없어도 됩니다. 하시는 일과 필요한 것을 적어 주시면 범위와 기간을 정리해 견적으로 답장드립니다.
