Page 20 -
P. 20

이 장에서는 제네릭스(generics)를 설명한다. 제네릭스는 여러분이 알지 못하는 타입의 데이터를
               조작하는 코드를 작성할 수 있게 해주는 코틀린 타입 시스템이 제공하는 강력한 기능이다. 어떻게
               제네릭 선언을 정의하고 사용하는지 살펴보고, 런타임 타입 소거(type erasure)와 구체화(reification)

               로 인해 제네릭스 사용 시 어떤 문제가 생기는지 논의한 후, 같은 제네릭 타입에 대해 타입 파라
               미터 값이 달라지는 경우까지 하위 타입 관계를 확장함으로써 제네릭스의 유연성을 향상시켜주는
               중요한 개념인 변성(variance)을 설명한다. 이와 연관된 주제로 기존 타입에 대해 새로운 이름을 부
               여할 수 있는 타입 별명(type alias) 개념도 다룬다.



               배우는 내용

                 ●    제네릭 선언

                 ●    타입 바운드(type bound)와 타입 제약(type constraint)
                 ●    타입 소거와 구체화된 타입 파라미터

                 ●    선언 지점 변성(declaration site variance)
                 ●    프로젝션(projection)

                 ●    타입 별명


               이 장의 목표

               코틀린 제네릭스 선언의 기초를 배우고 자바 제네릭스와 코틀린 제네릭스가 어떤 차이가 있는지
               살펴본다. 그리고 구체화한 타입 파라미터와 변성을 사용해 더 유연한 제네릭 API를 만드는 방법
               을 배운다.






               9.1        타입 파라미터                             KOTLIN IN DEPTH







               앞 장에서 배열과 여러 컬렉션 클래스 같은 제네릭 타입이나 map(), filter(), sorted() 등의 제

               네릭 함수를 이미 살펴봤다. 이 절에서는 여러분의 코드를 더 일반화해서 더 유연하게 만드는 방
               법과 코틀린 타입 시스템의 고급 기능을 사용하는 방법을 설명한다.



         360





     Kotlin_05.indd   360                                                                    2022-02-15   오후 4:08:04
   15   16   17   18   19   20   21   22   23   24   25