# effective kotlin

[Effective Kotlin] 아이템 36. 상속보다는 컴포지션을 사용하라
[Effective Kotlin] 아이템 36. 상속보다는 컴포지션을 사용하라

[Effective Kotlin] 아이템 35. 복잡한 객체를 생성하기 위한 DSL을 정의하라
[Effective Kotlin] 아이템 35. 복잡한 객체를 생성하기 위한 DSL을 정의하라

[Effective Kotlin] 아이템 34. 기본 생성자에 이름 있는 옵션 아규먼트를 사용하라
[Effective Kotlin] 아이템 34. 기본 생성자에 이름 있는 옵션 아규먼트를 사용하라

[Effective Kotlin] 아이템 33. 생성자 대신 팩토리 함수를 사용하라
[Effective Kotlin] 아이템 33. 생성자 대신 팩토리 함수를 사용하라

[Effective Kotlin] 아이템 30. 요소의 가시성을 최소화하라
[Effective Kotlin] 아이템 30. 요소의 가시성을 최소화하라

[Effective Kotlin] 아이템 28. API 안정성을 확인하라
[Effective Kotlin] 아이템 28. API 안정성을 확인하라

[Effective Kotlin] 아이템 29. 외부 API를 랩해서 사용하라
[Effective Kotlin] 아이템 29. 외부 API를 랩해서 사용하라

[Effective Kotlin] 아이템 27. 변화로부터 코드를 보호하려면 추상화를 사용하라
[Effective Kotlin] 아이템 27. 변화로부터 코드를 보호하려면 추상화를 사용하라

[Effective Kotlin] 아이템 26. 함수 내부의 추상화 레벨을 통일하라
[Effective Kotlin] 아이템 26. 함수 내부의 추상화 레벨을 통일하라

[Effective Kotlin] 아이템 24. 제네릭 타입과 variance 한정자를 활용하라
[Effective Kotlin] 아이템 24. 제네릭 타입과 variance 한정자를 활용하라

[Effective Kotlin] 아이템 25. 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라
[Effective Kotlin] 아이템 25. 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라

[Effective Kotlin] 아이템 23. 타입 파라미터의 섀도잉을 피하라
[Effective Kotlin] 아이템 23. 타입 파라미터의 섀도잉을 피하라

[Effective Kotlin] 아이템 22. 일반적인 알고리즘을 구현할 때 제네릭을 사용하라
[Effective Kotlin] 아이템 22. 일반적인 알고리즘을 구현할 때 제네릭을 사용하라

[Effective Kotlin] 아이템 21. 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라
[Effective Kotlin] 아이템 21. 일반적인 프로퍼티 패턴은 프로퍼티 위임(Delegated Properties)으로 만들어라

[Effective Kotlin] 아이템 20. 일반적인 알고리즘을 반복해서 구현하지 말라
[Effective Kotlin] 아이템 20. 일반적인 알고리즘을 반복해서 구현하지 말라

[Effective Kotlin] 아이템 19. knowledge를 반복하여 사용하지 말라
[Effective Kotlin] 아이템 19. knowledge를 반복하여 사용하지 말라

[Effective Kotlin] 아이템 17. 이름 있는 아규먼트를 사용하라
[Effective Kotlin] 아이템 17. 이름 있는 아규먼트를 사용하라