본문 바로가기
[Kotlin Tutorial] Kotlin 의 Type system - Chap6. The Kotlin type system [Kotlin Tutorial] Kotlin 의 Type system - Chap6. The Kotlin type system 출처 : Kotlin in action 6.1. Nullability 6.1.1. Nullable types -Kotlin 은 nullable types 를 지원한다.nullable type 이라는 것은 어떤 variable 이 null 을 가질 수 있는지를 명시하는 것이다. -nullable 하지 않은 곳에 null 을 넣으면 compile error 가 난다.기본 type 은 nullable 하지 않으며, nullable 을 만드려면 type 뒤에 ? 를 붙여주면 된다.어떤 타입이든 뒤에 ? 를 붙여줄 수 있다.fun strLenSafe(s: String?) = … 6.1.2.. 2017. 8. 18.
[Effective Objective-C] #14 클래스 객체가 무엇인지 이해하라 [Effective Objective-C] #14 클래스 객체가 무엇인지 이해하라 출처 : Effective Objective-C -객체 타입은 컴파일 시간에 결정되지 않고 실행 시간에 찾는다. -컴파일러는 리시버가 이해할 수 없다고 생각되는 메시지를 보내는 것에 경고를 보낼 수 있다.반대로 id 타입의 객체는 모든 메시지에 응답할 수 있다고 여긴다. -실행 시간에 객체 타입을 알아내는 것을 내성(introspection)이라 하고, 이는 Foundation 프레임워크의 NSObject 의 프로토콜로 녹아 들어간 강렬하고 유용한 기능이다.이 프로토콜은 모든 공통 최상위 클래스(NSObject 와 NSProxy) 를 상속받는 모든 객체가 따르는 프로토콜이다.객체의 클래스를 직접 비교하는 것보다는 이런 메서.. 2017. 8. 16.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #1 ~ #8 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #1 ~ #8 #1 : Objective-C 의 기원과 친숙해져라. Objective-C는 객체 지향 기능을 추가한 C 의 확장이다. Objective-C는 동적 바인딩을 사용하는 메시징 구조를 이용한다. 동적 바인딩은 객체 타입이 실행 시간에 밝혀지는 것을 뜻한다. 메시지를 받았을 때 동작할 코드를 컴파일러가 아닌 런타임이 결정한다. C의 핵심 개념을 이해하고 있으면 Objective-C를 효과적으로 작성하는 데 도움이 된다. 특히 메모리 모델과 포인터를 잘 이해하고 있어야 한다. #2 : 헤더에 헤더를 포함하는 것을 최소화하라 항상 헤더를 포함하는 것을 최대한 미루라. 이는 보통 헤.. 2017. 8. 10.
[Effecitve Objective-C] #1 Objective-C 의 기원과 친숙해져라. [Effecitve Objective-C] #1 Objective-C 의 기원과 친숙해져라. 출처 : Effective Objective-C -오브젝티브-C 는 매우 동적인 언어이다.언어의 기원이 스몰토크(Small Talk) 이다.대다수 언어가 컴파일 시간에 하는 일들을 오브젝티브-C 는 실행 시간에 한다. -함수 호출이 아닌 메시징 구조(Messaging Structure)를 사용한다.Objective-C 는 메시징을 처음 사용한 스몰토크로부터 진화했다.메시징과 함수 호출은 다음과 같이 차이점이 있다. // 메시징Object *obj = [Object new];[obj performWith:param1 and:param2]; // 함수 호출Object *obj = new Object;obj->perf.. 2017. 7. 16.
[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.
Docker 에 대한 이해 Docker 에 대한 이해 http://bcho.tistory.com/805 -Docker 는 Linux 기반 & Container 기반 Runtime Open Source 이다.VM 과 비슷하면서 다르다. -VM 은.. Host OS 가 깔리고 그 위에 Hypervisor (VMWare, KVM, Xen 등 ) 가 깔리고, 그 위에 VM 이 만들어지는 구조이다.VM 은 x86 하드웨어를 가상화 한 것.다양한 종류의 OS 설치 가능 -Docker 도 VM 처럼 Docker Engine 이 Host OS 위에서 수행된다.VM 대신 Container 들이 생기는 구조인데, 이 Container 들은 Linux 기반의 OS만 수행 가능하다.Hardware 를 가상화 해주는 것이 아니라, Guest OS(Con.. 2017. 6. 8.
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.
[Android] Overview screen 을 꾸며보세요. [Android] Overview screen 을 꾸며보세요. http://www.bignerdranch.com/blog/polishing-your-Android-overview-screen-entry - Overview Screen( Home key long press 혹은 multi tasking button ) 을 Lollipop 부터는 꾸밀 수 있게 되었다.새로운 API 를 이용해 icon, title, top bar 색상 등을 수정할 수 있다. - 별다른 설정을 하지 않으면 android:icon, android:label, android:theme 을 통해 icon, title, top bar color 가 각각 정해진다. 이 값들은 base activity( launch, main ) 로부터.. 2017. 4. 11.
[Effective Java] 오버로딩(overloading)을 분별력 있게 사용하자. [Effective Java] 오버로딩(overloading)을 분별력 있게 사용하자. public class CollectionClassifier{public static String classify(Set s){return "Set";} public static String classify(List lst){return "List";} public static String classify(Collection c){return "Unknown Collection";} public static void main(String[] args){Collection[] collections = { new HashSet(), new ArrayList(), new HashMap().values() };for( Col.. 2017. 1. 16.
반응형