- 박싱 언박싱
기술 면접 예상 질문 - 박싱과 언박싱에 대하여 설명해주세요.
박싱 언박싱 이란?
C#에서는 모든 인스턴스의 최상위 부모인 Object클래스가 존재한다.
박싱 이란 값 타입을 참조 타입으로 변환하는 프로세스로 값 타입을 기반으로 새로운 Object 객체를 생성한다.
언박싱 이란 Object를 다시 원래의 형식으로 되돌리는 프로세스를 말한다.
박싱 언박싱을 사용할 때 주의해야 할 점이 있다면 무엇이 있나요?
-
박싱 언박싱을 사용하게 되면 항상 새로운 메모리에 값을 복사해야 하기 때문에 성능 저하를 일으킬 수 있다.
-
잘못된 타입으로 언박싱을 시도 했을때 런타임 오류가 발생한다.
박싱 언박싱을 피하는 방법
-
제네릭을 사용한다.
-
기능을 구현할 때 오버로드를 사용해 값과 참조 타입 모두를 처리할 수 있도록 한다.
Summary
박싱 언박싱은 값 타입과 참조 타입 간의 변환 프로세스를 말합니다.
하지만 값을 복사하거나, 메모리를 새로 할당 해야하고 타입 안전성에 문제가 생기기 때문에
제네릭, 오버로드를 사용해 피하는 것이 좋습니다.