20241226 / Unity_6차 16주차 목요일
제네릭(Generic)은 데이터 타입을 일반화(generalize)하여 재사용 가능한 코드를 작성할 수 있게 하는 프로그래밍 기능입니다.
탄생 배경
- 타입 안정성 부족 문제
- C# 1.0과 같은 초기 언어에서는 ArrayList나 Hashtable처럼 데이터 타입을 명시하지 않는 컬렉션이 사용됨.
- 이러한 컬렉션은 컴파일러가 타입 검사를 하지 못하기 때문에, 런타임에 잘못된 타입으로 캐스팅하면 오류가 발생.
- 박싱(Boxing)과 언박싱(Unboxing) 문제
- 값 형식 데이터를 컬렉션에 추가할 때는 박싱, 컬렉션에서 꺼낼 때는 언박싱이 발생.
- 이는 성능 저하와 메모리 사용 증가의 원인이 됨.
주된 사용 목적
- 타입 안정성 제공
- 컴파일 시점에 데이터 타입을 지정해, 런타임 오류를 방지.
- 코드 재사용성 향상
- 데이터 타입에 의존하지 않는 범용 코드를 작성 가능.
- 성능 최적화
- 박싱/언박싱을 방지해 메모리 사용을 줄이고 성능을 개선.