프로그래밍에서 가장 중요한것중 하나는 재사용성 이다.우리가 System.out.print를 구현한다고 생각해보자.JNI의 C를 통해 운영체제와 통신하는 부분을 구현해야하는데 우린 이것을 몰라도 언제든 System.out.print를 사용할수 있다.이와 마찬가지로 Ite
많은 개발자들이 같은 알고리즘을 반복해서 구현한다.이미 언어에서 제공되고 있는 함수인데도 말이다.이함수는 이미 coereIn 확장함수로 이미 존재한다.내장되어 있는 함수를 사용하면 어떤 장점이 있을까?코드 작성속도가 빨라진다.함수의 이름만 보고도 무엇을 하는지 확실하
코틀린은 코드 재사용과 관련하여 프로퍼티 위임이라는 새로운 기능을 제공한다.예를 들어 지연 프로퍼티가 있다. lazy 프로퍼티는 처음 사용하는 요청이 들어올때 초기화 되는 프로퍼티를 의미한다.코틀린은 위임 프로퍼티를 사용하여 lazy property를 쉽게 구현할 수
아규먼트로 함수에 값을 전달할 수 있는것처럼 타입 아규먼트를 사용하면 함수에 타입을 전달할수 있다.타입 아규먼트를 사용하는 함수를 제너릭 함수라고 부르며, 대표적인 예로는 filter 함수가 있다.타입 파라미터는 컴파일러가 타입을 조금이라도 더 정확하게 추측할수 있게
프로퍼티와 파라미터가 같은 이름을 가지는것을 섀도잉이라 부른다.class Forest(val name: String) { fun addTree(name: String){ }}이러한 섀도잉 현상은 클래스 타입 파라미터와 함수 타입 파라미터 사이에서 발생한다.이렇게 코드를
다음과 같은 제너릭 클래스가 있다.위에서 타입 파라미터 T는 variance 한정자가 없기 때문에 기본적으로 invariant이다.invariant라는것은 제너릭으로 만들어지는 타입들이 서로 관련성이 없다는것을 의미한다.만약 어떤 관련성이 필요하다면 out과 in이라는
기업이 한플랫폼만을 대상으로 어플리케이션을 만드는것은 없다.다른 플랫폼에서 동일한 제품을 구현할때, 재사용할수 있는 부분이 많다.특히 비즈니스 로직부분들은 동일하기 때문에 소스코드를 공유한다면 큰 이득이 발생한다.백앤드에서 가장 인기있는 선택지는 자바이다.하지만 코틀린