Writing

작업 노트

기술 자체보다 어떤 문제를 왜 그렇게 풀었는지에 초점을 둡니다.

이펙티브 코틀린 아이템 24: 제네렉 타입과 variance 한정자를 활용하라

이펙티브 코틀린(재사용성) 아이템 24: 제네렉 타입과 variance 한정자를 활용하라 위에 코드에서 파라미터 T는 variance 한정자(out 또는 in)이 없으므로 기본적으로 invariant(불공변성) 입니다. 제네릭 타입으로 들어가는 타입들이 서로 관련성이 없다는 의미 만약 어떠한 관련성을 원한다면 out 또는

3 min read

이펙티브 코틀린 아이템 23: 타입 파라미터의 섀도잉을 피하라

이펙티브 코틀린(재사용성) 아이템 23: 타입 파라미터의 섀도잉을 피하라 지역 파라미터가 외부 스코프에 있는 프로퍼티를 가린다. 이를 새도잉이라고 한다. 위와 같이 선언하면 타입 파라미터가 새도잉된다. 하지만 위처럼 독립적으로 동작합니다. 위처럼 선언해야 의도한 방식대로 동작할것입니다. 독립적으로 선언하고 싶으면 이름을

2 min read

이펙티브 코틀린 아이템 22: 일반적인 알고리즘을 구현할 때 제네릭을 사용하라

이펙티브 코틀린(재사용성) 아이템 22: 일반적인 알고리즘을 구현할 때 제네릭을 사용하라 타입 아규먼트를 사용하는 함수를 제네릭 함수라고 부른다.(예 stdlib에 있는 filter 함수) 타입 파라미터는 컴파일러에 타입과 관련된 정보를 제공하여 컴파일러가 타입을 정확하게 추측할수 있다. 제네릭 제한 타입 파라미터의 중요

1 min read

이펙티브 코틀린 아이템 21: 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라

이펙티브 코틀린(재사용성) 아이템 21: 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라 property delegate 를 사용하는것이 property delegation 이라고 부른다. 코틀린에서 lazy 함수 제공 프로퍼티 위임을 사용하면 변화가 있을때 이를 감지하는 observable 패턴을 쉽게 만들수 있다.

5 min read

이펙티브 코틀린 아이템 20: 일반적인 알고리즘을 반복해서 구현하지 말라

이펙티브 코틀린(재사용성) 아이템 20: 일반적인 알고리즘을 반복해서 구현하지 말라 기존에 구현된 내용을 활용하면 장점 코드가 짧아진다. 코드 작성 속도가 빨라진다. 직접구현할때의 실수를 줄일수 있다. 제작자가 한번만 최적화하면 사용하는 모든곳에서 혜택을 받을수 있다. 표준라이브러리 살펴보기 stdlib는 확장함수를 활용

2 min read

이펙티브 코틀린 아이템 18: 코딩 컨벤션 지켜라

이펙티브 코틀린(가독성) 아이템 18: 코딩 컨벤션 지켜라 문서를 보면 알수 있듯이 잘 정리된 코딩 컨벤션을 가지고 있다. 코틀린 커뮤니티에 속한 사람이면 이러한 코딩 컨벤션에 익숙해지는것이 좋다. 장점 어떠한 프로젝트도 쉽게 이해 할수 이다. 다른 외부 개발자도 프로젝트 코드를 쉽게 이해할수 있다. 다른 개발자도 코드

2 min read

이펙티브 코틀린 아이템 17: 이름 있는 아규먼트를 사용하라

이펙티브 코틀린(가독성) 아이템 17: 이름 있는 아규먼트를 사용하라 메소드의 Argument 용도가 분명하게 보이지 않을경우가 있다. 위처럼 joinToString에 | 값이 무엇을 뜻하는지 분명하지 않다. 코틀린에서는 이름있는 아규먼트를 지원한다. 물론 위와 같은 코드도 의미를 명확하게 알수 있다. 이름있는 아규먼트는

3 min read

이펙티브 코틀린 아이템 16: 프로퍼티는 동작이 아니라 상태를 나타내야 한다

이펙티브 코틀린(가독성) 아이템 16: 프로퍼티는 동작이 아니라 상태를 나타내야 한다 프로퍼티는 사용자 정의 게터와 세터를 가질수 있다. 파생 프로퍼티 (derrived property) : var을 사용해서 만든 읽고 쓸 수 있는 프로퍼티는 게터와 세터 정의가 가능, val 로 읽기 전용 프로퍼티를 만들때는 field가

2 min read