All Posts

안드로이드 - Clean Architecture 연습하기

평소에 코드의 가독성을 향상시켜주고, Boilerplate 코드를 줄여주며, 유지보수가 쉽게 만들어주는 기술들을 배우려고 노력했습니다. Fernando님의 블로그를 보면서 공부하는데 도움이 되었습니다. 샘플앱은 MVVM, FP, Dagger2, AAC 등의 기술을 사용합니다. 그리고 확장성, 모듈화, 테스트 가능한 코드를 만드는데 좋은 구조를 알려줍니다.

13 Oct 2019

안드로이드 - Parcelable을 구현하여 Intent로 데이터를 전달하는 방법

Parcel은 추상화된 객체로 데이터와 객체를 갖고 있는 컨테이너입니다. 프로세스간 데이터를 전달하려면 클래스에 Parcelable을 구현해야 합니다. 안드로이드는 내부적으로 Parcel 객체를 marshall/unmarshall을 수행하여 다른 프로세스에 전달해 줍니다. Parcelable을 구현했다면 인텐트를 통해 다른 프로세스로 전달할 수 있습니다.

09 Oct 2019

Git - Patch 만들기 & 적용하기

리눅스 개발환경에서 패치를 만드는 방법과 적용하는 방법을 알아보겠습니다. git format-patch로 패치를 만들 수 있으며 git am 으로 적용할 수 있습니다. git diff에 대해서 패치를 만들 수 있으며 이런 경우 patch -p1 으로 패치 적용을 해야 합니다.

07 Oct 2019

안드로이드 - systrace로 성능 분석하는 방법

안드로이드의 systrace는 시스템 성능을 분석하기 위한 툴입니다. 안드로이드 플랫폼에는 atrace라는 모듈이 있는데, systrace는 이 모듈에 trace를 추출하도록 요청합니다. 파일로 trace가 추출되면, Chrome 브라우저에서 결과를 확인할 수 있습니다.

06 Oct 2019

Maven으로 Java프로젝트 build하는 방법 (리눅스)

오픈소스(Dagger)를 공부하던 중에, sample app을 maven으로 빌드해야 했습니다. pom.xml은 maven의 빌드 설정 파일로, 이 파일이 있으면 maven으로 빌드를 해야 합니다. 리눅스에서 maven으로 java 프로젝트를 빌드하는 방법을 소개합니다.

06 Oct 2019

안드로이드 - Cleartext HTTP ... not permitted 예외 해결 방법

Exoplayer에서 Http의 mp3파일을 스트리밍하려고 했는데, Cleartext HTTP traffic to www.soundhelix.com not permitted와 같은 에러를 만났습니다. 원인은 Android Pie부터 Http 접근을 허용하지 않기 때문입니다. usesCleartextTraffic=true로 설정하면 Http 접근이 허용 됩니다.

06 Oct 2019

안드로이드 빌드 에러 - Calls to Java default methods are prohibited in JVM target 1.6

안드로이드 스튜디오를 코틀린 코드를 빌드하면서 아래와 같은 에러를 만났습니다. calls to Java default methods are prohibited in JVM target 1.6. Recompile with -jvm-target 1.8. build.gradle에서 java 버전을 변경하면 에러가 해결됩니다.

06 Oct 2019

Android - File-Based Encryption과 Direct Boot

Encryption은 데이터를 암호화하는 과정을 말합니다. Full-Disk Encryption, File-Based Encryption가 있습니다. Direct Boot는 File-Based Encryption에 실행되는 앱을 지원하기 위한 정책입니다. Encryption와 Direct Boot에 대해서 알아보겠습니다.

05 Oct 2019