🔥 중첩 타입 참조하기

249자
4분

중첩 타입을 정의된 컨텍스트 외부에서 사용하려면 어떻게 해야 할까요? 간단합니다! 그냥 중첩 타입의 이름 앞에 그 타입이 중첩된 타입의 이름을 접두사로 붙이면 돼요.

swift
let heartsSymbol = BlackjackCard.Suit.hearts.rawValue
// heartsSymbol은 "♡"
swift
let heartsSymbol = BlackjackCard.Suit.hearts.rawValue
// heartsSymbol은 "♡"

위의 예제에서 볼 수 있듯이, 이런 방식으로 Suit, Rank, Values의 이름을 의도적으로 짧게 유지할 수 있어요. 왜냐하면 그들의 이름은 정의된 컨텍스트에 의해 자연스럽게 한정되기 때문이죠.

이렇게 중첩 타입을 참조할 때는 마치 파일 시스템의 경로처럼 상위 타입의 이름을 차례로 붙여나가면서 원하는 타입에 도달하게 됩니다. 이 과정을 좀 더 자세히 살펴볼까요?

swift
// BlackjackCard 구조체 내부의 Suit 열거형 타입에 접근
let clubsSymbol = BlackjackCard.Suit.clubs.rawValue
// clubsSymbol은 "♣"
 
// BlackjackCard 구조체 내부의 Rank 열거형 타입에 접근
let queen = BlackjackCard.Rank.queen
// queen은 BlackjackCard.Rank.queen
 
// Rank 열거형 내부의 Values 구조체 타입에 접근
let aceValues = BlackjackCard.Rank.ace.values
// aceValues는 Values(first: 1, second: 11)
swift
// BlackjackCard 구조체 내부의 Suit 열거형 타입에 접근
let clubsSymbol = BlackjackCard.Suit.clubs.rawValue
// clubsSymbol은 "♣"
 
// BlackjackCard 구조체 내부의 Rank 열거형 타입에 접근
let queen = BlackjackCard.Rank.queen
// queen은 BlackjackCard.Rank.queen
 
// Rank 열거형 내부의 Values 구조체 타입에 접근
let aceValues = BlackjackCard.Rank.ace.values
// aceValues는 Values(first: 1, second: 11)

위의 예제에서 볼 수 있듯이, 점(.) 표기법을 사용하여 원하는 중첩 타입에 단계적으로 접근할 수 있습니다. 이런 방식으로 중첩 타입을 참조하면 코드의 가독성과 명확성이 높아지는 효과가 있어요.

특히 같은 이름의 타입이 여러 컨텍스트에 존재할 때, 이런 방식의 참조는 매우 유용합니다. 예를 들어, 서로 다른 구조체 내부에 Color라는 열거형이 각각 정의되어 있다고 해보죠. 이때 StructA.Color.redStructB.Color.red처럼 참조하면 어떤 Color 타입의 red를 말하는 건지 명확히 구분할 수 있게 됩니다.

중첩 타입을 잘 활용하면 코드의 구조와 의미를 더욱 명확하게 표현할 수 있어요. 그리고 이렇게 정의된 중첩 타입을 외부에서 참조할 때는 위에서 살펴본 것처럼 상위 타입의 이름을 접두사로 붙여주는 것만 기억하시면 될 거예요. 여러분의 코드에서도 중첩 타입을 적극 활용해보시는 건 어떨까요? 더욱 읽기 좋고 의미 있는 코드를 작성할 수 있을 거예요!

YouTube 영상

채널 보기
NestJS 역할 기반 접근 권한 부여 - Guard, Reflector | NestJS 가이드
인터셉터와 RxJS로 캐시 시스템 구축하기 | NestJS 가이드
NestJS 인터셉터에서 map 연산자로 응답을 변환하는 방법 | NestJS 가이드
Writer 펑터와 클라이슬리 카테고리 | 프로그래머를 위한 카테고리 이론
매번 ValidationPipe 복붙하세요? NestJS 전역 파이프로 한 번에 해결하기 | NestJS 가이드
API 응답 지연과 복잡한 에러, NestJS 인터셉터로 관리하는 방법 | NestJS 가이드
함수 타입과 Hom-Set 이해하기 | 프로그래머를 위한 카테고리 이론
NestJS 가드, 바이딩과 스코프 | NestJS 가이드