앱 강제 업데이트

손님 폰에 깔린 앱은 깔린 그날의 판이에요. 앱이 열릴 때 판 번호를 확인해서, 너무 낡은 판이면 업데이트로 안내하는 장치예요. 사장님 폰에서는 재현되지 않는 오류가 여기서 끊겨요.

쉽게 말하면

작년에 메뉴판을 받아 간 손님이 오늘 그 메뉴판을 들고 왔어요. 없는 메뉴를 주문하고, 바뀐 가격을 못 받아들여요. 손님이 무례한 게 아니라 손에 든 종이가 낡은 것이죠. 앱도 똑같아요. 손님 폰에 깔린 앱은 깔린 그날의 판이라서, 사장님이 고쳐 올린 것은 사장님 폰에만 반영돼요. 앱 강제 업데이트는 문 앞에서 메뉴판 날짜를 확인하고, 낡은 손님에게 새 메뉴판을 받아 가라고 안내하는 장치예요.

판 확인이 없으면
앱 실행 → 바로 사용 (어느 판인지 아무도 모름)

석 달 전 판을 쓰는 손님이 계속 남아요. 그 손님만 오류가 나고, 사장님 폰에서는 재현이 안 돼요.

판 확인을 넣으면
앱 실행 → 서버에 판 번호 확인 → 낡으면 안내

같은 문의가 끊겨요. 어느 판을 쓰는 손님이 몇 명인지도 함께 보여요.

이 문서는 스토어에 올린 앱을 가진 사장님에게 필요해요. 링크로 여는 웹사이트만 있다면 훨씬 가벼운 처방으로 끝나요. 그 경계는 아래에서 따로 정리할게요.

왜 옛 버전 손님만 오류가 나나

앱은 손님 폰에 복사되어 설치된 프로그램이에요. 사장님이 고쳐서 새로 올려도, 이미 깔린 앱이 저절로 바뀌지는 않아요. 웹사이트와 결정적으로 다른 대목이 이거예요.

자동 업데이트를 켜 둔 손님은 며칠 안에 새 판으로 넘어가요. 그런데 자동 업데이트를 꺼 둔 손님, 저장 공간이 꽉 찬 손님, 데이터를 아끼려고 와이파이에서만 받는 손님은 몇 달씩 옛 판에 남아요.

  1. 1서버 쪽을 고쳐요. 예를 들어 주문서에 칸 하나를 더 받기로 정했어요. 좋은 개선이에요.
  2. 2새 판 앱은 그 칸을 채워 보내요. 옛 판 앱은 그런 칸이 있는 줄 모르니 안 보내요.
  3. 3서버가 칸이 빈 주문을 거절해요. 옛 판 손님에게만 "주문에 실패했어요"가 떠요.
  4. 4사장님 폰은 새 판이라 아무 문제가 없어요. 재현이 안 되니 원인을 찾을 실마리가 없어요.
  5. 5손님은 이유를 설명하지 못하고 그냥 떠나요. 별점 하나와 짧은 후기가 대신 남아요.

제일 비싼 대목은 재현이 안 되는 것

답이 안 나오는 오류 문의는 유독 여기에 몰려 있어요. "제 폰에서는 되는데요"로 끝난 문의를 모아 보면 판 번호가 같은 경우가 많아요. 그래서 첫 번째 처방은 막는 장치가 아니라 문의 창구에서 앱 판 번호를 함께 받는 것이에요. 이것만으로 원인 파악 시간이 확 줄어요.

세기를 셋으로 나눠서 써요

이름에 강제가 붙어 있지만 실제로는 세기를 골라 쓰는 장치예요. 처음부터 막는 쪽으로 가는 건 거의 항상 손해예요.

세기손님이 겪는 것어떤 때 쓰나
알림화면 위에 "새 판이 나왔어요" 띠가 뜨고, 그냥 쓸 수 있어요화면이 나아졌거나 기능이 늘었을 때. 손해 볼 게 없어요
권함안내 창이 뜨고 "지금 업데이트"와 "다음에"가 함께 있어요불편한 오류를 고쳤을 때. 대부분의 경우가 여기예요
막음안내 창만 뜨고 업데이트 말고는 나아갈 길이 없어요돈이 잘못 계산되거나 손님 정보가 잘못 저장되는 판일 때
되돌림손님은 아무것도 못 느껴요. 방금 켠 막음이 즉시 풀려요최소 판 번호를 잘못 적어서 정상 손님까지 막혔을 때

순서를 지키는 게 요령이에요. 알림으로 2주, 권함으로 2주를 지나면 옛 판에 남는 손님은 아주 적어져요. 그 적은 수만 막음으로 넘겨요. 반대로 처음부터 막으면, 아직 새 판을 못 받은 다수를 한꺼번에 문 앞에 세우게 돼요.

막음은 손님을 문 앞에서 세우는 일이에요

급한 순간에 앱을 열었는데 업데이트부터 하라고 하면, 통신이 느린 자리에서는 그냥 포기해요. 그래서 막음은 돈과 정보가 걸린 판에만 쓰고, 안내 문구에 왜 막았는지 한 줄을 반드시 적어요. 이유 없는 막음은 손님에게 협박처럼 읽혀요.

증상을 알아보고 AI에게 말하기

아래 왼쪽 증상이 반복되면 판 확인 장치를 넣을 때예요. 오른쪽 문장은 다듬지 않고 그대로 스튜디오 채팅에 붙여 쓰면 돼요.

이런 증상이면AI에게 이렇게 말하면 돼요
저는 되는데 손님만 오류가 나요앱이 열릴 때 서버에 현재 판 번호를 물어보게 해 주세요. 서버가 정한 최소 판보다 낮으면 업데이트 안내 화면을 먼저 띄워 주세요
옛 판 손님이 몇 명인지 모르겠어요문의하기와 오류 기록에 앱 판 번호와 기기 종류를 자동으로 함께 남겨 주세요
안내는 띄우되 막지는 않고 싶어요업데이트 안내 창에 지금 하기와 다음에 하기 두 버튼을 넣어 주세요. 다음에를 누르면 하루 동안 다시 묻지 않게 해 주세요
지난 판에서 금액 계산이 틀렸어요최소 판 번호를 서버 설정 한 곳에서 정하게 해 주세요. 그 값보다 낮은 판은 업데이트 화면에서 더 나아가지 못하게 막아 주세요
막음을 켰는데 되돌릴 방법이 없어요막음을 서버 설정으로 켜고 끌 수 있게 해 주세요. 앱을 다시 올리지 않고 바꿀 수 있어야 해요
업데이트 버튼을 눌러도 아무 일이 없어요업데이트 버튼이 각 스토어의 제 앱 페이지로 바로 열리게 해 주세요. 스토어 앱이 없는 기기에서는 브라우저로 열어 주세요
고쳤다는데 손님 화면은 옛 화면이에요새 판을 올리면 손님 브라우저가 옛 화면을 붙들지 않게 해 주세요. 새 판을 발견하면 새로고침 안내 띠를 띄워 주세요
서버를 고치자 옛 판이 전부 멈췄어요옛 판이 보내던 형식도 당분간 같이 받아 주세요. 빠진 칸은 기본값으로 채우고, 옛 형식 요청이 하루에 몇 건인지 기록으로 남겨 주세요
업데이트하라고 미리 알리고 싶어요다음 달부터 옛 판을 지원하지 않는다는 안내를 앱 첫 화면 띠와 알림으로 함께 내보내 주세요. 날짜를 문구에 넣어 주세요

직접 해보기

판 확인부터 붙여 보세요

막음까지 갈 필요 없어요. 판 번호를 확인해서 안내 띠를 띄우는 것까지가 첫걸음이에요. 위 표의 첫 줄과 둘째 줄을 그대로 붙여 보세요. 앱을 아직 안 냈어도, 문의에 판 번호가 함께 오는 것만으로 이득이에요.

스튜디오 열기

웹으로 만든 서비스는 사정이 달라요

바이브캠퍼스에서 만드는 결과물은 대개 브라우저에서 열리는 웹 형태예요. 웹은 스토어를 안 거치니 옛 판 문제가 훨씬 가벼워요. 손님이 다시 접속하면 대개 새 판을 받아요.

그래도 옛 화면이 남는 경우가 있어요. 손님 브라우저가 화면 파일 사본을 들고 있는 경우와, 손님이 탭을 며칠째 안 닫은 경우예요. 앞쪽은 캐시 이야기이고, 처방이 완전히 달라요.

형태옛 판이 남는 기간처방
브라우저로 여는 웹사이트대개 다음 접속까지캐시 설정을 손보고, 새로고침 안내 띠를 띄워요
홈 화면에 추가한 웹앱다음 실행에서 조용히 교체돼요새 판을 감지하면 "새로고침하면 반영돼요" 안내를 띄워요
스토어에 올린 손님이 업데이트할 때까지, 몇 달도 가요판 번호 확인과 안내 화면. 이 문서가 필요한 줄이에요
며칠째 열려 있는 탭손님이 닫을 때까지서버와 판 번호를 주기적으로 맞춰 보고 안내 띠를 띄워요

정리하면, 이 문서가 정말 필요한 건 세 번째 줄이에요. 스토어에 앱을 올린 적이 없다면 새로고침 안내 하나로 충분하고, 업데이트 안내 창은 만들 이유가 없어요.

지금은 신경 쓰지 않아도 되는 때

솔직하게 말할게요. 이 문서를 읽는 사장님 대부분은 강제 업데이트를 만들 필요가 없어요. 필요 없는데 만들면 손님을 막는 스위치만 하나 늘어나요.

내 상황강제 업데이트는
링크로 여는 웹사이트만 있어요필요 없어요. 새로고침 안내 하나면 끝이에요
스토어 앱이 있는데 손님이 스무 명이에요아직이에요. 문의 창구에 판 번호만 함께 받아 두세요
화면 색과 문구만 바꿨어요알림 띠도 필요 없어요. 자동 업데이트가 알아서 해요
지난 판에서 금액이 잘못 계산됐어요지금 필요해요. 막음까지 켜는 몇 안 되는 경우예요
손님 정보가 잘못 저장되는 판이 나갔어요지금 필요해요. 망가진 기록을 되돌리는 게 훨씬 비싸요
서버가 주고받는 형식을 바꿀 계획이에요바꾸기 전에 넣어 두세요. 바꾼 뒤에 넣으면 이미 멈춘 손님에게는 안내가 안 닿아요
앱을 외주로 맡겼어요지금 확인하세요. 최소 판 번호를 서버에서 바꿀 수 있는지 물어보세요

가장 흔한 낭비

앱이 없는데 업데이트 안내 창을 만드는 일이에요. 웹에서는 그 버튼을 눌러도 갈 곳이 없어요. 스토어에 내 앱 페이지가 있을 때만 이 장치가 뜻을 가져요.

켜기 전에 준비할 다섯 가지

  1. 1판 번호를 사람이 셀 수 있게 정해요. 올릴 때마다 하나씩 오르는 숫자면 돼요. 화면에 보이는 이름과 기계가 비교하는 번호를 둘 다 남겨 두면 나중에 비교가 쉬워요.
  2. 2최소 판 번호는 서버 한 곳에 둬요. 앱 안에 적어 두면 그 값을 바꿀 때마다 새 판을 올리고 앱 심사를 다시 기다려야 해요. 서버에 두면 사장님이 오늘 바꿀 수 있어요. 이게 이 장치의 핵심이에요.
  3. 3되돌릴 스위치를 같이 만들어요. 최소 판을 잘못 적으면 정상 손님까지 문 앞에서 막혀요. 끄는 방법이 앱을 다시 올리는 것뿐이면 며칠 동안 장사를 못 해요.
  4. 4문구를 미리 써 둬요. 왜 막았는지, 얼마나 걸리는지, 안 되면 어디로 연락하는지 세 줄이면 충분해요. 사고가 난 날에는 문구를 다듬을 시간이 없어요.
  5. 5옛 판을 잠시 받아 주는 기간을 정해요. 서버가 옛 형식을 함께 받아 주는 동안이 손님이 업데이트할 시간이에요. 이 기간이 없으면 강제 업데이트가 아니라 영업 중단이 돼요.

심사 대기 시간을 계산에 넣어요

급하게 새 판을 올려도 스토어 검토가 끝나야 손님이 받을 수 있어요. 걸리는 시간과 절차, 예외로 빨리 처리해 주는 창구는 스토어마다 다르고 자주 바뀌니 각 스토어 정책 문서에서 확인하세요. 그래서 사고 당일에는 막음보다 서버 쪽 임시 처방이 먼저인 경우가 많아요. 순서는 사고 대응에 있어요.

옛 판이 얼마나 남아 있는지는 감으로 알 수 없어요. 판 번호별 접속 수를 남겨 두면 "지난주에 8퍼센트, 이번 주에 3퍼센트"처럼 줄어드는 모양이 보여요. 그 숫자를 보고 막을 날짜를 정하는 게 정확해요. 무엇을 남길지는 기록 보기에 있어요.

안내 문구가 기술보다 중요해요

손님이 보는 건 판 번호가 아니라 갑자기 앞을 막은 창 하나예요. 그 창에 무엇이 적혀 있느냐가 손님이 업데이트를 누를지, 앱을 지울지를 갈라요. 필요한 건 세 가지예요. 무엇을 고쳤는지, 얼마나 걸리는지, 안 될 때 어디로 연락하는지.

이렇게 쓰면 지워요
업데이트가 필요합니다. [업데이트]

왜 막혔는지 모르니 손님은 앱이 고장 났다고 읽어요. 급한 순간이면 그 자리에서 다른 가게로 가요.

이렇게 쓰면 눌러요
결제 금액이 잘못 계산되는 문제를 고쳤어요. 안전한 결제를 위해 업데이트가 필요해요. 1분쯤 걸려요. 안 되면 문의하기로 알려 주세요. [업데이트] [문의하기]

이유와 시간과 사람이 다 있어요. 손님은 막혔다고 느끼지 않고 챙겨 받았다고 느껴요.

막지 않고 권하는 창이라면 "다음에" 버튼을 반드시 남겨 두세요. 그리고 그 버튼을 누른 손님에게 같은 창을 몇 분 뒤에 또 띄우지 않게 해 주세요. 하루 한 번이면 충분해요. 창을 자주 띄우는 것과 손님이 업데이트하는 것은 관계가 없고, 짜증만 늘어요.

실제로 겪는 장면

장면 1 · 외주 개발자가 말했다

최소 지원 버전을 앱에 박아 뒀어요. 옛 버전은 못 들어옵니다.

절반만 좋은 소식이에요. 막는 장치는 생겼지만 기준값이 앱 안에 있으면 기준을 바꿀 때마다 새 판을 올리고 심사를 다시 기다려야 해요. "그 값을 서버에서 바꿀 수 있게 해 주세요. 그리고 막음을 끄는 스위치도 서버에 둬 주세요"라고 되물으세요.

장면 2 · 같은 문의가 세 번 왔다

결제를 누르면 아무 일도 안 일어나요. 다른 폰에서는 된다는데요.

판 번호를 물어봤더니 세 사람 모두 두 달 전 판이었어요. 고장이 아니라 옛 판이 서버 규약을 못 따라간 거예요. 문의 답변에 판 번호를 묻는 한 줄을 넣는 것만으로 이런 문의의 절반이 그 자리에서 풀려요.

장면 3 · 막음을 켠 날 후기가 쏟아졌다

업데이트 안 하면 아무것도 못 쓰게 만들어 놨네요.

막은 것 자체가 아니라 이유를 안 적은 것이 문제였어요. "결제 금액이 잘못 계산되는 문제를 고쳤어요. 안전한 결제를 위해 업데이트가 필요해요. 1분 걸려요" 이 세 줄이 있으면 반응이 완전히 달라져요.

자주 묻는 것

Q. 요즘은 자동 업데이트를 켜 두는 손님이 많잖아요. 그래도 필요해요?
많이 줄지만 0은 되지 않아요. 자동 업데이트는 대개 와이파이에 연결됐을 때 돌아서, 데이터만 쓰는 손님이나 저장 공간이 꽉 찬 손님은 계속 남아요. 돈과 정보가 걸린 판이면 그 남은 몇 퍼센트가 문제를 거의 다 만들어요.
Q. 사장님이 손님 폰의 앱을 대신 바꿀 수도 있나요?
없어요. 할 수 있는 건 "옛 판으로는 더 나아가지 못하게 하고 스토어로 안내하는 것"까지예요. 실제 업데이트는 손님이 눌러야 해요. 그래서 안내 문구가 기술보다 중요해요.
Q. 예고 없이 바로 막아도 되나요?
기술로는 되는데 손님 반응이 나빠요. 알림과 권함 단계를 거치면 막을 때 남는 인원이 훨씬 적어요. 스토어 정책상 걸리는 대목이 있는지는 각 스토어 정책 문서에서 확인하세요.
Q. 앱에서 결제를 받는데, 잘못된 판이 나갔으면 더 급한가요?
금액이 잘못 계산되는 판은 가장 급한 경우예요. 다만 이미 받은 결제를 취소하고 돌려주는 절차는 스토어 규정을 따라야 하고, 규정과 수수료는 자주 바뀌어요. 절차와 기한은 각 스토어 정책 문서에서 확인하고, 손님에게 알릴 내용은 환불 정책에 맞춰 정하세요.
Q. 웹인데 손님이 옛 화면을 본다고 해요. 같은 문제예요?
아니에요. 그건 업데이트가 아니라 사본 문제예요. 캐시 문서를 보세요. 처방이 완전히 달라요.
Q. 옛 판을 얼마나 오래 받아 줘야 하나요?
정해진 답은 없어요. 판 번호별 접속 수가 줄어드는 모양을 보고 정하는 게 맞아요. 규모가 작으면 몇 주로 짧게 잡아도 되고, 손님이 많으면 다음 두 판까지는 받아 주는 식으로 여유를 둬요.
Q. 업데이트 안내 화면도 심사에서 볼까요?
심사에서는 앱이 정상적으로 열리는지를 봐요. 안내 화면이 조건 없이 항상 떠서 아무것도 못 쓰게 되면 문제가 될 수 있어요. 제출 전에 새로 설치한 상태에서 처음부터 끝까지 한 번 써 보세요. 앱 심사에 점검 목록이 있어요.

확인해 보세요

지난 판에서 결제 금액이 잘못 계산되는 것을 발견했어요. 옛 판 손님이 아직 남아 있어요. 무엇을 고를까요?

하나 더

최소 지원 판 번호를 앱 코드 안에 적어 두면 어떤 일이 생기나요?

더 깊이 (안 읽어도 괜찮아요)

판 번호를 두 개 쓰는 이유 · 손님에게 보이는 이름과 기계가 비교하는 번호를 따로 두는 관례가 있어요. 보이는 이름은 사람이 읽기 좋게 짓고, 비교는 하나씩 오르는 정수로 해요. 보이는 이름만으로 크고 작음을 따지려 하면, 열 번째 판과 아홉 번째 판 중 어느 쪽이 최신인지 기계가 헷갈리는 문제가 생겨요. 앱을 맡길 때 "비교용 번호가 따로 있나요"라고 한 번 물어보면 이 함정을 미리 피해요.

옛 판을 받아 주는 기간이 실은 업데이트 정책의 본체예요 · 서버가 옛 형식을 언제까지 받아 줄지가 진짜 결정이에요. 짧게 잡으면 손님이 문 앞에서 막히고, 길게 잡으면 서버 안에 옛 형식 처리가 층층이 쌓여요. 규모가 커지면 이 기한을 어딘가에 적어 두고, 기한이 지난 것은 실제로 걷어내야 해요. 안 걷어내면 몇 년 뒤에 아무도 이유를 모르는 예외 처리가 남고, 남에게 맡길 때 그것부터 설명해야 해요.

비유가 어긋나는 지점 · 메뉴판은 손님이 받아 들면 그 자리에서 바뀌지만 앱은 그렇지 않아요. 스토어 검토, 통신 상태, 저장 공간, 오래된 기종처럼 사장님이 손댈 수 없는 것들이 사이에 끼어 있어요. 그래서 "새 메뉴판을 쥐어 준다"보다 "새 메뉴판을 가져가라고 안내하고, 옛 메뉴판 손님도 당분간 받아 준다"가 실제에 가까워요. 강제라는 이름이 실제보다 세게 들리는 이유이기도 해요.

이것만 기억하세요

  • ·손님 폰의 앱은 깔린 그날의 판이에요. 고쳐 올려도 저절로 바뀌지 않아요
  • ·세기는 알림, 권함, 막음 셋이에요. 처음부터 막음으로 가지 않아요
  • ·최소 판 번호는 앱이 아니라 서버에 둬요. 그래야 오늘 바꾸고 오늘 되돌려요
  • ·막음은 돈과 정보가 걸린 판에만 쓰고, 이유 한 줄을 꼭 적어요
  • ·스토어 앱이 없다면 새로고침 안내 하나로 충분해요
VibeCampusNew build