더북(TheBook)

예제 11-8은 두 개의 튜플(그중 하나에는 튜플 요소에 이름을 지정했다.)이 같은지 같지 않은지 비교하는 연산이다. 각각의 연산식 다음에 컴파일러가 각 연산자별로 어떤 코드를 생성하는지 나타냈다. 주목할 점은 컴파일러가 생성한 코드는 각 튜플 요소의 타입별로 오버로드된 연산자를 사용한다는 것이다. 리플렉션을 사용하지 않고서는 동일한 기능을 구현할 수 없기 때문에 컴파일러가 이러한 작업을 대신하는 편이 훨씬 낫다고 생각한다.

지금까지 튜플과 관련한 언어의 규칙은 충분히 살펴봤다. 타입 추론 과정에서 튜플 요소의 이름이 어떻게 전파되는지 등과 같은 세부 사항은 언어 명세에 가장 잘 정리되어 있으며, 이 책에서 다루기에는 너무 세부적인 사항이라 생략했다. 지금까지 살펴본 내용을 잘 이해했다면 CLR 수준에서 튜플이 어떻게 다루어지는지 몰라도 크게 상관없을 것이다. 그럼에도 컴파일러가 튜플과 관련된 규칙들을 IL로 어떻게 변환하는지 좀 더 깊이 이해한다면 튜플을 더 많이 활용할 수 있을 뿐더러 세부적인 동작 방식을 더 잘 이해할 수 있으리라 생각한다.

기본적인 내용들은 거의 다 다룬 것 같다. 아직 튜플을 사용하는 코드를 작성해 본 적이 없다면 지금이 가장 좋은 시점이 아닐까 싶다. 튜플이 어떻게 구현되었는지를 세부적으로 살피기 전에, 책 읽기를 멈추고 튜플이 어떤 느낌인지 실습해보기 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.