안드로이드 - Mockito cannot mock this class.. 에러 해결 방법

Android Studio에서 Mockito로 테스트 코드를 구현하다 Mockito cannot mock this class - IllegalArgumentException 에러를 만났습니다. 문제는 라이브러리 설정을 잘못한 것이었습니다. mockito-core와 mockito-android를 모두 추가하니 문제없이 동작하였습니다.

25 Nov 2019

Java - Thread 우선순위(Priority)를 설정하는 방법

쓰레드(Thread)마다 우선순위(Priority)를 다르게 설정할 수 있습니다. 시스템이 busy할 때 우선순위가 높은 쓰레드에게 먼저 CPU를 할당해 줍니다. 우선순위는 1부터 10까지의 숫자로 설정할 수 있으며 MIN_PRIORITY, NORM_PRIORITY, MAX_PRIORITY의 static 변수를 제공합니다.

17 Nov 2019

React Adsense 라이브러리 소개(GatsbyJs에 adsense 광고 붙이는 방법)

react-adsense를 이용하여 React에서 Adsense 광고를 붙이는 방법을 소개합니다. 이 블로그는 GatsbyJS로 구현하였으며, React를 기반으로 만들어진 정적 사이트 생성기입니다. AdSense.Google 클래스에 몇몇 인자만 전달하면, 알아서 html 코드를 생성해 줍니다.

12 Nov 2019

Gradle - Jar 라이브러리에서 일부 클래스를 삭제하는 방법 (duplicated dependency 문제 해결)

gradle exclude를 이용하여 중복되는(duplicated) 클래스를 제거할 수 있습니다. 하지만 jar 파일은 Transitive Dependencies가 없기 때문에 이렇게 제거할 수 없었습니다. 저는 jar파일의 압축을 풀고 의존성 파일을 제거한 후 다시 jar로 압축하는 방법으로 구현하였습니다. gradle task로 자동화하였습니다.

10 Nov 2019

안드로이드 - Platfom key로 App 서명(signing)하는 방법

signapk.jar, platform.x509.pem와 platform.pk8로 앱을 platform key로 서명할 수 있습니다. 안드로이드의 Platform key로 App을 Signing하면 플랫폼에서만 허용가능한 퍼미션을 얻을 수 있습니다. 안드로이드 시스템과 동일한 sharedUserId로 설정할 수 있습니다.

10 Nov 2019

Android - MultiDex 적용하는 방법

AndroidX를 사용할 때 앱을 MultiDex로 설정하는 방법을 소개합니다. 안드로이드 코드는 dex라는 파일로 컴파일이 됩니다. dex는 65,535개의 메소드만 컴파일이 됩니다. 이를 초과하는 앱을 생성하면 MultiDex로 설정하여 Apk파일에 dex가 두개 이상으로 컴파일되도록 해야 합니다.

10 Nov 2019

Java - FixedThreadPool(ThreadPoolExecutor) 사용 방법

newFixedThreadPool()로 고정된 쓰레드 개수의 쓰레드풀을 생성할 수 있습니다. ThreadPoolExecutor로 리턴되며, 이 Threadpool에 Task를 추가하여 병렬처리할 수 있습니다. shutdown(), shutdownNow(), awaitTermination() 등의 함수를 제공하여 작업이 완료되는 것을 기다릴 수 있습니다.

09 Nov 2019

clean-css로 CSS 파일을 경량화(minify)하는 방법

clean-css는 CSS 파일을 경량화(minify)하는 nodejs 기반의 프로그램입니다. CLI버전을 사용하면 쉘에서 파일을 minify할 수 있습니다. nodejs버전을 설치하면 자바스크립트에서 사용할 수 있습니다.

06 Nov 2019