개발자
안녕하세요! 장고로 백엔드 서버를 개발하고 RN로 프론트엔드 앱을 개발하고 있습니다..! 프로젝트 초반이라 요구 사항이 자주 변경되어서 테이블을 재설계하거나 api 응답 스키마(serializer)를 수정하는 상황이 빈번하게 발생하고 있습니다. 백엔드 서버는 배포시에 바로 반영이 되지만, 앱 배포의 경우 앱스토어의 심사 + 자동 업데이트로 인해 2~3일 정도의 간극이 발생합니다. 이로 인해 백엔드 응답 스키마가 앱의 old 버전과 일치하지 않아 문제가 발생합니다 ㅠㅠ 현업에서는 이런 문제를 사전에 어떻게 방지하는지, 배포 파이프라인을 어떻게 구성하는지 궁금합니다..! 제가 조사한 바로는 base_url에 버전을 표시하거나 (../api/v1/…), http header에 버전을 명시해서 라우팅을 해주는 것으로 알고 있는데요. 요구사항에 대한 변화가 잦다 보니 더 좋은 방법이 있을까 싶어거 여쭤봅니다..! 읽어주셔서 감사합니다😆
답변 1
현실적으로 쉬운 방법은 호환이 안될정도로 스키마 차이가 많이날 정도의 업데이트라면 강제 업데이트를 진행하는게 가장 좋아보입니다. api response에 current version이랑 force update 프래그 넣어서 app current version이랑 다르면 강제업데이트 모달 띄워서 업데이트 시켜주면 됩니다. UX가 중요하다면 말씀해주신대로 api version을 올려서 진행하시거나 front쪽에서 핸들링을 해주고 백로그로 남겨서 추후에 대부분의 사용자가 앱을 업데이트 했다면 제거해주셔도 됩니다.
성대규
작성자
카이스트 전산학부 • 6월 16일
답변 감사합니다..!🙏 혹시 앱 심사중에 생기는 간극에 대한 해결 방법은 있을까요..? 앱이 심사 완료되면 백엔드를 배포하는게 가장 쉬운 방법 같은데, 저희가 크로스플랫폼이라 앱스토어와 플레이스토어 심사 기간이 다를 수 있어서요!
문정동개발자
프론트엔드 • 6월 18일
앱스토어 / 구글플레이 모두 심사 끝나면 자동으로 배포하는게 아닌 개발자가 출시 버튼을 클릭해서 배포하는 기능을 수동배포 기능을 제공합니다.
성대규
작성자
카이스트 전산학부 • 6월 18일
그렇군요 force update와 수동 배포면 해결될 것 같습니다 감사합니다..!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!