C# 언어 심화 3편 – 익명 타입과 dynamic 활용법
2025. 4. 25. 11:56ㆍ개발이야기
728x90
반응형
C#에서는 데이터 구조를 유연하고 간단하게 다룰 수 있도록 **익명 타입(Anonymous Types)**과 dynamic 타입을 제공합니다. 이번 글에서는 이 두 가지 개념을 깊이 있게 살펴보고, 실무에서 어떻게 유용하게 활용할 수 있는지 알아봅니다.
1. 익명 타입(Anonymous Types)이란?
선언하지 않고 즉석에서 데이터를 담을 수 있는 가벼운 데이터 구조
익명 타입의 사용 예시
var person = new { Name = "Alice", Age = 30 };
Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");
// 출력: Name: Alice, Age: 30
- 빠르게 데이터 구조를 정의하고 사용할 수 있음
- LINQ와 함께 결과 데이터를 가공할 때 유용
2. dynamic 타입이란?
컴파일 시점이 아닌 실행 시점에서 타입을 결정하는 동적 타입
dynamic 타입의 사용 예시
dynamic value = "Hello, World!";
Console.WriteLine(value); // 출력: Hello, World!
value = 123;
Console.WriteLine(value); // 출력: 123
- 런타임 시점에 타입 체크
- JSON 데이터 처리, COM 객체 연동 등에 유리
3. 익명 타입 vs dynamic 타입 비교
항목 익명 타입 dynamic 타입
타입 결정 시점 | 컴파일 시점 | 런타임 시점 |
타입 안정성 | 높음 | 낮음 (런타임 오류 가능) |
사용 용도 | 일회성 데이터 구조 | 유연한 타입 변경, 외부 데이터 처리 |
4. 실전 예제: JSON 데이터를 dynamic으로 처리하기
using Newtonsoft.Json;
string json = @"{ 'Name': 'Bob', 'Age': 25 }";
dynamic data = JsonConvert.DeserializeObject(json);
Console.WriteLine($"Name: {data.Name}, Age: {data.Age}");
// 출력: Name: Bob, Age: 25
5. 실전 예제: LINQ와 익명 타입 활용하기
var products = new[]
{
new { Name = "사과", Price = 1500 },
new { Name = "바나나", Price = 1000 },
new { Name = "체리", Price = 3000 }
};
var cheapProducts = products
.Where(p => p.Price < 2000)
.Select(p => new { p.Name, p.Price });
foreach (var item in cheapProducts)
Console.WriteLine($"{item.Name}: {item.Price}원");
// 출력:
// 사과: 1500원
// 바나나: 1000원
요약
- 익명 타입: 빠르고 간편한 일회성 데이터 구조 생성
- dynamic 타입: 런타임에서 타입 결정, 유연한 데이터 처리
- 두 타입 모두 특정 상황에서 매우 강력하고 편리하게 활용 가능
728x90
반응형
'개발이야기' 카테고리의 다른 글
C# 언어 심화 5편 – Nullable 타입과 Null 조건부 연산자 활용법 (12) | 2025.04.26 |
---|---|
C# 언어 심화 4편 – Span과 ReadOnlySpan 고성능 처리 방법 (18) | 2025.04.25 |
C# 언어 심화 2편 – 람다식(Lambda)과 LINQ 고급 활용 (10) | 2025.04.25 |
C# 언어 심화 1편 – delegate와 event 실전 응용 (8) | 2025.04.24 |
자료구조 시리즈 11편 (6) | 2025.04.23 |