2015.02.27

모바일 앱에 적합한 데이터베이스를 선택하는 6가지 가이드

Wayne Carter | Computerworld

현대인은 모바일 앱에 많은 부분을 의존한다. 따라서 제대로 작동하지 않는 앱을 사용하지 않는 것은 불 보듯 뻔한 일이다.

인터넷 연결을 필수 조건으로 요구하는 모바일 앱은 시대에 뒤처진 흐름이다. 앱이 인터넷 연결에 의존해 작동된다면 느린 속도와 예측할 수 없는 불안정성이 수반될 수밖에 없다.

그래서 데이터베이스와 클라우드 서비스 제공업체들은 네트워크 의존성을 줄이기 위해 동기화 및 오프라인 기능을 넣고 있다. 코치베이스(Couchbase)의 코치베이스 모바일, 마이크로소프트의 애저 모바일 서비스, 아마존의 코그니토(Cognito), 구글의 파이어베이스(Firebase)는 앱이 온/오프라인을 가리지 않고 작동하는 동기화 기능을 제공한다.

모바일 개발자는 자신의 애플리케이션에 적합한 기술을 어떻게 선택하면 될까? 모바일 솔루션을 평가할 때 가장 중요한 여섯 가지 핵심 기준은 플랫폼 지원, 보안, 모델링 유연성, 충돌 해결, 동기화 최적화, 그리고 토폴로지 지원이다.

플랫폼 지원
어떤 클라이언트 플랫폼이 지원되는가? iOS/안드로이드 외의 추가 플랫폼 지원이 필요한가? 임베디드 시스템이나 IoT 기기, 웨어러블과 같이 전통적인 모바일 범주에서 벗어나는 플랫폼을 지원해야 하는가? 윈도우, OS X 데스크톱과 노트북도 지원해야 하는가? 현재 많은 개발자들이 우선 모바일 앱으로 시작한 다음 네이티브 데스크톱 애플리케이션 또는 웹 앱을 추가하는 방식을 따른다. 따라서 데이터베이스와 클라우드 옵션을 살필 때는 현재뿐만 아니라 미래에 필요한 플랫폼 지원까지 고려하는 것이 중요하다.

저장과 전송 시의 보안
동기화된 분산 스토리지를 사용할 경우 중요한 부분은 데이터 접근, 전송, 저장이 안전하게 이루어져야 한다는 점이다. 완벽을 기하려면 인증, 저장된 데이터, 전송 중인 데이터, 그리고 읽기/쓰기 접근 시 발생할 수 있는 보안 문제를 해결해야 한다.

인증은 유연해야 하며 표준, 공개 및 맞춤 인증 공급자를 사용하도록 허용해야 한다. 익명 접근에 대한 지원 역시 중요하다. 서버 및 클라이언트에 저장된 데이터의 경우 파일 시스템 암호화와 데이터 수준 암호화, 두 가지 모두에 대한 지원이 바람직하다. 전송 중인 데이터의 경우 SSL이나 TLS와 같은 보안 채널을 통해 통신이 이루어져야 한다. 데이터 읽기/쓰기 접근의 경우 데이터베이스에서 사용자가 어떤 데이터에 접근하고 수정할 수 있는지를 세부적으로 제어할 수 있어야 한다.

유연한 모델
효율적이고 적절한 방식으로 앱의 모델 요구 사항을 표현하는 여부는 데이터 모델링의 유연성에 따라 결정된다. 더 중요한 점은 요구 사항이 바뀔 때, 그에 따라 모델을 효율적으로 발전시킬 수 있는가도 유연성에 의해 결정된다는 것이다. 오늘날의 모바일 앱은 매우 빠른 속도로 발전하므로 모델 유연성은 모바일 분야에서 특히 더 중요하다.

앱에 강력한 데이터 일관성이 필요한 경우 또는 서로 밀접하게 관계된 데이터를 사용하는 경우 관계형 데이터베이스가 여전히 좋은 선택이다. 그러나 이러한 요구 사항이 엄격하지 않은 경우라면 NoSQL 데이터베이스가 훨씬 더 높은 유연성을 제공한다.




2015.02.27

모바일 앱에 적합한 데이터베이스를 선택하는 6가지 가이드

Wayne Carter | Computerworld

현대인은 모바일 앱에 많은 부분을 의존한다. 따라서 제대로 작동하지 않는 앱을 사용하지 않는 것은 불 보듯 뻔한 일이다.

인터넷 연결을 필수 조건으로 요구하는 모바일 앱은 시대에 뒤처진 흐름이다. 앱이 인터넷 연결에 의존해 작동된다면 느린 속도와 예측할 수 없는 불안정성이 수반될 수밖에 없다.

그래서 데이터베이스와 클라우드 서비스 제공업체들은 네트워크 의존성을 줄이기 위해 동기화 및 오프라인 기능을 넣고 있다. 코치베이스(Couchbase)의 코치베이스 모바일, 마이크로소프트의 애저 모바일 서비스, 아마존의 코그니토(Cognito), 구글의 파이어베이스(Firebase)는 앱이 온/오프라인을 가리지 않고 작동하는 동기화 기능을 제공한다.

모바일 개발자는 자신의 애플리케이션에 적합한 기술을 어떻게 선택하면 될까? 모바일 솔루션을 평가할 때 가장 중요한 여섯 가지 핵심 기준은 플랫폼 지원, 보안, 모델링 유연성, 충돌 해결, 동기화 최적화, 그리고 토폴로지 지원이다.

플랫폼 지원
어떤 클라이언트 플랫폼이 지원되는가? iOS/안드로이드 외의 추가 플랫폼 지원이 필요한가? 임베디드 시스템이나 IoT 기기, 웨어러블과 같이 전통적인 모바일 범주에서 벗어나는 플랫폼을 지원해야 하는가? 윈도우, OS X 데스크톱과 노트북도 지원해야 하는가? 현재 많은 개발자들이 우선 모바일 앱으로 시작한 다음 네이티브 데스크톱 애플리케이션 또는 웹 앱을 추가하는 방식을 따른다. 따라서 데이터베이스와 클라우드 옵션을 살필 때는 현재뿐만 아니라 미래에 필요한 플랫폼 지원까지 고려하는 것이 중요하다.

저장과 전송 시의 보안
동기화된 분산 스토리지를 사용할 경우 중요한 부분은 데이터 접근, 전송, 저장이 안전하게 이루어져야 한다는 점이다. 완벽을 기하려면 인증, 저장된 데이터, 전송 중인 데이터, 그리고 읽기/쓰기 접근 시 발생할 수 있는 보안 문제를 해결해야 한다.

인증은 유연해야 하며 표준, 공개 및 맞춤 인증 공급자를 사용하도록 허용해야 한다. 익명 접근에 대한 지원 역시 중요하다. 서버 및 클라이언트에 저장된 데이터의 경우 파일 시스템 암호화와 데이터 수준 암호화, 두 가지 모두에 대한 지원이 바람직하다. 전송 중인 데이터의 경우 SSL이나 TLS와 같은 보안 채널을 통해 통신이 이루어져야 한다. 데이터 읽기/쓰기 접근의 경우 데이터베이스에서 사용자가 어떤 데이터에 접근하고 수정할 수 있는지를 세부적으로 제어할 수 있어야 한다.

유연한 모델
효율적이고 적절한 방식으로 앱의 모델 요구 사항을 표현하는 여부는 데이터 모델링의 유연성에 따라 결정된다. 더 중요한 점은 요구 사항이 바뀔 때, 그에 따라 모델을 효율적으로 발전시킬 수 있는가도 유연성에 의해 결정된다는 것이다. 오늘날의 모바일 앱은 매우 빠른 속도로 발전하므로 모델 유연성은 모바일 분야에서 특히 더 중요하다.

앱에 강력한 데이터 일관성이 필요한 경우 또는 서로 밀접하게 관계된 데이터를 사용하는 경우 관계형 데이터베이스가 여전히 좋은 선택이다. 그러나 이러한 요구 사항이 엄격하지 않은 경우라면 NoSQL 데이터베이스가 훨씬 더 높은 유연성을 제공한다.


X