한국정보기술진흥원한국인공지능올림피아드 (KOAI) 2026 개최안내

C# 15, 마침내 '유니언 타입'을 품다...수년간 요구돼 온 기능 .NET 11에서 정식 도입

마이크로소프트, C# 15에 union 키워드 추가해 다중 타입 안전 처리 가능해져
[한국정보기술신문] 함수형 프로그래밍 언어에서 오랫동안 표준처럼 쓰여 온 유니언 타입(union type)이 마침내 C#에 도입됐다. 닷넷(.NET) 전문가 앤드루 록(Andrew Lock)은 자신의 블로그를 통해 .NET 11 프리뷰에서 union 키워드가 정식으로 지원되기 시작했다고 전했다. 그는 유니언 타입을 두고 "수년간 요청돼 온 기능이 드디어 등장했다"고 평가했다.
유니언 타입은 하나의 타입이 서로 다른 두 가지 이상을 표현할 수 있게 해주는 자료 구조다. F#, 타입스크립트, 러스트 등 대부분의 함수형 중심 언어에서 이미 기본적으로 제공돼 왔으나, C#에서는 정식 지원이 없었다. 이번에 도입된 기능은 엄밀히는 C# 15의 기능이며, 이를 포함한 런타임이 .NET 11이다.
joshua-reddekopp-SyYmXSDnJ54-unsplash.jpg
Unsplash 제공

기존에는 어떻게 처리했나

C# 15 이전에는 서로 관련 없는 여러 타입을 함께 다루는 일이 까다로웠다. 예를 들어 윈도우, 리눅스, 맥OS를 각각 표현하는 세 가지 타입이 공통 속성을 갖지 않을 경우, 개발자는 세 가지 방법 중 하나를 택해야 했다. 첫째는 모든 타입이 상속받는 기반 클래스를 만드는 것이지만, 해당 타입이 외부 라이브러리에서 온 것이라면 통제가 불가능했다. 둘째는 object 타입에 저장하는 방식인데, 이 경우 타입 안전성을 모두 잃게 된다. 셋째는 enum 같은 '태그' 값으로 어떤 타입인지 일일이 추적하는 번거로운 방식이었다.

union 키워드로 간결해진 코드

C# 15에서는 union 키워드를 통해 이 문제를 직접 해결할 수 있다. 유니언으로 묶을 타입들을 나열해 선언하면, 해당 타입 중 어느 것이든 담을 수 있는 새로운 타입이 만들어진다. 인스턴스 생성은 new를 통해 직접 전달하거나, 암시적 변환을 활용하는 방식 모두 가능하다.
유니언 타입을 다루는 가장 표준적인 방법은 switch 표현식이다. 록은 이 부분에서 특히 주목할 만한 점을 짚었다. switch 표현식이 내부 타입을 자동으로 추출해줄 뿐 아니라, 모든 경우를 처리하도록 컴파일러가 강제하기 때문에 별도의 '버림(discard)' 처리가 필요 없다는 것이다. 만약 한 가지 경우라도 빠뜨리면 컴파일러는 "switch 표현식이 가능한 모든 값을 처리하지 않는다"는 경고를 띄운다.

컴파일러 기능으로 구현...구버전 런타임도 사용 가능

이 기능을 사용하려면 .NET 11 프리뷰 2 이상 SDK를 설치하고, 프로젝트 파일에 미리보기 언어 지원 설정을 추가해야 한다. 록은 더 매끄러운 사용 경험을 위해 프리뷰 4 이상 설치를 권장했다.
흥미로운 점은 union 지원이 컴파일러 기능으로 구현됐다는 사실이다. 이 때문에 .NET 11 SDK를 사용하되 .NET 8이나 더 오래된 런타임을 대상으로 삼아도 기능을 쓸 수 있다. 다만 구버전 런타임을 대상으로 할 경우에는 일부 보조 타입을 프로젝트에 직접 추가해야 한다. 컴파일러는 union 타입을 만들 때 Union 특성(attribute)을 사용하고 IUnion 인터페이스를 구현하는데, 이 암시적 변환은 모두 Union 특성에 의해 작동한다.
개발 환경 측면에서는 비주얼 스튜디오 프리뷰나 VS 코드의 C# 데브킷 인사이더스에서 초기 지원이 제공된다. 다만 젯브레인스 라이더(JetBrains Rider) 지원은 아직 대기 중인 상태다.

성능 위한 '박싱 회피' 구현도 가능

이미 union 키워드가 제공됨에도 사용자가 직접 커스텀 유니언 타입을 만들고 싶어 하는 경우가 있다. 록은 그 이유로 두 가지를 들었다. 하나는 OneOf, Sasa 같은 기존 라이브러리를 이미 쓰고 있는 경우로, IUnion 인터페이스 구현과 Union 특성 추가만으로 언어 차원의 지원을 받을 수 있다.
다른 하나는 성능 문제다. 컴파일러가 생성하는 기본 union 타입은 항상 단일 object 필드를 가진 구조체(struct)다. 이 때문에 int나 bool 같은 값 타입을 유니언으로 묶으면 해당 값이 힙(heap)에 박싱(boxing)되며 메모리 할당이 발생한다. 록은 "유니언 타입은 성능 면에서 거의 투명하게 작동하도록 의도된 것"이라며, 핫 패스(hot path)처럼 성능이 중요한 구간에서는 이 박싱이 바람직하지 않다고 설명했다.
이에 union 기능은 박싱을 피하는 구현 방식도 허용한다. 값이 비어 있지 않은지 확인하는 속성과, 각 타입별로 값을 박싱 없이 꺼내오는 메서드를 구현하면 된다. 이 메서드를 구현하면 컴파일러가 switch 표현식에서 박싱이 일어나는 속성 대신 해당 메서드를 자동으로 사용한다. 다만 록은 이런 커스텀 구현이 가치가 있을지는 코드의 용도에 따라 다르다고 덧붙였다.

앞으로 추가될 기능은

록은 현재 출시된 union 구현이 충분히 사용 가능한 수준이지만, 언어 제안서에는 아직 더 많은 내용이 담겨 있다고 전했다. 유니언 멤버 제공자, switch 표현식에서 catch-all 처리가 필요 없는 '닫힌 열거형(closed enum)', 그리고 정의된 어셈블리 외부에서 파생 클래스 선언을 막는 '닫힌 계층(closed hierarchy)' 등이 거론된다. 이들 기능은 .NET 11에 포함될 수도, 그렇지 않을 수도 있다.
다만 록은 이번 글에서 다룬 기능들이 모두 .NET 11 프리뷰 4 기준이라는 점을 분명히 했다. 그는 "정식 출시까지 많은 것이 바뀔 수 있다"며 최종 버전에서는 세부 사항이 달라질 가능성을 열어뒀다.
한국정보기술신문 정보기술분과 이지후 기자 news@kitpa.org

함께 읽으면 좋은 기사

롤·발로란트도 ARM 윈도우서 돌아간다...라이엇, 인기 게임 지원 공식화

롤·발로란트도 ARM 윈도우서 돌아간다...라이엇, 인기 게임 지원 공식화

정보기술 1
엔비디아, 윈도우용 AI 슈퍼컴퓨터 'DGX 스테이션' 공개...GB300 기반으로 1조 파라미터 모델 로컬 구동, 올해 4분기 출시

엔비디아, 윈도우용 AI 슈퍼컴퓨터 'DGX 스테이션' 공개...GB300 기반으로 1조 파라미터 모델 로컬 구동, 올해 4분기 출시

인공지능 · 정보기술 4
앤트로픽, 최상위 모델 '클로드 오푸스 4.8' 출시...벤치마크 끌어올리고 '노력 제어'·'동적 워크플로'로 협업 강화, 가격은 그대로

앤트로픽, 최상위 모델 '클로드 오푸스 4.8' 출시...벤치마크 끌어올리고 '노력 제어'·'동적 워크플로'로 협업 강화, 가격은 그대로

인공지능 4
산업통상부, 부내 행정업무에 AI 도입 본격 추진...AI 혁신 자문단 출범하고 거버넌스·서비스·역량 3대 과제 가동

산업통상부, 부내 행정업무에 AI 도입 본격 추진...AI 혁신 자문단 출범하고 거버넌스·서비스·역량 3대 과제 가동

유관기관 · 인공지능 2
개인정보위·프랑스 CNIL, 아동·청소년 'AI 안전 사용' 포스터 공동제작...질문 6가지로 풀어내 전국 초·중·고에 배포

개인정보위·프랑스 CNIL, 아동·청소년 'AI 안전 사용' 포스터 공동제작...질문 6가지로 풀어내 전국 초·중·고에 배포

정보보안 · 유관기관 2
구글, 제미나이 기반 새 광고 포맷으로 검색 광고 'AI 시대' 연다...대화형 광고·AI 쇼핑 광고 도입하고 다이렉트 오퍼 시범사업 확대

구글, 제미나이 기반 새 광고 포맷으로 검색 광고 'AI 시대' 연다...대화형 광고·AI 쇼핑 광고 도입하고 다이렉트 오퍼 시범사업 확대

인공지능 3
구글, 워크스페이스에 음성·이미지 생성 AI 대거 탑재…40억 사용자 일상 바꾼다...I/O 2026서 'AI 인박스'·24시간 개인 비서 '제미나이 스파크'까지 공개

구글, 워크스페이스에 음성·이미지 생성 AI 대거 탑재…40억 사용자 일상 바꾼다...I/O 2026서 'AI 인박스'·24시간 개인 비서 '제미나이 스파크'까지 공개

인공지능 3
구글 'I/O 2026' 다이얼로그 무대, AI 에이전트부터 양자·로봇까지 미래 청사진 제시...피차이·하사비스 등 리더 총출동

구글 'I/O 2026' 다이얼로그 무대, AI 에이전트부터 양자·로봇까지 미래 청사진 제시...피차이·하사비스 등 리더 총출동

인공지능 2
애플, 2025년 앱스토어 부정 거래 2조9000억원 막았다...AI·인간 검수 결합한 다층 방어로 6년 누적 11조원 차단

애플, 2025년 앱스토어 부정 거래 2조9000억원 막았다...AI·인간 검수 결합한 다층 방어로 6년 누적 11조원 차단

정보보안 4
오픈AI 코덱스 활용 사례 공개… 개발 넘어 업무 전반으로 영역 확장...코딩 자동화에서 데이터 정리·재무 모델링·회의 정리까지 40여 개 워크플로 제시

오픈AI 코덱스 활용 사례 공개… 개발 넘어 업무 전반으로 영역 확장...코딩 자동화에서 데이터 정리·재무 모델링·회의 정리까지 40여 개 워크플로 제시

인공지능 3
C# 15, 마침내 '유니언 타입'을 품다...수년간 요구돼 온 기능 .NET 11에서 정식 도입

C# 15, 마침내 '유니언 타입'을 품다...수년간 요구돼 온 기능 .NET 11에서 정식 도입

정보기술 3
마이크로소프트, 클로드 코드 라이선스 대부분 회수...개발자 깃허브 코파일럿으로 갈아탄다

마이크로소프트, 클로드 코드 라이선스 대부분 회수...개발자 깃허브 코파일럿으로 갈아탄다

인공지능 · 정보통신 2