.NET Wrapper란?

.NET Wrapper는 .NET 코드와 다른 런타임 또는 네이티브 코드 사이를 연결하기 위해 만든 어댑터 계층이다. 하나의 표준 기술 이름이라기보다 호출 경계와 데이터 변환을 감싸는 구현 방식에 가깝다.




왜 필요한가

C#으로 작성한 .NET 어셈블리를 C++ 프로그램에서 쓰거나, 기존 네이티브 라이브러리를 .NET 애플리케이션에서 사용해야 하는 상황이 있다. 호출 규약, 메모리 소유권, 문자열과 구조체 표현이 달라 직접 연결하기 어려울 수 있다.




대표적인 방식

방식용도
P/Invoke.NET에서 C DLL 함수를 호출할 때
C++/CLI네이티브 C++와 .NET 사이에 관리형 래퍼를 둘 때
COM interopCOM 기반 구성 요소와 .NET을 연결할 때
별도 API프로세스나 플랫폼 경계를 HTTP, gRPC 등으로 분리할 때




Wrapper는 호출하기 쉬운 API를 만들 수 있지만, 데이터 변환과 오류 처리, 수명 관리가 추가된다. 특히 문자열 인코딩, 포인터 소유권, 예외 전달 방식을 명확히 정해야 한다.




새로운 코드에서는 실제 호출 경계에 맞는 방식을 먼저 고른다. 단순 DLL 호출이면 P/Invoke, 복잡한 C++ 객체 모델을 감싸야 하면 C++/CLI 또는 별도 네이티브 API를 검토한다.

Comments

댓글을 불러오고 있습니다.