-
제네릭, 람다식, LINQ, 리플렉션카테고리 없음 2024. 7. 9. 21:02
유니티 게임개발캠프 TIL 53일차
제네릭(Generic)
제네릭을 사용한 부분은 public class Box<T>입니다. 제네릭을 사용하지 않으면 타입 안전성이 보장되지 않고, 코드 중복과 성능 저하(박싱/언박싱) 문제가 발생할 수 있습니다. 제네릭은 클래스나 메서드를 정의할 때 데이터 타입을 미리 지정하지 않고, 사용하는 시점에 지정할 수 있도록 하는 기능입니다. 이를 통해 타입 안전성을 확보하고, 코드 재사용성을 높일 수 있습니다.
람다식(Lambda Expression)
람다식은 익명 함수를 간결하게 표현하는 방법입니다. 주로 LINQ 쿼리나 메서드에 대한 간단한 대리자로 사용됩니다. 예를 들어, x => x * x는 입력값 x를 받아 제곱을 반환하는 람다식입니다. 람다식을 사용하면 코드가 간결해지고 가독성이 향상됩니다.
LINQ (Language Integrated Query)
LINQ는 .NET 언어에 데이터 쿼리 기능을 통합한 것으로, 컬렉션, 데이터베이스, XML 등 다양한 데이터 소스에 대해 일관된 문법으로 쿼리를 작성할 수 있게 해줍니다. LINQ를 사용하면 다양한 데이터 소스를 일관된 방식으로 쿼리하고 조작할 수 있어, 데이터 처리 코드의 가독성과 유지보수성이 향상됩니다.
리플렉션(Reflection)
리플렉션은 프로그램 런타임에 어셈블리의 메타데이터를 읽어내어 객체의 정보를 동적으로 탐색하고 조작할 수 있는 기능입니다. 주로 런타임에 타입의 메서드, 속성, 생성자 등을 동적으로 호출하거나 접근할 때 사용합니다. 리플렉션의 단점은 성능 오버헤드가 크고, 코드가 복잡해지며 타입 안전성이 떨어진다는 점입니다. 주로 런타임에만 필요한 경우에 사용해야 합니다.
제네릭 메서드 예시:
public static T Max<T>(T a, T b) where T : IComparable<T> { return a.CompareTo(b) > 0 ? a : b; }
이 코드는 두 값을 비교하여 더 큰 값을 반환하는 제네릭 메서드입니다. T 타입은 IComparable<T> 인터페이스를 구현해야 하며, CompareTo 메서드를 통해 값을 비교합니다.