애플리케이션에 구현된 프레임워크의 버전이 deprecated(구 버전이되어 더이상 지원하지 않는)되어 신규버전에서 호환되지 않는 경우가 흔히 발생한다. 심(shim)은 이러한 경우에 기존 애플리케이션이 돌아갈 수 있도록 지원하는 코드들이라고 생각할 수 있다.
참고 : https://en.wikipedia.org/wiki/Shim_(computing)
컴퓨터 프로그래밍에서 심은 API 호출을 투명하게 가로채서 전달된 인수를 변경하거나, 연산 자체를 처리하거나, 연산을 다른 곳으로 리디렉션하는 라이브러리입니다.[1][2] 심은 최신 환경에서 오래된 API를 지원하거나, 이전 환경에서 새로운 API를 지원하는 데 사용할 수 있습니다. 또한 개발된 소프트웨어 플랫폼과 다른 소프트웨어 플랫폼에서 프로그램을 실행하는 데에도 심을 사용할 수 있습니다.
이전 API용 쉼은 일반적으로 API의 동작이 변경되어 여전히 이전 기능에 의존하는 이전 애플리케이션에 호환성 문제가 발생할 때 발생하며, 이러한 경우 최신 코드 위에 얇은 호환성 계층을 추가하여 이전 API를 계속 지원할 수 있습니다. 최신 API를 위한 심은 다음과 같이 정의됩니다: "해당 환경의 수단만을 사용하여 새로운 API를 이전 환경에 제공하는 라이브러리"[3]로 정의됩니다.
번역 : DeepL
https://developer.mozilla.org/ko/docs/Glossary/Shim
심shim은 이미 존재하는 코드의 동작을 바로잡는 데 사용되는 코드 모음이며, 보통 문제를 야기시키는 신규 API에 대응한다. 시중에 배포된 브라우저에서 지원되지 않는 신규 API를 구현하는 폴리필(polyfill)과 대조된다.
단어 본래의 의미는 틈을 메우는 무언가에 shim이라는 단어를 쓰는데, 구버전 API와 신규API 사이의 틈을 메꾼다는 의미로도 shim을 사용하는 것으로 보인다.
하나의 사례로 Tensorflow 1.0 version에서 2.0 version 사이를 이어주기 위한 shim이 있다.
Use TF1.x models in TF2 workflows
This guide provides an overview and examples of a modeling code shim that you can employ to use your existing TF1.x models in TF2 workflows such as eager execution, tf.function, and distribution strategies with minimal changes to your modeling code.
tensorflow의 경우에는 python의 decorator 기능을 사용하여 shim을 제공한다. 위키에 나와있는 내용"최신 코드 위에 얇은 호환성 계층을 추가하여 이전 API를 계속 지원"처럼 약간의 코드 변형으로 TF 1.0 버전의 코드를 원활히 사용할 수 있게 shim들에 대해 doc을 제공한다.
'English > expressions' 카테고리의 다른 글
논문 속 Ablation Study는 무엇인가? (0) | 2024.01.02 |
---|---|
IT상식 - 영어 단어 (0) | 2023.12.16 |
수학에서 자주 쓰이는 그리스 문자 Symbols (0) | 2023.08.21 |
학술 논문에서 자주 쓰이는 줄임말 - i.e. e.g. cf. (0) | 2023.08.18 |
[English] IT 관련 글에서 자주 보이는 축약어/숙어 모음 (0) | 2023.04.26 |