[go: up one dir, main page]

데이터를 암호화 하기 위해서는 암호화 할 데이타 와 암호화에 사용할 암호키가 필요합니다. 암호키는 일반적으로 128비트 혹은 256비트 값이 사용되는데, 많은 분들이 암호키로 78 자리의 랜덤 숫자를 기억하기 보다는 짤막한 패스워드 (passphrase) 를 사용하는 편을 더 좋아합니다. 이런 분들을 위해, 안드로이드의 javax.crypto.SecretKeyFactory 클래스에서는 문자열을 이용하여 암호키를 생성하는 방법을 지원하고 있습니다.

하지만, 안드로이드 4.4 부터는 SecretKeyFactory 의 동작 방식에 약간의 변경이 생겼습니다. 만일 여러분의 어플리케이션이 다음과 같은 조건에 해당한다면, 해당 변화로 인해 킷캣 버전에서는 어플리케이션이 정상적으로 동작하지 않을 수 있습니다. 바로 지금 확인해 보시길 바랍니다.
  1. 대칭키를 생성하기 위하여 SecretKeyFactory 를 사용하고,
  2. 키 생성 알고리즘으로 PBKDF2WithHmacSHA1 알고리즘이 사용되며,
  3. 패스워드로 유니코드 문자열을 사용 가능한 경우
안드로이드 4.4 이전에는 PBKDF2WithHmacSHA1 알고리즘을 사용할 때, 패스워드로 제공된 각 캐릭터의 처음 8비트만을 사용하도록 구현되어 있어습니다. 하지만, 안드로이드 4.4 부터는 관련 PCKS #5 표준에서 권장하는대로, 유니코드 문자에 포함된 모든 바이트를 사용하도록 구현이 변경되었습니다. 패스워드로 아스키 문자만을 지원하는 경우 (8비트로 표현 가능한) 에는 이전과 별 다른 차이가 없겠지만, 만일 유니코드 문자열을 패스워드로 사용하고 계셨거나, 사용자가 유니코드 문자열을 패스워드로 사용할 수 있도록 지원하고 계셨다면, 안드로이드 4.4 이후 버전 부터는 SecretKeyFactory 를 통해 생성되는 암호키의 결과가 이전과 달라 질 수 있습니다.

때문에, 킷캣에서는 이전 버전과의 호환성을 유지하기 위하여 캐릭터 비트 데이터의 앞 쪽 8비트 만을 사용하는 암호키 생성 알고리즘 - PBKDF2WithHmacSHA1And8bit 을 추가 하였습니다.  유니코드를 지원하는 패스워드를 사용하고, PBKDF2WithHmacSHA1 알고리즘을 사용하고 계셨던 분들은 하위 호환성을 위해 기존 코드를 다음과 같이 수정하셔야합니다.


import android.os.Build;
 SecretKeyFactory factory;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
   // Use compatibility key factory -- only uses lower 8-bits of passphrase chars
   factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1And8bit");
} else {
   // Traditional key factory. Will use lower 8-bits of passphrase chars on
   // older Android versions (API level 18 and lower) and all available bits
   // on KitKat and newer (API level 19 and higher).
   factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
}


모바일 세상에서 게임은 더이상 몇몇 하드코어 사용자만의 전유물이 아닙니다. 많은 분들 - 안드로이드의 경우 스마트폰과 태블릿을 사용하시는 분들의 4분의 3이 모바일 게임을 즐기고 있다고 합니다. 구글은 게임 개발자 분들을 위해 구글 플레이 게임 서비스를 포함한 여러 도구를 제공 하고 있고, 모바일과 클라우드 분야구글의 강점을 활용해 개발자 분들이 매력적인 게임 경험을 설계하고 구현하는데 보다 집중할 수 있도록 돕고 있습니다. 이러한 노력의 한 가지로 오늘은 구글에서 새롭게 선보이는 세 가지 도구 - 오픈 소스 2D 물리 라이브러리, 유니티 엔진을 위한 구글 플레이 게임 서비스 플러그인,  플레이 스토어의 새로운 게임 카테고리 를 소개해 드리고자 합니다.

LiquidFun, 유체 시뮬레이션을 포함한 강체 물리 엔진 라이브러리

(a rigid-body physics library with fluid simulation)

첫번째로 LiquidFun 프로젝트가 오픈소스로 공개되었습니다. LiquidFun 은 C++ 로 작성된 2D 물리 엔진 라이브러리로 게임 개발자분들이 멋진 물리 효과를 쉽게 적용할 수 있도록 구현되었습니다. LiquidFun 은 잘 알려진 Box2D 물리 엔진을 기반으로 구현되었으며, 티클 기반의 유체 시뮬레이션 기능을 지원합니다. 이를 활용하여 새로운 형태의 게임 플레이를 설계하거나 실감나는 물리 환경을 적용할 수 있고, 상호 작용 가능한 아름다운 장면을 만드는데 유체 시뮬레이션 기능을 활용하실 수 있습니다.

백문이 불여일견. LiquidFun 를 이용하여 구현 된 재미있는 예제를 한번 확인해 보시기 바랍니다.



LiquidFun 라이브러리는 C++로 작성되었고 C++ 컴파일러가 존재하는 어떤 플랫폼 상에서도 활용하실 수 있습니다. 프로젝트 홈페이지에 가보시면, 안드로이드, 리눅스, OSX, 윈도우 상에서 라이브러리를 빌드하는 방법, 간단한 예제 어플리케이션, API 활용법, UnitTest 등 유용한 내용을 확인해 보실 수 있습니다.

구글은 개발자분들이 LiquidFun 라이브러리를 이용해 어떤 멋진 결과물을 만들어낼지 기대하고 있습니다. 최신 버전 라이브러리는 GitHub 의 LiquidFun 프로젝트 페이지에서 다운로드 받으실 수 있고, 라이브러리에 관한 궁금한점이나 최신 뉴스가 궁금하신 분들은 LiquidFun 에 관한 구글 그룹스에 가입하시길 바랍니다.



유니티 엔진을 위한 구글 플레이 게임 플러그인

유니티 테크놀로지스의 유명한 크로스 플랫폼 게임 엔진인 유니티 를 이용하여 게임을 개발하고 계신 개발자 분들은 새롭게 공개된 구글 플레이 게임 플러그인 을 살펴보시기 바랍니다. 이 플러그인을 활용하면 유니티의 소셜 인터페이스를 통해 사인인, 업적, 리더보드, 클라우드 세이브 기능을 활용할 수 있습니다. 안드로이드와 iOS 두 플랫폼 모두를 지원하며 GitHub 의 플레이 게임스 프로젝트 페이지에서 최신 릴리즈 버전과 유용한 문서, 샘플 코드를 살펴보실 수 있습니다.


구글 플레이의 새로운 게임 카테고리

2014년 2월, 플레이 스토어에 새로운 게임 카테고리 세 가지 - 시뮬레이션, 롤플레잉, 교육 이 추가될 예정 입니다. 지금 바로 구글 플레이 개발자 콘솔 상에서 새로운 카테고리를 선택할 수 있으며, 카테고리를 지정해 두시면 카테고리가 일반 사용자에게 공개되는 대로 여러분의 게임이 해당 카테고리에 포함될 것 입니다. 새로운 카테고리를 선택하셔도 2014년 2월 새로운 카테고리가 실재로 공개되기 전까지 현재의 게임 카테고리가 변경되는 것은 아닙니다.

구글 플레이에서 보다 쉽게 태블릿 앱을 만나 보세요

넥서스 7을 비롯한 훌륭한 디바이스들 덕분에, 어느새 세계적으로 7천만대 이상의 안드로이드 태블릿이 사용되고 있으며, 많은 개발자분들이 자신들의 앱을 태블릿에 맞추어 최적화 하고 계십니다. 구글은 성큼 다가온 연말 성수기를 맞이하여, 태블릿 사용자들이 더욱 쉽게 태블릿에 최적화된 앱과 게임을 찾을 수 있도록 플레이의 앱 노출 방법을 개선하였습니다.

11월 21일 태블릿 버전의 플레이 스토어에 다음과 같은 변화가 있었습니다.

올해 초, 구글 플레이에 “태블릿에 최적화 됨(designed for tablets)” 라는 항목이 새롭게 추가되었습니다. 사용자들은 7 인치에서 10인치 사이 태블릿에서 멋지게 보이는 앱을 쉽게 발견할 수 있고, 해당 항목에는 구글이 작년에 소개한 가이드라인과 기준을 통과한 앱들만 포함되어 있습니다. (요약된 내용은 여기서 확인해 보세요.) 실재로 이 기준을 통과한 앱들은 좋은 성과를 내고 있는데, 예를 들어 ”Remember The Milk” 의 경우 “태블릿에 최적화 됨" 항목을 통해 많은 다운로드가 일어났고, 전체 태블릿 앱 다운로드 수치가 83% 증가하였습니다. (전체 내용은 여기서 확인해 보세요.)

11월 21일 태블릿 사용자들이 태블릿에 최적화된 앱을 더 쉽게 발견할 수 있도록 추가적인 변화가 있었습니다. 첫째, 태블릿에서 구글 플레이어 접속하는 경우 '인기 무료', '최고 매출', ‘신규 인기 유로’ 등과 같은 순위 화면에서 '태블릿에 최적화됨 (Designed for tablet)' 항목의 앱 순위가 기본으로 표시됩니다. 물론 태블릿 사용자는 색션 항목에서 ‘모든 앱’ 항목을 선택하면 기존과 같이 모든 앱과 게임 순위를 확인 할 수 있습니다. 둘째, 사용자가 태블릿 상에 앱 정보를 볼 때 만일 “태블릿에 최적화” 되지 못한 앱인 경우에는 앱 제목 아래에 “휴대전화에 적합하게 설계(Designed for phones)” 라는 내용이 표시됩니다. 여러분의 앱이 “태블릿에 최적화" 된 앱으로 분류되는지 아닌지 여부가 궁금하신 분들은 이 블로그 포스트의 다음 항목을 참고 하시기 바랍니다 : )




여러분의 앱은 잘 준비되어 있나요?

여러분의 앱이 “태블릿에 최적화된 앱" 인지 아닌지 여부를 확인하시기 위해서는 ‘구글 플레이 개발자 콘솔’ 에 접속 한 후, ‘최적화 도움말’ 항목을 확인하시면 됩니다. ‘수행할 작업' 탭에 ‘태블릿에 최적화된 앱 설계’ 관련된 내용이 없는 경우 여러분의 앱은 “태블릿에 최적화” 항목에 포함될 것 입니다. 만일 수정해야할 내용이 있는 경우에는 해당 내용을 수정하고 필요한 경우 APK 파일을 다시 업로드 하셔야 합니다.



또 한 가지, 훌륭한 사용자 경험을 제공하는 멋진 태블릿 앱을 계획하고 계신다면, 구글에서 제공하는 ‘태블릿 품질 체크리스트 (번역버전)’ 항목을 꼭 한번 살펴보시기 바랍니다.

안드로이드는 현재 전 세계에서 가장 많이 판매되고 있는 태블릿 플랫폼이며, 점점 더 많은 개발자 분들이 이 새로운 기회를 활용하고 있습니다. 더 큰 화면을 활용하는 멋진 앱을 만들어 사용자에게 새로운 경험을 제공하고 동시에 새롭게 변경된 플레이 스토어를 통해 더 많은 사용자를 확보하고 더 높은 사용자 참여도를 획득할 수 있는 기회를 누리시길 바랍니다.

여러분의 멋진 태블릿 앱을 기대하고 있겠습니다.