본문 바로가기
[Objective-C] performSelector: 가 경고를 뿜는다? [Objective-C] performSelector: 가 경고를 뿜는다? http://stackoverflow.com/questions/7017281/performselector-may-cause-a-leak-because-its-selector-is-unknown -Manual Memory Management 시절에서는 performSelector: 가 OK!! -ARC 의 등장으로 performSelector: 는 경고를 내뿜게 되었고.. -Swift 에서는 performSelector: 를 접근하지 못하게 하고, 문서에도 unsafe 하니 쓰지 말라고 해놓았다. -ARC 이후에 performSelector: 를 쓰고 싶다면 이런 방식으로 사용하는 것이 권장된다.ARC 가 detect 하지 못하는 .. 2017. 12. 9.
[Kotlin] Kotlin 은 Compile time 이 느리다는데.. 사실일까? [Kotlin] Kotlin 은 Compile time 이 느리다는데.. 사실일까? https://medium.com/keepsafe-engineering/kotlin-vs-java-compilation-speed-e6c174b39b5d -위 글을 쓴 필자는 Java base 로 되어 있는 출시된 앱을 전부 Kotlin 으로 전환하여 자신만의 Compile time 을 측정해보았다. -테스트 환경 및 조건 #1 빌드는 총 10번 연속으로 돌려서 평균값 산출Hardware 는 i7-6000 3.4GHz, 32G DDR4, Samsung 850 Pro SSD, Gradle 2.14.1 빌드시마다 매번 clean build or notGradle daemon 사용 or not코드 변경 유무 -Clean bui.. 2017. 9. 26.
[Kotlin Tutorial] DSL construction - Chap 11. [Kotlin Tutorial] DSL construction - Chap 11. 참조 : Kotlin in action 11.1. From APIs to DSLs -DSL 을 작성하기 전에 생각해봐야 할 것이 있다. 우리의 (Kotlin?) 궁극적 목표는 가독성과 유지보수성을 최대로 늘리는 것.그것은 곧 좋은 API 를 설계하는 것으로 이어진다. 그렇다면 API 가 clean 하다는 것은 무슨 의미일까?1. 사용자가 읽기 좋은 것. 그것은 name 과 concept 을 잘 잡는 것이다.2. 의미없는 syntax 는 빼고, 최소한의 코드로 code 가 읽기 좋은 것. -Kotlin 에서는 clean API 를 위해서 extension function, infix calls, lambda syntax sh.. 2017. 9. 14.
[Kotlin Tutorial] Kotlin 의 Type system #2 [Kotlin Tutorial] Kotlin 의 Type system #2 참조 : Kotlin in action 6.2. Primitive and other basic types 6.2.1. Primitive types: Int, Boolean, and more -Kotlin 은 primitive type 과 wrapper type 을 구분하지 않는다. -그렇다면 Int 가 object 라면 Kotlin 은 모든 primitive type 을 실제로 object 로 만드는가?당연히 그렇게 안 했다.compiler 가 대부분의 Int type 을 Java 의 primitive type 으로 변형시킨다.generic, collection 등은 원래 Java 의 Integer 형태만 담을 수 있으므로 이 경.. 2017. 8. 22.
[Effective Objective-C] #14 클래스 객체가 무엇인지 이해하라 [Effective Objective-C] #14 클래스 객체가 무엇인지 이해하라 출처 : Effective Objective-C -객체 타입은 컴파일 시간에 결정되지 않고 실행 시간에 찾는다. -컴파일러는 리시버가 이해할 수 없다고 생각되는 메시지를 보내는 것에 경고를 보낼 수 있다.반대로 id 타입의 객체는 모든 메시지에 응답할 수 있다고 여긴다. -실행 시간에 객체 타입을 알아내는 것을 내성(introspection)이라 하고, 이는 Foundation 프레임워크의 NSObject 의 프로토콜로 녹아 들어간 강렬하고 유용한 기능이다.이 프로토콜은 모든 공통 최상위 클래스(NSObject 와 NSProxy) 를 상속받는 모든 객체가 따르는 프로토콜이다.객체의 클래스를 직접 비교하는 것보다는 이런 메서.. 2017. 8. 16.
[Android] 새로운 Dex Compiler 가 나온다네용 -이 글은 D8 이 출시되기 전에 쓰여진 글이라 현재는 deprecated doc 이라고 볼 수 있겠다.D8 에 대한 이야기는 아래 링크를 참조하시길..[android] D8 이 뭐야? -Android APK 를 만들 때 Javac 를 이용해서 bytecode 인 .class 를 만든 후dex compiler 를 이용해서 bytecode 들을 .dex 로 만든다. -Android Studio 3.0 Beta 부터 "D8" 이라고 불리는 새로운 dex compiler 를 사용할 수 있다. D8 은 compile time 도 줄였고, .dex 파일 사이즈도 줄였다..Android 측에서 제공하는 자료에 따르면 Compile Time 은 약 30% 정도 줄었다. 파일 사이즈는 약 5% 정도 줄었다. ( 사이즈.. 2017. 8. 13.
[android] Annotation Processing 에 대한 이야기 [android] Annotation Processing 에 대한 이야기 http://hannesdorfmann.com/annotation-processing/annotationprocessing101 The Basics -annotation processing 은 compile time 에 annotation 을 확인하여 어떤 action 을 하는 것을 이야기한다. -annotation processing 은 Java 5 부터 가능하다.그러나 사용할만한 API 는 Java 6 에 release 되었다. -annotation processor 는 java code 나 byte code 를 input 으로 받아서 java 파일로 output 을 생성한다.이 생성된 output 은 compile time 에.. 2017. 7. 31.
[Kotlin Tutorial] Kotlin 소개 - Kotlin : what and why [Kotlin Tutorial] Kotlin 소개 - Kotlin : what and why 참조 : Kotlin in Action -Kotlin 은 Java platform 을 targeting 한 새로운 프로그래밍 언어.Java 코드와 함께 쓰일 수 있다.Android 개발 뿐만 아니라 Server-side 개발에도 쓰일 수 있다. -Java 의 iib, framework 와 함께 쓰일 수 있고, Java 와 비교해 Performance 도 거의 동일하다. 1.1. A Taste of Kotlin -http://try.kotl.in 을 통해 코드 실습을 할 수 있다. -data class Person(val name: String, val age: Int? = null) fun main(args: A.. 2017. 7. 12.
Strong / Weak / Dynamic / Static type Strong / Weak / Dynamic / Static type http://nvec.egloos.com/2251285http://en.wikipedia.org/wiki/Strong_and_weak_typing -Dynamic typing 은 변수의 타입이 프로그램의 어느 시점에서든 변경이 가능하고, ( Runtime 에 결정 )Static typing 은 그렇지 않다. ( Compile time 에 결정 ) -Strong type 은 프로그램을 보고 바로 에러를 찾아낼 수 있는 것이고,Weak type 은 그렇지 않다. Strong type 은 해당 type 에 할 수 있는 일들이 명확하게 정의되어 있다.Weak type 은 사용되는 시점에 암시적으로 cast 가 될 수도 있고, ad-hoc pol.. 2017. 6. 5.
반응형