이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
모델을 보호하여 내용을 숨기기
지적 재산을 노출하지 않고 제3자와 모델을 공유하고자 할 때는 해당 모델을 보호해야 합니다. 모델을 보호하면 해당 모델을 참조 모델로 컴파일함으로써 원본 모델의 구현 세부 정보를 숨길 수 있습니다. 보호된 모델에는 사용자가 지정한 선택적 함수를 지원하기 위한 파생 파일이 포함되어 있습니다.
Simulink® Coder™을 사용하여 모델을 보호하면, 보호된 모델의 사용자에게 다음을 허용할 수 있습니다:
보호된 모델을 포함하는 모델을 표준 모드, 액셀러레이터 모드, 고속 액셀러레이터 모드 또는 외부 모드에서 시뮬레이션합니다.
모델의 내용과 블록 파라미터를 포함하여, 모델의 읽기 전용 웹 뷰를 엽니다. 모델의 읽기 전용 웹 뷰를 생성하려면 Simulink Report Generator™ 라이선스가 필요합니다.
보호된 모델을 포함하는 모델에 대한 C 및 C++ 코드를 생성합니다.
HDL Coder™ 라이선스가 있는 경우, 보호된 모델이 포함된 모델에 대한 HDL 코드를 생성하십시오.
Embedded Coder® 라이선스를 보유하고 있으며 모델에 대해 ERT 기반 시스템 타깃 파일을 지정한 경우, 독립 실행형 인터페이스를 통해 보호된 모델에 대한 코드를 생성하십시오.
원하는 경우 각 옵션에 비밀번호 보호 기능을 설정할 수 있습니다. 이 옵션 중 하나에 대해 암호 보호를 선택하면, 소프트웨어는 AES-256 암호화를 사용하여 관련 파일을 보호합니다. 보호된 모델을 생성하기 전에, 제3자가 해당 모델과 이 Best Practices for Creating Protected Models를 어떻게 사용할지 고려해 보십시오.
보호된 모델을 생성할 때:
Simulink Coder는 모델의 보호된 버전을 생성하여, 원본 모델과 동일한 이름을 가지며 확장자가
.slxp인 파일에 저장합니다..slx확장자를 가진 원본 모델 파일은 변경되지 않습니다. Model 블록을 통해 모델을 보호하더라도, 그 Model 블록은 변경되지 않습니다.선택적으로, Simulink Coder은 보호된 모델, 해당 보호된 모델을 위한 하네스 모델 및 추가 지원 파일이 포함된 프로젝트 아카이브(
.mlproj)를 생성합니다.
이 예제에서는 읽기 전용 보기, 시뮬레이션 또는 코드 생성을 위해 참조된 모델로부터 보호된 모델을 생성하는 방법을 보여줍니다.
부모 모델 준비하기
선택적으로, 상위 모델의 Model 블록을 구성하여 원래 참조된 모델을 가리키도록 할 수 있습니다. 이 단계는 보호된 모델을 생성할 때 Model 블록이 보호된 참조로 변환되는 것을 방지합니다.
보호하려는 모델을 참조하는 상위 모델을 엽니다. 이 예제를 위해
sldemo_mdlref_basic라는 이름의 모델을 열어주세요.각 Model 블록에 대해 블록 파라미터 대화 상자를 열고, 모델 이름 필드에 확장자
.slx를 지정하십시오.모델과 보호된 모델이 모두 같은 폴더에 존재할 경우,
.slxp가.slx보다 우선합니다. 확장자를 지정하지 않으면, 원래의 Model 블록은 원래 모델이 아닌 보호된 모델을 참조합니다.확인을 클릭합니다.
참조 모델 보호하기
sldemo_mdlref_basic 모델에서 세 개의 Model 블록 중 하나를 클릭하세요. Simulink 툴스트립의 Model Block 탭에서 보호를 클릭합니다.
보호 모델 생성기가 열립니다.

일반 탭에서 지원할 함수를 지정하십시오.
시뮬레이션와 코드 생성를 선택하십시오. 이러한 옵션을 통해 보호된 모델 사용자는 보호된 모델을 참조하는 모델에 대한 시뮬레이션을 수행하고 코드를 생성할 수 있습니다. 보호된 모델의 함수를 비밀번호로 보호하려면, 최소 8자 이상의 비밀번호를 입력하십시오. 각 옵션마다 고유한 비밀번호를 설정할 수 있습니다.
팁
보호 모델 생성기는 MATLAB® 세션이 진행되는 동안 모델에 대한 설정을 캐시합니다. 대화 상자를 닫았다가 다시 열어도 설정은 그대로 유지됩니다. 비밀번호와 조정 가능한 파라미터 선택 사항은 캐시에 저장되지 않습니다. 기본 설정을 복원하려면 Reset를 클릭하세요. (R2023b 이후)
Embedded Coder 라이선스를 보유하고 있으며, 모델에 ERT 기반 시스템 타깃 파일(예:
ert.tlc)이 지정된 경우, 코드 인터페이스 필드가 표시됩니다.이 예제에서
sldemo_mdlref_basic는 ERT 기반 시스템 타깃 파일을 지정하지 않으므로, 보호 모델 생성기에서는 코드 인터페이스 옵션을 사용할 수 없습니다.콘텐츠 유형 목록에서
난독 처리된 소스 코드를 선택하면 보호된 모델의 소스 코드 용도와 논리를 숨길 수 있습니다. 모델 보호 옵션에 대한 자세한 내용은 Content type를 참조하십시오.원하는 경우, 식별자 태그 입력란에 사용자 지정 텍스트 태그를 지정할 수 있습니다. 예를 들어, 보호된 모델에 파일 출처 정보를 저장하려면 해당 보호된 모델의 생성 시 지정된 작업 번호, Git™ 커밋 또는 지속적 통합 시스템 태그를 지정하십시오. (R2024b 이후)
시뮬레이션 옵션 탭에서, 보호된 모델의 사용자가 시뮬레이션 중에 조정할 수 있는 파라미터를 지정합니다.
모델을 컴파일하고 조정 가능한 파라미터를 나열하려면, 시뮬레이션을 위한 조정 가능형 파라미터 섹션에서 새로 고침를 클릭하십시오 (R2023b 이후).
시뮬레이션 중에 보호된 모델 사용자가 조정할 수 있도록 할 파라미터를 선택하십시오.
이 예제에서
sldemo_mdlref_basic에는 조정 가능한 파라미터가 없습니다.참고
코드 생성 시, auto 스토리지 클래스가 아닌 파라미터는 조정 가능합니다. 자세한 내용은 Storage Classes for Parameters and Signals Used in Model Blocks 항목을 참조하십시오.
저장 옵션 탭에서 보호된 모델을 저장할 위치를 지정하고, 보호된 모델을 관련 파일과 함께 프로젝트에 저장할지 여부와 하네스 모델을 생성할지 여부를 설정합니다.
대상 폴더 상자에 보호 대상 모델의 폴더 경로를 지정하십시오. 디폴트 값은 현재 작업 폴더입니다.
보호된 모델과 함께 지원 파일을 자동으로 수집, 생성 및 패키징하려면 프로젝트에 종속성까지 포함하여 보호 모델 패키징를 선택하십시오.
참고
프로젝트를 공유하기 전에, 프로젝트에 필요한 보조 파일이 포함되어 있는지 확인하십시오. 지원 파일이 누락된 경우, 관련 하네스 모델에 대한 시뮬레이션을 수행하거나 코드를 생성하면 누락된 파일을 파악하는 데 도움이 될 수 있습니다. 프로젝트에 누락된 종속성을 추가하고, 필요에 따라 하네스 모델을 업데이트하십시오.
프로젝트에 종속성까지 포함하여 보호 모델 패키징를 선택하면 보호 모델에 대한 하네스 모델 만들기가 선택됩니다. 이 프로젝트에는 하네스 모델이 포함되어 있으며, 보호된 모델을 참조하는 Model 블록을 위한 격리된 환경을 제공합니다.

보호된 모델을 더욱 세부적으로 사용자 지정하려면 다음을 수행할 수 있습니다:
코드 난독화를 위해 사용자 지정 난독화 도구를 지정합니다. 보호된 모델에 대한 사용자 지정 난독화 도구를 지정하기 항목을 참조하십시오.
여러 코드 생성 타깃을 지정합니다. 여러 타깃에 대한 보호된 모델 생성 항목을 참조하십시오.
보호된 모델에 대한 콜백을 정의하십시오. Define Callbacks for Protected Models 항목을 참조하십시오.
보호된 모델을 생성하려면 만들기를 클릭하세요.
보호된 모델, 하네스 모델 및 지원 파일이 포함된 프로젝트 아카이브(.mlproj)가 지정된 대상 폴더에 생성됩니다. 보호된 모델을 테스트하려면, 파일 패널에서 프로젝트 아카이브 파일을 더블 클릭하고 저장할 폴더를 지정한 다음, 아카이브의 내용을 추출하십시오. 또는 프로젝트 아카이브를 마우스 오른쪽 버튼으로 클릭하세요. 그런 다음 여기에 압축 풀기를 클릭하세요. 프로젝트가 열리면, 추출된 파일들은 프로젝트 아카이브 이름을 딴 새 폴더에 저장됩니다.
보호된 모델을 테스트하여 원본 모델과 비교해 볼 수 있습니다. 자세한 내용은 보호된 모델 테스트 항목을 참조하십시오.
모델 계층 구조에서 보호된 모델을 사용하려면, 하네스 모델에 포함된 것과 같은 Model 블록을 통해 해당 모델을 참조하십시오. 보호된 모델을 참조하는 Model 블록의 시뮬레이션 모드는 액셀러레이터로 설정됩니다. 모드를 변경할 수 없습니다. 자세한 내용은 Reference Protected Models from Third Parties 항목을 참조하십시오.
모델을 보호하는 다른 방법들
현재 모델 계층 구조의 최상위 모델에서 보호된 모델을 생성하려면 다음 옵션 중 하나를 사용하십시오.
Simulink 툴스트립의 시뮬레이션 탭에서 저장 버튼의 화살표를 클릭한 다음 보호 모델를 선택합니다.
Simulink 툴스트립의 C 코드 탭에서 공유 버튼의 화살표를 클릭한 다음 Generate Protected Model를 선택합니다.
프로그래밍 방식으로 보호된 모델을 생성하려면 Simulink.ModelReference.protect 함수를 사용하십시오.
보호 모델 리포트
Simulink 편집기에서 보호 모델을 생성하면 보호 모델 리포트가 생성되며, 이 리포트는 보호 모델의 일부로 포함됩니다. 이 예제에서 보호 모델 리포트를 보려면, 보호 모델을 더블 클릭하거나 하네스 모델 내 블록에 있는 보호 모델 배지 아이콘을 마우스 오른쪽 버튼으로 클릭한 다음 리포트 표시를 선택하십시오.

이 리포트에는 다음 내용이 포함되어 있습니다:
요약에는 다음 테이블들이 포함되어 있습니다:
환경은 Simulink 버전 및 기타 제품 버전과 보호 모델을 생성하는 데 사용된 플랫폼을 제공합니다.
지원되는 기능은 보호 모델이 지원하는 각 가능한 함수에 대해
켜기,끄기또는비밀번호 보호를 사용하여 켜기를 보고합니다. 보호된 모델을 여러 타깃에 맞게 구성하는 경우, 이 테이블에는 지원되는 타깃 목록이 포함되어 있습니다.
인터페이스 리포트는 입력 및 출력 사양, 내보낸 함수 정보, 인터페이스 파라미터, 데이터 저장소 등의 모델 인터페이스 정보를 포함합니다.
이 리포트에는 보호되지 않은 모델에 대한 코드 생성 리포트에 포함되는 다른 섹션(예: 코드 메트릭 리포트, 추적성 리포트)이 포함되어 있지 않습니다. 이러한 리포트에는 모델 설계에 대한 추가 정보가 포함되기 때문입니다.
프로그래밍 방식으로 보호된 모델에 대한 정보를 얻으려면 slxpinfo 함수를 사용하십시오.
보호 대상 모델의 요구 사항 및 제한 사항
보호된 모델을 생성할 때는 다음 요구 사항을 고려하십시오.
보호된 모델을 생성하려면 Simulink Coder 또는 HDL Coder 라이선스가 있어야 합니다.
Simulink 외에도 다른 제품 라이선스가 필요한 블록이 포함된 모델을 보호하는 경우, 별도의 MATLAB 세션에서 해당 보호된 모델을 사용하려면 Simulink 라이선스만 있으면 됩니다. 그러나 Simscape™ 블록을 포함하고 있으며,
VariableStepAuto또는daessc로 설정된 가변 스텝 솔버를 사용하는 모델의 경우, Simscape 라이선스도 필요합니다.모델은 MATLAB 경로에 있어야 합니다.
이 모델은 보호 중에 활성화된 구성을 사용합니다. 보호된 모델의 구성을 변경할 수 없습니다.
모델에 변형이 포함된 경우, 보호된 모델에는 런타임 변형과 보호 중에 활성화된 변형만 포함됩니다. 보호된 모델에서 변형의 런타임 활성화를 지원하려면, 변형 제어 변수에 대해
Simulink.Parameter객체를 지정하십시오. 그런 다음, 보호된 모델을 생성할 때 변형 제어 변수들이 시뮬레이션을 위한 조정 가능한 파라미터임을 지정하십시오.모델 보호 프로세스는 콜백을 보존하지 않습니다. 보호된 모델에서 사용할 콜백을 생성하는 방법에 대한 자세한 내용은 Define Callbacks for Protected Models를 참조하십시오.
보호된 모델의 이름을 변경하거나 확장자를 수정하지 마십시오. 그렇게 할 경우, 모델의 원래 이름과 접미사를 복원할 때까지 해당 모델을 사용할 수 없습니다.
모델과 해당 모델이 참조하는 모델에는 고유한 이름을 지정하십시오. 보호된 모델이 다른 보호된 모델이나 다른 보호된 모델의 계층 구조 내에 있는 모델과 이름이 동일한 모델을 참조하는 경우, 해당 보호된 모델의 사용에 제한이 있습니다. 최상위 모델이 이러한 명명 충돌이 있는 두 개의 보호된 모델을 참조하는 경우, 해당 최상위 모델을 보호하거나, 최상위 모델에 대한 코드를 생성하거나, SIL(Software-in-the-Loop), PIL(Processor-in-the-Loop) 또는 고속 액셀러레이터 모드에서 최상위 모델을 시뮬레이션할 수 없습니다.
모델에 인라인 처리되지 않은 S-Function이 포함된 경우, .MEX 파일에 고유한 이름을 지정하십시오. MATLAB 경로에 있는 다른 .MEX 파일과 이름 충돌이 발생하면, 보호된 모델을 시뮬레이션할 수 없습니다.
Simulink Real-Time™에서 실행할 수 있는 보호된 모델을 생성하려면, Speedgoat® I/O Blockset을 설치하고 모델을 보호하기 전에 코드 생성 > 시스템 타깃 파일 파라미터를 타깃 컴퓨터에 맞게(예:
speedgoat.tlc) 설정해야 합니다.
또한 해당 모델은 Model Reference Requirements and Limitations에 명시된 요건을 충족해야 합니다.
코드 생성 요구 사항 및 제한 사항
코드 생성을 지원하는 보호된 모델을 생성하려면, 보호 대상 모델이 다음 요구 사항을 충족해야 합니다:
모델은 표준 모드, 액셀러레이터 모드, SIL(Software-in-the-Loop) 모드 또는 PIL(Processor-in-the-Loop) 모드 중 하나를 사용해야 하며, 단일 타깃을 사용해야 합니다.
모델에는 인라인 처리되지 않은 S-Function이 포함되어서는 안 됩니다.
해당 모델에서는 코드 생성 > 검증 > 함수 실행 시간 측정 파라미터가 선택되어 있어서는 안 됩니다. 모델을 보호할 때 이 옵션을 선택하면, 소프트웨어는 해당 파라미터를 비활성화하고 경고 메시지를 표시합니다.
보호된 참조 모델은 암호 보호 없이도 코드 생성을 지원해야 합니다.
이 모델은 참조되는 각 보호 대상 모델의 콘텐츠 유형와 호환되어야 합니다. 이 테이블은 호환성 정보를 제공합니다.
코드 생성 콘텐츠 유형 호환성
보호된 부모 모델 콘텐츠 유형 호환되는 보호된 참조 모델 콘텐츠 유형 이진 파일이진 파일난독 처리된 소스 코드
이진 파일에서'ObfuscateCode'를'false'로 설정이진 파일이진 파일에서'ObfuscateCode'를'false'로 설정난독 처리된 소스 코드읽기 가능한 소스 코드
난독 처리된 소스 코드난독 처리된 소스 코드
읽기 가능한 소스 코드난독 처리된 소스 코드읽기 가능한 소스 코드
보호된 상위 모델과 보호된 참조 모델의 콘텐츠 유형가 일치하지 않을 경우, 코드 생성 시 더 높은 수준의 보호를 제공하는 콘텐츠 유형가 적용됩니다. 예를 들어,
이진 파일로 설정된 보호된 부모 모델은난독 처리된 소스 코드로 설정된 보호된 참조 모델에 대해이진 파일를 생성합니다.읽기 가능한 소스 코드로 설정된 보호된 부모 모델은난독 처리된 소스 코드로 설정된 보호된 참조 모델에 대해난독 처리된 소스 코드를 생성합니다.
보호된 모델이 포함된 모델의 코드 생성 과정에서 오류가 발생하지 않도록 하려면:
보호된 모델 이름은 동일한 모델 참조 계층 구조 내의 다른 모델 이름과 중복되지 않아야 합니다.
인터페이스가 일치해야 합니다.
파라미터들은 호환되어야 합니다.
중첩된 보호 모델의 요구 사항 및 제한 사항
보호된 모델의 수신자가 해당 모델을 참조하는 모델을 보호할 수 있도록 하려면, 보호된 모델은 다음 조건을 충족해야 합니다:
액셀러레이터 모드를 지원합니다. 보호 모델 생성기에서 시뮬레이션을 선택하거나,
Simulink.ModelReference.protect함수를 사용하여'Mode'를'Accelerator'또는'CodeGeneration'로 설정해야 합니다.기본 설정인
'CodeInterface'를 사용하십시오:'Model reference'.시뮬레이션 시 비밀번호 보호 기능을 사용하지 마십시오.
콜백이 없습니다.
비밀번호 보호가 적용된 상위 모델이 지원하도록 의도된 작업들을 비밀번호 보호 없이 지원합니다.
보호된 상위 모델이 코드 생성을 지원하도록 설계된 경우, 해당 보호된 상위 모델에서 의도된 콘텐츠 유형와 호환되는 콘텐츠 유형를 사용하십시오. 호환되는 콘텐츠 유형 옵션 목록은 앞 절의 테이블을 참조하십시오.
보호된 상위 모델에서 사용하도록 의도된 것과 동일한 컴파일러를 사용하십시오.
다른 보호된 모델이나 다른 보호된 모델의 계층 구조 내에 있는 모델과 이름이 동일한 모델을 참조해서는 안 됩니다.
보호하려는 모델이 보호된 모델을 참조하는 경우, 참조되는 보호된 모델은 앞서 언급한 요구 사항을 충족해야 합니다.
보호된 모델을 참조하는 모델을 보호할 때는, 참조되는 보호된 모델의 조정 가능한 파라미터를 보호하려는 모델에서도 조정 가능하도록 지정해야 합니다.
참고
HDL 코드 생성 옵션을 선택하여 생성한 보호된 모델은, 해당 보호된 모델을 참조하는 모델에 대한 암호화 및 시뮬레이션과 HDL 코드 생성을 지원합니다. 이 옵션을 사용할 경우 HDL 소스 코드를 난독화하거나, 콜백을 사용하거나, 중첩된 보호 모델을 사용할 수 없습니다. HDL 코드 생성의 제한 사항에 대해 자세히 알아보려면 Protected Model Restrictions for HDL Code Generation (HDL Coder)를 참조하십시오.