2015년 9월 17일 목요일

모바일 소프트웨어 개발을 위한 모바일 프레임워크

프레임워크는 다양한 형태로 해석됩니다. 구조적으로 고정된 자산을 재활용할 수 있도록 하는 것을 나타내기도 하고, 애플리케이션의 특정 기능을 모아 추가적인 사용자 코드를 통해 소프트웨어를 완성하는 플랫폼을 말하기도 합니다. 역할로 살펴본다면, 프레임워크는 필수적이고 표준적인 부분을 설계하고 구현하도록 도움을 주는 반제품 소프트웨어라고 할 수 있습니다.

프레임워크를 사용하는 장점은, 공통적으로 사용되는 구조를 그대로 재사용하면서 애플리케이션 부분만 추가해서 사용하기 때문에 빠르고 효율적인 개발이 이루어 질 수 있고, 이미 검증된 프레임워크이기 때문에 애플리케이션의 코딩과 테스트가 용이합니다. 하지만, 프레임워크의 기능이 업그레이드 되면서 점점 볼륨이 커지는 현상도 종종 나타납니다. 이 경우, 사용하지 않는 기능이 프레임워크에 적용되면서 불필요한 자리만 차지하기도 합니다.
 
최근에는 웹과 모바일을 구분하지 않고 사용하는 디바이스에 따라 UI 형태만 다르게 서비스하는 형태가 많아지고 있어 기존에 사용 중이던 웹 기반 프레임워크를 재사용하여 모바일 서비스를 구축하는 경우도 많아지는 추세입니다. 이번 회에서는 모바일 프레임워크의 구성과 활용에 대해 사례를 들어 알아보겠습니다.

모바일 프레임워크의 선택과 구성
프레임워크 없이 애플리케이션을 개발한다는 것이 점점 힘들어 지고 있습니다. 하루가 다르게 늘어가는 프레임워크들에서 효과적으로 모바일 프레임워크를 선택하는 방법에 대해 알아봅니다. 구축하고자 하는 소프트웨어에 따라 조금씩 다를 수는 있겠지만 “The Curious Coder's Java Web Frameworks Comparison!”에서 가이드 한 것을 6가지 정도로 정리하여 <표1>과 같이 나타냈습니다.
<표 1> 프레임워크의 선택 요소

글로벌 IT 기업의 新 랭귀지 개발 동향

주머니 속에서 실수로 휴대전화 통화버튼을 누른 경우를 의미하는, '포켓 다이얼', 지하철 의자에서 다리를 심하게 벌리는 남자를 뜻하는 ‘쩍벌남’, 배가 고파서 신경이 날카로워진 상태를 합친를 말하는 '행그리'(헝그리 + 앵그리) 등의 단어가 옥스퍼드 영어사전에 새롭게  등재되었습니다. 시나브로 사라지는 말이 있는가 하면 새롭게 창조되어 떠오르는 말이 있습니다. 컴퓨터 프로그래밍에서도 기술 발전과 시대의 변화, 즉 사용자 요구 변화에 따라 그에 부응하는 새로운 언어를 탄생시키고 있습니다(그림1). 

<그림1>  프로그래밍 언어의 변천사


지금까지 탄생한 프로그래밍 언어는 공통적으로 구문, 이름, 타입, 의미라는 4가지 구성 요소를 포함합니다. 세상에 없던 새로운 프로그래밍 언어를 개발한다면 당분간 이 구성요소를 고려해야할 것입니다. 
  1. 구문(Syntax): 식의 구조, 언어의 구조를 지배하는 규칙들. 즉, 문법(grammar)이다.
  2. 이름(Names): 변수, 함수, 클래스 등의 이름
  3. 타입(Types): 정수, 실수, 문자, 불린 등   여러 종류의 데이터를 식별하는 분류. 또한, 가능한 값, 수행 가능한 명령, 데이터 의미, 값의 저장 방식을 결정
  4. 의미(Semantics): 코드를 통해 표현하려는(의도하는) 것. 구문(문법)은 맞지만 의미의 오류로 의도와 다른 결과를 얻을 수 있다.
최근 소프트웨어 개발에서 가장 많이 사용되고 있는 언어들의 순위를 보면 2015년 9월 기준으로 Java가 1위를 차지했습니다. 이 순위는 단순히 사용 빈도가 높다는 것을 뜻할 뿐, 해당 언어가 가장 우수하다는 것을 말하지는 않습니다. 개발 목표, 서비스 목표, 유지보수 목표 등에 따라 선별해서 개발 언어를 채택해야 합니다. 

사물인터넷(IoT) 보안의 주요 기술

불과 5년 전만 해도 IT 기술이 우리에게 주는 생활의 편리함은 이루어 말할 수 없을 만큼 새로운 패러다임이었습니다. 그러나 그 신선했던  IT 기술은 일상이 되어 버렸고, 보편화가   되면서 사람들은 지금, 더 편리한 서비스와 기술들을 요구합니다. 가령, 컴퓨터로만 인터넷을 검색했던 사람들이 이제는 스마트폰으로  쉽게 정보를 찾을 수가 있습니다. 하지만 이제는 역설적으로 정보가 차고 넘쳐 나기 때문에 정보를 찾는 것도 또 하나의 일이며 귀찮은 것으로 여겨질 때가 많습니다. 그렇기 때문에 예전에는 사람들이 직접 정보를 찾았다면, ‘사물인터넷 시대’에는 정보가 먼저 사람을 찾게 됩니다. 내가 즐겨 찾는 매장이나 자주 가는 여행지가 있다면, 이러한 이력 및 data들을 알아서  모아주고 패턴 분석을 하고 그 결과,  나에게 맞는 맞춤형 서비스로 제공되는 것입니다. 사물인터넷이 이러한 것들을 가능하게 하는 핵심 요소로 ‘무선 통신’이 있습니다.
 하지만 그런 무선통신을 이용한다는 특성 때문에 ‘정보보안’이라는 불안요소가 항상 따라다니게 됩니다. 사물인터넷 보안에 대해 장성균 개발자에게 그 주요기술에 대한 자세한 설명을 요청했습니다.

 1. 사물인턴넷 정보보안의 특징
 2. 보안 기술요소 - 암호화 알고리즘, 시큐어코딩(Secure Coding)
 3. 더 나은 솔루션에 대한 tip