reference link: https://stackoverflow.com/a/8628481/13153152
Wrapping
이미 제공되고 있는 함수, 클래스 등의 기능들을 다른 인터페이스로 사용할 수 있게 만드는 것.
- 보통 같은 언어로 작성
- 원래 코드를 재작성하지 않고 향상된 기능(인터페이스)을 제공할 수 있음
- 빠르게 목표 달성이 가능함
- 원래 코드가 변경될 때 사소한 업데이트로 계속해서 기능 제공 가능
- 원래 코드 전체를 래핑하려고 하지 말 것
Binding
다른 언어로 기능들을 제공할 수 있게 만드는 것
- 다른 언어의 기능을 선택한 언어로 가져올 수 있음
- 포팅에 비해 상대적으로 빠름
- 래핑과 유사하게 사소한 업데이트로 계속해서 기능 제공 가능
- Wrapper처럼 반복되는 부분이 있음
- 일반적으로 큰 성능 저하가 동반됨
Porting
어떤 코드를 다른 환경에 제공하기 위해 옮기는 것
- 코드를 개선할 기회가 주어짐
- 원래 코드와 포팅할 코드의 기능에 대한 이해도가 높아짐
- 상당한 시간을 소요함
- 원래 코드의 모든 기능을 포팅할 대상의 환경에서 구현할 수 있는지 확인해야 함
- 원래 코드의 업데이트를 따라가기 위해 작업할 것이 많음