11.5.3 명명된 타입
튜플은 변수를 담을 수 있는 가방과 같아서 여러 데이터를 한 번에 저장하는 것 말고는 특별한 의미를 가지고 있지 않다. 그리고 튜플로 만든다고 해서 캡슐화를 수행하는 것도 아니다. 때로는 이러한 특징이 여러분이 원하는 바와 정확히 일치한다고 느낄 수도 있는데, 정말 그런지에 대해서는 좀 더 신중히 살펴보기 바란다. (double, double) 타입의 튜플이 있다고 가정해 보자. 이 튜플은 다음과 같은 용도로 사용될 수 있을 것이다.
• 2D 직교 좌표 (x,y)
• 2D 극 좌표 (반지름, 각도)
• 1D 시작/끝 점
• 그 외 많은 것들
이 각각의 용례를 고유한 타입으로 모델링하는 경우 수행할 수 있는 작업의 내용도 서로 다를 것이다. 만약 튜플 요소를 그대로 사용한다면, 튜플 요소의 이름이 전파되지 않는 문제나 극 좌표를 사용해야 하는 곳에 직교 좌표를 사용하는 등의 실수에 주의해야 한다.
여러 값을 한 번에 저장할 수 있는 임시 저장 공간이 필요하거나 프로토타이핑을 해야 하거나 어떤 타입이 필요한지 확정되지 않은 경우에는 튜플이 좋다. 하지만 코드 내에서 동일한 모습의 튜플을 반복적으로 사용하고 있다면 튜플 대신 명명된 타입을 사용할 것을 권고한다.
Note ≡
로즐린 코드 분석기를 활용하여 튜플 요소의 이름을 잘 살펴보면 동일한 튜플임에도 다른 용도로 사용되고 있는지 쉽게 찾아낼 수 있다. 로즐린을 제외한다면, 아직까지 이 정도의 기능을 제공하는 도구는 없는 것 같다.
튜플의 대체제로 활용할 수 있는 기능도 모두 살펴봤으므로 다음으로는 튜플을 언제 사용하는 것이 좋을지 알아보고 이 장을 마무리하자.