Page 32 -
P. 32

9.4        결론                                  KOTLIN IN DEPTH








               이 장에서는 코틀린 코드에서 추상화를 설계하는 또 다른 도구인 제네릭스의 개념을 배웠다. 이제
               는 여러분 자신만의 제네릭 API를 설계할 수 있고, 구체화한 타입 파라미터나 변성 등의 고급 개
               념을 더 간결하고 효율적이며 타입 안전한 코드를 작성하기 위해 활용할 수 있어야 한다. 그리고
               어떤 타입 이름을 대신할 수 있는 별명을 도입하게 해주는 타입 별명이라는 유용한 개념도 소개했
               다. 타입 별명을 사용하면 복잡한 제네릭 타입이나 함수 타입을 더 쉽게 처리할 수 있다.

               다음 장에서는 두 가지 서로 연관된 개념을 자세히 살펴본다. 첫 번째로 살펴볼 내용은 애너테이

               션(annotation)이다. 애너테이션을 사용하면 프로그램 요소에 여러 가지 메타데이터(metadata)를 지
               정할 수 있다. 코틀린에서는 애너테이션을 다른 기능들과 함께 사용해 코드의 상호 운용성을 세밀
               하게 조절한다. 이에 대한 내용은 12장 자바 상호 운용성에서 다룬다. 10장 애너테이션과 리플렉션
               에서 살펴볼 두 번째 주요 내용은 프로그램 내부 구조를 살펴보고 동적으로 코드를 호출할 수 있
               게 해주는 API를 제공하는 리플렉션이다.






               9.5        정리 문제                               KOTLIN IN DEPTH








               1.  코틀린에서 제네릭 클래스, 함수, 프로퍼티를 정의하는 방법은 무엇인가?
               2.   타입 파라미터에 대해 제약을 거는 방법을 설명하라. 자바와 코틀린의 타입 파라미터 제약 기

                  능을 비교해 설명하라.
               3.  타입 소거란 무엇인가? 타입 파라미터의 한계를 일반 타입과 비교해 설명하라.

               4.   구체화한 타입 파라미터를 사용해 어떻게 타입 소거를 우회할 수 있는가? 구체화한 타입 파라
                  미터의 한계는 무엇인가?

               5.  변성이란 무엇인가? 제네릭 코드에서 변성이 중요한 이유는 무엇인가?

               6.  코틀린에서 선언 지점 변성을 어떻게 사용하는지 설명하라.



         388





     Kotlin_05.indd   388                                                                    2022-02-15   오후 4:08:06
   27   28   29   30   31   32   33