Ubuntu - kernel 업데이트하는 방법 (manually)

Ubuntu에서 apt를 이용하여 커널을 설치하는 방법을 소개합니다. 보통 Software & updates 프로그램으로 최신 커널로 업데이트할 수 있습니다. 하지만 직접 터미널로 커널을 설치할 수도 있습니다. 또한 grub을 통해 부팅할 때 커널 버전을 선택할 수 있도록 만들수도 있습니다.

23 Jan 2020

Andriod - 커스텀 퍼미션을 정의하는 방법

일반적으로 안드로이드 퍼미션을 사용하지만, 앱에서도 커스텀 퍼미션(Custom permission)을 만들 수 있습니다. AndroidManifest.xml에서 퍼미션 선언은 permission tag를 사용하며, 반대로 다른 앱에서 선언한 퍼미션을 사용하려면 use-permission으로 정의할 수 있습니다. 예제를 통해 퍼미션을 등록하고 사용하는 방법에 대해서 알아보겠습니다.

21 Jan 2020

Linux - Hardware 정보를 보여주는 명령어

Linux에서 PC의 하드웨어 정보를 확인하는 명령어를 정리하였습니다. lscpu, lshw, hwinfo 명령어는 하드웨어 정보를 출력해 줍니다. 또한 lsblk, df, free 등의 명령어는 파일시스템의 disk 사용량이나 현재 메모리의 사용량을 보여줍니다.

19 Jan 2020

Java - Stack trace 출력하는 방법 (Throwable, Exception)

Java에서 Throwable 객체로 콜스택을 출력할 수 있습니다. 현재 코드 위치까지 어떤 함수들을 거쳐왔는지 보여주는 것을 Stack trace라고 합니다. Java 코드를 보면 Exception은 Throwable을 상속받습니다. Exception 객체도 Throwable의 메소드를 이용하여 Stack trace를 출력할 수 있습니다.

17 Jan 2020

Java - AtomicReference 사용 방법 및 예제

AtomicReference는 V 클래스(Generic)의 객체를 wrapping 클래스입니다. AtomicReference 클래스는 멀티쓰레드 환경에서 동시성을 보장합니다. AtomicReference는 synchronized 보다 적은 비용으로 동시성을 보장할 수 있습니다.

17 Jan 2020

Java - OpenCsv로 CSV 파일 읽고 쓰는 방법

Java에서 CSV 파일을 읽거나 쓸 때 OpenCsv라는 라이브러리를 사용할 수 있습니다. 저는 간단한 CSV 파일만 생성하려고 했기 때문에, 읽고/쓰는 방법만 구현해보았습니다. 사이트에 들어가서 예제를 보시면, 고급스러운 방법으로 효율적인 CSV 파일을 만들 수 있도록 가이드를 합니다.

15 Jan 2020

Linux - df, du 명령어 정리 (파일, 디스크 용량 확인)

리눅스 터미널에서 디스크의 용량을 확인하거나 파일의 용량을 확인할 때 df, du 명령어를 사용합니다. df는 전체 파일시스템의 크기를 확인할 때 사용하고, du는 현재 디렉토리에 대한 크기를 알아볼 때 사용합니다. 자주 사용하는 df와 du 명령어에 대해서 정리하였습니다.

15 Jan 2020

Robolectric으로 Unit Test 작성하기

Robolectric은 Android 코드를 JVM에서 Unit test하는데 사용하는 테스팅 프레임워크입니다. Android Studio의 Unit test도 JVM에서 테스트를 수행하지만, Android SDK는 아무 동작도 하지 않는 stub, android.jar를 사용합니다. 에뮬레이터나, 디바이스에서 직접 테스트하지 않기 때문에 속도가 빠릅니다.

11 Jan 2020