개발자

웹뷰에서 앱 버전에 따라 처리하는 방법

2022년 11월 25일조회 616

최근 앱 내 웹뷰가 자주 쓰이고 그 장점이 항상 최신 버전을 유지 할 수 있다는 것으로 알고 있습니다. 그런데 아무리 웹뷰 자체는 최신이더라도 앱의 버전에 따라 분기 처리가 되어야 하는 부분이 없진 않을 것 같습니다 예를 들어 새로운 페이지를 웹뷰로 개발하게 되면 앱에서 딥링크로 접근이 가능하게 연결해주는 로직이 필요하고 이것은 앱을 업데이트 해야 적용될테니 이미 만들어진 웹뷰에서 새로 만들어진 웹뷰로 가는 링크 버튼은 있는데 앱을 업데이트 안해서 접근은 불가능한 경우가 있을 것 같습니다 이렇게 앱 내 웹뷰에서 앱 버전에 따른 처리를 어떻게 하시는지 궁금합니다

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

배민근님의 프로필 사진

해당 로직 처리같은 경우는 앱마다 조금씩 다를텐데요. 아예 대응하지 않은 앱도 사용경험상 있었던 것 같습니다. 저희앱과 저희팀같은 경우는 앱에서 받는 여러 가지 정보 중 앱버전에 관한 정보가 있는 필드가 있습니다. (앱에서 웹뷰로 정보를 전달받는 방법은 좀 다양할 것 같은데 보안상 외부로 사실 따로 공개하진 않습니다.) 해당 정보를 받아 client 내부에서 전역 상태로 관리합니다. 그리고 특정 딥링크가 지원하는 버전이 앱 최소지원버전보다 높다면 지원하는 버전을 상수로 관리합니다. 그리고 사용하는 쪽에서 compare-versions와 같은 라이브러리를 사용한 함수를 이용해 앱버전 비교를 한 후 이후 진행되는 비즈니스 로직을 분기합니다. 딥링크 뿐만 아니라 UI/UX 차이가 있을 때도 해당 분기를 사용하고 있습니다.

profile picture

익명

작성자

2022년 11월 26일

답변 정말 감사합니다! 그러면 이후 앱이 업데이트를 거듭해 갈수록, 지원하는 버전 내에서 두 특정 버전 사이의 차이에 따라 분기 처리할 부분이 점점 많아질 것 같은데 이 부분은 어쩔 수 없이 감수하시는 걸까요? 지금 가장 간단하게 드는 생각으로는 지원하는 UI 나 기능 차이에 대해 삼항 연산자 등의 조건 확인으로 버전에 따라 있거나 없거나로 나누는 로직이 모든 페이지에 걸쳐 점점 많아질 것 같은데 각각 이런 절차가 들어가면 관리도 어렵고 코드도 복잡해질 것 같다는 생각이 듭니다 최소 지원 버전을 높여 그 이하는 업데이트를 강제하면서, 그럼에도 존재하는 차이들은 어쩔 수 없이 각각 대응하시는지 궁금합니다!

배민근님의 프로필 사진

배민근

우아한형제들 웹프론트엔드 개발자2022년 11월 27일

감수한다는 부분이 맞는 것 같습니다. 버전분기를 통해 해결하는 부분이 많아질수록 힘들긴 하나 새롭고 좋은 사용자 경험을 포기할 수는 없으니까요. 다만 웹앱도 한 개가 아닌 여러 웹앱(MFA 같은 구조)으로 웹뷰를 커버한다면 신규 서비스 같은 경우는 의외로 신경쓰지 않고도 만들 수 있습니다. 유지보수와 관리 또한 개발과 운영의 한 부분이므로 힘들거나 복잡하다는 이유로 포기하긴 실 서비스에선 힘들 것 같습니다. 최소지원버전이 OS도 있지만 앱 내에서 앱버전 최소지원버전 체크 로직도 구현해 앱버전으로도 최소지원버전을 올린다면 좀 더 나중에 수월하게 버전업할 수 있습니다.

profile picture

익명

작성자

2022년 11월 29일

그렇군요 말씀해주신 덕분에 의문이 풀렸습니다! 저도 당연히 신경써야 한다고 생각은 하는데 하나하나 각각 대응하기엔 분산된 코드를 관리하고 공유하기 어려울 것 같아 혹시 다른 방법이 있을지 궁금했습니다 앱 최소 지원 버전을 잘 조절해서 대응해봐야겠네요 여담이지만 올해 초 react-query 를 주제로 한 우아한 테크 세미나 너무 잘 들었습니다! 답변 감사합니다!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!