카테고리 없음

내일배움캠프 73일차 TIL 최종 프로젝트 - 제네릭(Generic)

joseph2518 2024. 12. 26. 21:58

20241226 / Unity_6차  16주차 목요일

 

 

 

제네릭(Generic)은 데이터 타입을 일반화(generalize)하여 재사용 가능한 코드를 작성할 수 있게 하는 프로그래밍 기능입니다.

 

탄생 배경

  • 타입 안정성 부족 문제
    • C# 1.0과 같은 초기 언어에서는 ArrayList나 Hashtable처럼 데이터 타입을 명시하지 않는 컬렉션이 사용됨.
    • 이러한 컬렉션은 컴파일러가 타입 검사를 하지 못하기 때문에, 런타임에 잘못된 타입으로 캐스팅하면 오류가 발생.
  • 박싱(Boxing)과 언박싱(Unboxing) 문제
    • 값 형식 데이터를 컬렉션에 추가할 때는 박싱, 컬렉션에서 꺼낼 때는 언박싱이 발생.
    • 이는 성능 저하메모리 사용 증가의 원인이 됨.

주된 사용 목적

  • 타입 안정성 제공
    • 컴파일 시점에 데이터 타입을 지정해, 런타임 오류를 방지.
  • 코드 재사용성 향상
    • 데이터 타입에 의존하지 않는 범용 코드를 작성 가능.
  • 성능 최적화
    • 박싱/언박싱을 방지해 메모리 사용을 줄이고 성능을 개선.