PrivacyChecker

Android 앱을 100% 안전하게 지킬 방법이야 없겠지만 간단하게 library를 추가하는 것으로 일정 이상의 안정성을 보장한다면 why not?

2016/05/30 Editor’s choice

javiersantos/PiracyChecker
_PiracyChecker - An Android library that prevents your app from being pirated / cracked using Google Play Licensing (LVL…_github.com


원리는 의외로 간단

개발자는 아래의 사이트에서 영감을 얻은 거 같습니다.

Android Security: Adding Tampering Detection to Your App
_FREE WORKSHOP: Android SecurityScott Alexander-Bown is giving a free virtual workshop on the fundamentals of Android…_www.airpair.com

가장 큰 핵심을 요약하자면, run-time 시에 인증서 서명을 확인하는 것과, 인스톨러의 검증, 디버깅 환경인지 확인을 하는 것 이 세가지 정도라고 보여지는데, 저기에다 더해 구글 라이센싱 검증부터 확인하면서 라이브러리는 시작됩니다.

Google Play Licensing 검증

new PiracyChecker(this)  
.enableGooglePlayLicensing("BASE\_64\_LICENSE\_KEY")  
.start();

인증서 검증

new PiracyChecker(this)  
.enableSigningCertificate("478yYkKAQF+KST8y4ATKvHkYibo=") // The original APK signature for the PRODUCTION version  
.start();

인스톨러 검증

new PiracyChecker(this)  
.enableInstallerId(InstallerID.GOOGLE\_PLAY)  
.enableInstallerId(InstallerID.AMAZON\_APP\_STORE)  
.start();

위에서 본 것처럼 진행할 수 있습니다.

모두들 이미 하고 있는 것?

아마, 출시 버전들을 위해서 여러 작업들이 선행되고 있는 회사들에서는 더 좋은 대안들을 가지고 있을 수 있다고 보여지지만, 인디회사의 경우에는 도움이 될 거 같은 라이브러리입니다.

모든 경우에 가능한가요?

아마도, 많은 회사에서 구글 플레이를 통해 배포를 하지 않는 경우가 많은 걸로 알고 있습니다. 이런 경우에는 별로 도움이 안될 수는 있겠네요.


어떤 라이브러리를 이용하나요?

일단 Google Playe License의 경우는 com.google.android.vending.licensing 라이센싱 패키지가 필요하고, 인증서의 경우는 java.security 패키지를 참조해서 소스가 짜여져 있습니다.

javiersantos/PiracyChecker
_PiracyChecker - An Android library that prevents your app from being pirated / cracked using Google Play Licensing (LVL…_github.com

Licese Checker를 활용하는 소스입니다.

javiersantos/PiracyChecker
_PiracyChecker - An Android library that prevents your app from being pirated / cracked using Google Play Licensing (LVL…_github.com

인증서를 확인하는 부분입니다.

Medium 블로그에 github 관련해서는 소스를 읽으면 스니펫을 받아오는 기능이 있으면 더 좋을 거 같군요.

By Keen Dev on May 30, 2016.

Exported from Medium on May 31, 2017.

blueocean-plugin

원피스는 내꺼임

반가운 얼굴이죠. 여러가지 CI 빌드 툴이 Jenkins의 아성을 위협하고는 있지만, pipeline 까지 집어 넣으면서 절치부심 새로운 버전을 준비하고 있는 jenkins 입니다.

Jenkins UX가 하지만 그닥 좋지 않다고 생각한 것은 저 뿐만이 아니라 개발자들도 그랬나 봅니다. blueocean은 젠킨스의 새로운 UX를 위한 프로젝트입니다.

2016/05/28 Editor’s choice

jenkinsci/blueocean-plugin
_blueocean-plugin - Blue Ocean UI app_github.com


설치하기

최근 Npm 및 레일즈 생태계를 보면서 아 dependency가 정말 복잡해졌어. 라고 여러군데 이야기를 했었죠.

정정하겠습니다.

$ mvn clean install

을 실시하면 수도 없는 mvn 빌드 artifact들이 그 모습을 드러내며 경악 시킵니다. 뭐 하지만 상당히 놀라운 사실은 retry옵션 이 있어서 그나마 낫다는 사실.

하지만, Java 생태계의 강점은 안정성(응?) 이라 어쨌든 설치가 됩니다.

실행하기

$ cd blueocean-plugin  
$ mvn hpi:run

로 실행을 하면 8080 포트로 Jenkins 가 뜹니다.

처음 접속하면 모두들 눈에 익은 플러그인 설치까지 할 수 있습니다.

기다리면

또 기다리면

이런 화사한 화면을

일단은 파이프 라인 대시보드만 볼 수 있습니다.

어드민 프로그램으로 Job을 하나 만들어 보면

파이프 라인 첫 화면으로 들어올 수 있습니다.

세팅을 잘 하면 아래와 같은

또 아래와 같은

화면들을 볼 수 있다는데

아직은 Pipelines 밖에 보이지 않고 진행 중에 섭다가 지속적으로 일어나다 심지어는 admin패스도 날려 버려 더 진행이 안되는군요.


그럼에도 불구하고

이쁘다! 라는 것을 알 수 있고, 거기에만 국한 되는 것이 아니라 Pipeline에 대한 UX를 한층 높였다는 점에서 일단 점수를 주고 싶네요.

UI 프레임 워크는 React를 사용했다고 합니다. ES6, React,NPM등을 언급합니다.


JDL

Jenkins 는 확장성을 높이기 위해 Jenkins Description Language라는 것을 제안했는데 React Component 기반이라고 하는군요.

Modern JavaScript toolchain

Jenkins는 개발자들이 ES6, React,NPM등을 사용할 수 있도록 툴 체인을 제공한다고 하네요.

Client side Extension points

Extension point 를 통해 플러그인을 연결할 수 있다고 하는데 여기도 온통 React 얘기군요.

Server Sent Events

Using server-sent events
_Developing a web application that uses server-sent events is quite easy. You’ll need a bit of code on the server to…_developer.mozilla.org

SSE는 서버에서 보내는 이벤트를 받아 UI를 업데이트 하는 스펙인데 IE 말고는 모두 지원하는군요.

젠킨스를 사용하는 사람들은 SSE가 왜 필요한지는 다들 아실테죠.


Pipeline 이 잘 정의되기 시작하면 Continuous Delivery를 넘어 Devops 의 완성을 향해 갈 수 있죠. 훌륭한 프로젝트의 완성을 위해 꼭 주목해야 하는 프로젝트 입니다.

By Keen Dev on May 29, 2016.

Exported from Medium on May 31, 2017.