---
title: "모바일 앱에서의 웹 서비스 오류 처리"
date: "2019-07-10"
categories: 
  - "development"
  - "mobile-development"
  - "software"
tags: 
  - "error-handling"
  - "mobile-apps"
  - "web-services"
description: 이 기사에서는 MobileTogether를 사용하여 모바일 앱에서 웹 서비스 오류를 효과적으로 처리하는 방법을 살펴보고, HTTP 오류를 관리하고 사용자 경험을 향상시키는 전략을 자세히 설명합니다.
---
Status: #blog

Tags:  #error-handling #mobile-apps #web-services

Categories: [development](/blog/ko/category/development.md) | [mobile-development](/blog/ko/category/mobile-development.md) 
# 모바일 앱에서의 웹 서비스 오류 처리

스마트폰은 손끝으로 세상의 정보를 얻을 수 있게 해주지만, 아무리 잘 설계된 모바일 앱이라도 외부 서버와의 통신 과정에서 발생하는 웹 서비스 오류로 인해 기능에 문제가 발생할 수 있습니다. 또한, 외딴 지역에서는 간헐적인 휴대폰 서비스로 인해 데이터 검색 시 앱 성능이 저하될 수도 있습니다.

Altova에서 제공하는 [로우코드, 크로스 플랫폼 모바일 앱 개발 도구인 MobileTogether](https://www.altova.com/ko/mobiletogether)는 개발자들이 모바일 앱에서 웹 서비스 오류를 효과적으로 처리할 수 있도록 지원하는 기능을 제공합니다. 이를 통해 최종 사용자가 예기치 않은 앱 중단이나 이해하기 어려운 오류 메시지로 불편을 겪는 것을 방지할 수 있습니다.

이전 게시글에서 MapForce 데이터 매핑을 이용한 HTTP 오류 처리 방식을 설명했습니다. 이번에는 동일한 웹 서비스를 모바일 앱에서 사용하고, MobileTogether를 이용한 오류 처리 방식을 살펴보겠습니다.

![](/blog/images/cbcr_blog_1.jpg)

<!--more-->

MapForce에서 제공하는 "AirportStatus" 예제 데이터 매핑 기능은 3자리 공항 코드를 입력으로 받아, 미국 연방항공청(FAA)에서 제공하는 웹 서비스를 호출합니다. 이 웹 서비스는 해당 공항의 상태 정보와 현재 지연 상황에 대한 설명을 담은 JSON 파일을 반환합니다. 모바일 앱은 사용자에게 공항을 선택할 수 있는 드롭다운 메뉴를 제공하고, 동일한 웹 서비스를 호출하여 결과를 표시할 수 있습니다. 아래는 안드로이드 폰에서 이러한 기능이 어떻게 작동하는지 보여주는 예시입니다

[![안드로이드 폰에서 사용할 수 있는 공항 정보 모바일 앱](/blog/images/screenshot-overview-517x1030.png)](screenshot-overview.png)

"공항 상태" 앱 하단에 있는 버튼을 누르면 미국 연방항공청(FAA) 웹페이지 두 곳으로 바로 연결됩니다. 이 웹페이지들은 추가 정보를 제공하지만, 모바일 환경에 최적화되어 있지 않습니다.

저희는 MobileTogether Designer를 사용하여 이 모바일 앱을 개발했으며, 웹 서비스를 RESTful API 요청을 기반으로 페이지 데이터 소스로 추가했습니다. MobileTogether API 요청 대화 상자는 MapForce의 대화 상자와 매우 유사하며, 공항 코드에 대한 매개변수 정의와 JSON 응답을 위한 헤더 필드가 포함되어 있습니다

[![MobileTogether RESTful API 요청 대화 상자](/blog/images/rest-request-dialog.png)](rest-request-dialog.png)

이 앱의 작동 방식은 매우 간단합니다. 사용자는 드롭다운 메뉴에서 공항을 선택하고, REST Get 요청이 실행되며, 화면이 업데이트됩니다. 이러한 작업은 모바일 앱에서 웹 서비스 오류 처리를 위한 기능을 포함하는 액션 그룹에 의해 수행됩니다

![모바일 앱에서 웹 서비스 오류 처리를 정의하는 방법
](/blog/images/action-group.png)

이 앱을 실행하는 동안 HTTP 오류가 발생하면, 간단하게 메시지 상자를 표시합니다. 개발자는 각 앱의 요구 사항에 따라 오류를 처리하는 세 가지 옵션 중에서 선택할 수 있습니다

**스크립트 중단:** 오류가 발생하면, 해당 작업 그룹의 이후 모든 작업이 중단됩니다. 오류 발생 시 기본적으로 적용되는 동작입니다. 오류에도 불구하고 작업을 계속하려면 "계속" 또는 "예외 발생" 옵션을 선택하십시오.

**계속:** 작업이 중단되지 않습니다. 대신, 개발자는 두 가지 경로를 정의하고, 오류가 없을 때(정상 실행) 또는 오류가 발생했을 때(오류 발생) 실행할 경로를 선택할 수 있습니다.

**예외 발생:** 오류가 감지되면 이 옵션은 예외를 발생시키고, 해당 예외는 "Try/Catch" 액션의 변수에 저장됩니다. "Try/Catch" 액션의 "Catch" 부분은 오류가 발생했을 때 수행할 작업을 지정하는 데 사용됩니다. 오류가 발생하지 않으면 다음 액션이 처리됩니다. MobileTogether Designer의 온라인 도움말에는 "Try/Catch"에 대한 자세한 설명이 포함되어 있습니다. 또한, [이전 블로그 게시물](https://www.altova.com/blog/advanced-error-handling-actions-mobile-apps/)에서도 "Try/Catch"에 대해 설명했습니다.

### 앱 내 정보 표시 제어

이 앱의 화면 구성은 일련의 테이블로 정의되며, 여기서는 MobileTogether 페이지 디자인 창의 일부 화면을 통해 이를 확인할 수 있습니다

![모바일 페이지 디자인 창에서 텍스트와 컨트롤의 레이아웃을 설정합니다](/blog/images/display-definition.png)

이미지 상단에는 공항 선택 드롭다운 메뉴가 있으며, 선택이 이루어질 때 수행될 제어 동작에 대한 설명이 함께 표시됩니다. 이는 동작 그룹을 활성화하는 트리거 역할을 합니다.

[![MobileTogether에서 컨트롤에 동작 추가하기](/blog/images/display-definition-2.png)](display-definition-2.png)

![사용자가 콤보 상자에서 항목을 선택했을 때 수행되는 작업](/blog/images/execute-actions.png)

각 요소의 가시성 속성은 요청으로 반환된 데이터에 따라 화면 표시 방식을 사용자 정의합니다.

### 모바일 앱에서 웹 서비스 오류 처리 기능 테스트하기

이전 게시글에서 우리는 MapForce의 오류 처리를 위한 대체 데이터 매핑 방식을 소개하며, 다양한 오류를 명시적으로 반환하고 그 결과를 검토할 수 있도록 했습니다. 흥미롭게도, 유효한 공항 코드 대신 빈 문자열을 전송함으로써 FAA 웹 서비스에서 오류를 발생시킬 수 있습니다. 드롭다운 메뉴의 마지막 항목은 빈 문자열을 전송하여 오류를 발생시키는데, 아래 그림은 아이폰 앱의 가로 모드에서 이를 보여줍니다

[![모바일 앱에서 웹 서비스 오류 처리 방법](/blog/images/forced-error-1030x476.png)](blob:https://www.altova.com/314bd398-fea4-458f-ab24-14156cfd341f)

사용자는 메시지를 확인한 후 "확인" 버튼을 클릭하여 메시지를 닫을 수 있으며, 이후 다른 공항의 상태를 확인할 수 있습니다

[![아이폰에서 보이는 "공항 상태" 모바일 앱](/blog/images/airport-delay-1-617x1030.png)](airport-delay-1.png)

MobileTogether를 처음 사용하시는 경우, 다음의 [다른 예제와 동영상 데모](https://www.altova.com/ko/mobiletogether/demos)를 참고하여 사용법을 익혀보세요. 또는, [무료로 사용할 수 있는 MobileTogether 디자이너](https://www.altova.com/ko/mobiletogether/download)를 다운로드하여 바로 시작하여 모바일 앱에서 웹 서비스 오류 처리를 구축해 볼 수도 있습니다.
