본문 바로가기
[도서 목차 정리] Kotlin in action [도서 목차 정리] Kotlin in action Kotlin in action 을 공부하면서 정리한 내용입니다.Java 를 어느 정도 이해하고 숙달한 사람들이 이해하기 좋습니다.Java 와 동일하거나 너무 당연한 기본적인 내용은 정리하지 않았습니다. Kotlin 소개 - Kotlin : what and why Kotlin 기초 #1 - Chap2. Kotlin basics Kotlin 기초 #2 - Chap2. Kotlin basics 함수 정의하고 호출하기 #1 - Chap 3. Defining and calling functions 함수 정의하고 호출하기 #2 클래스, objects, 그리고 인터페이스 #1 - Chap4. Classes, objects, and interfaces 클래스, obje.. 2017. 9. 25.
[Kotlin Tutorial] Annotation 과 Reflection #2 [Kotlin Tutorial] Annotation 과 Reflection #2 참조 : Kotlin in action 10.2. Reflection: introspecting Kotlin objects at runtime -Kotlin 에서의 reflection 은 java.lang.reflect package 의 API 들과 kotlin.reflect package 의 API 들을 사용한다.Kotlin 의 reflection 은 Java 에 없는 nullable type 이나 properties 들의 접근을 가능하게 한다. -runtime lib 의 size 를 줄이기 위해, kotlin 의 reflection API 는 kotlin-reflect.jar 라는 별개의 jar 로 pakcage 되어 있.. 2017. 9. 12.
[android] Kiosk mode app 을 만들자! [android] Kiosk mode app 을 만들자! http://www.andreas-schrade.de/2015/02/16/android-tutorial-how-to-create-a-kiosk-mode-in-android/ -Kiosk mode 가 무엇을 말하는가?다른 앱은 실행되지 않는 single app 만 실행하는 그런 앱을 이야기한다. -고려해야 할 상황들은 다음과 같다. back button home button recent app button power button volume button -먼저 kiosk 는 부팅과 동시에 해당 앱이 시작되어야 하기 떄문에, boot complete br 을 처리해야 한다. @Manifest @BootReceiverpublic class BootRec.. 2017. 8. 7.
[Java Concurrency] 단일 연산 변수와 넌블로킹 동기화 [Java Concurrency] 단일 연산 변수와 넌블로킹 동기화 - 병렬 알고리즘과 관련한 최근의 연구 결과를 보면 대부분이 넌블로킹 알고리즘, 즉 여러 스레드가 동작하는 환경에서 데이터의 안정성을 보장하는 방법으로 락을 사용하는 대신 저수준의 하드웨어에서 제공하는 비교 후 교환(compare-and-swap) 등의 명령을 사용하는 알고리즘을 다루고 있다. - 넌블로킹 알고리즘은 운영체제나 JVM 에서 프로세스나 스레드를 스케줄링 하거나 가비지 컬렉션 작업, 그리고 락이나 기타 병렬 자료 구조를 구현하는 부분에서 굉장히 많이 사용하고 있다. - 넌블로킹 알고리즘은 락을 기반으로 하는 방법보다 설계와 구현 모두 훨씬 복잡하며, 대신 확장성과 활동성을 엄청나게 높여준다. - 넌블로킹 알고리즘은 훨씬 세밀.. 2017. 5. 9.
[Effecitve Java] 리플렉션보다는 인터페이스를 사용하자. [Effecitve Java] 리플렉션보다는 인터페이스를 사용하자. - 리플렉션은 여러모로 강력한 기능을 제공한다. 하지만 이런 강력함은 다음의 대가들을 수반한다. 컴파일 시점에 가능한 타입 확인의 장점이 없어진다. 재귀적인 접근을 필요로 하는 코드는 알아 보기 어렵고 길다. 처리 성능이 늦다. - 사실 리플렉션은 컴포넌트 기반의 어플리케이션 개발 도구용으로 설계되었다. 따라서 일반적으로 런타임에서는 리플렉션을 이용해서 재귀적으로 사용하면 안된다. - 리플렉션이 필요한 복잡한 애플리케이션은 다음과 같다. 클래스 브라우저 객체 조사기 코드 분석 도구 RPC - 리플렉션을 지극히 제한된 형태로만 사용하여 비용이 거의 수반되지 않도록 한다면 리플렉션의 많은 장점을 얻을 수 있다. 예를 들어 컴파일 시점에는 쓸.. 2017. 2. 13.
[Java] writeObject 와 readObject 는 무엇인가? [Java] writeObject 와 readObject 는 무엇인가? 참조 : http://www.javablogging.com/what-are-writeobject-and-readobject-customizing-the-serialization-process/ - serialize 하고 싶은 객체에 Serializable interface 만 implements 해주면 serialize 가 가능하다. -ObjectOutputStream 을 이용하여 stream 형태로 만들어 file 에 쓰거나 전송할 수 있다. - transient 나 static 으로 마크되지 않은 필드들은 모두 serialized 된다. - 기본적인 serialization 에 추가적으로 어떤 조치를 취하고 싶다면 아래와 같이 w.. 2016. 10. 25.
getter / setter 장단점 Getter / Setter 장단점 [ 장점 ] * 단순히 get, set 뿐만이 아니라 다른 일을 하고 싶을 때 유용하다. - validation 을 할 수 있다. - get, set 하는 값을 변형해서 set 하거나 return 할 수 있다. - 안의 구조를 숨길 수 있다. ( encapsulation ) - 안의 변수명을 숨길 수 있다. - 상속할 때 override 할 수 있다. - getter 와 setter 에 다른 access level 을 적용할 수 있다. - lazy loading 이 가능하다. - 몇몇 library, platform, framework 에서 이를 요구하기도 한다. ( reflection 등 이용 ) [ 단점 ] 단순한 get, set의 경우에는 mobile 환경에서 p.. 2015. 2. 12.
android generate parcelable open source library android generate parcelable open source library https://github.com/frankiesardo/android-auto-value Serializable 처럼 아주 간단하게 Parcelable 을 만들 수 있다. @AutoValueabstract class SomeModel implements Parcelable { abstract String name(); abstract List subModels(); abstract Map modelsMap(); static SomeModel create(String name, List subModels, Map modelsMap) { return new AutoValue_SomeModel(name, subModels,.. 2014. 8. 12.
난독화 ( proguard ) 에 대한 고급정보. 난독화 ( proguard ) 에 대한 고급정보. -proguard option 에 -printusage unused.txt 를 추가해주면, 사용하지 않는 코드들이 출력되어 유지보수에 좋다. -optimization 하는 옵션을 줄 수도 있지만,optimization 은 Dalvik version 에 따라 호환이 안 되는 경우가 있어 함부로 쓰지는 않는 것이 좋다. -open source library 의 경우는 obfuscate(난독화) 할 필요가 없다.이미 open 된 소스들이기 때문이다.이럴 경우 아래와 같은 코드를 추가해주면, build time 을 줄일 수 있다. -libraryjars libs-keep class android.support.v4.app.** { *; }-keep interfa.. 2014. 5. 30.
반응형