이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

코드에서 오류와 경고 확인

MATLAB® 코드 분석기는 코드에 코딩 문제가 있는지 자동으로 확인합니다.

편집기(Editor)에서 자동으로 코드 확인 — 코드 분석기(Code Analyzer)

코드에 대한 경고와 오류 메시지를 보고, 이 메시지를 참고하여 파일을 수정할 수 있습니다. 메시지는 계속해서 자동으로 업데이트되므로, 변경한 후에 메시지에 나와 있는 문제가 해결되었는지 확인할 수 있습니다. 일부 메시지는 추가 정보를 제공하거나, 자동 코드 정정 기능을 제공하거나, 이 둘을 모두 제공하기도 합니다.

지속적인 코드 검사 활성화하기

편집기에서 MATLAB 코드 파일에 지속적인 코드 검사를 사용하려면 다음을 수행하십시오.

  1. 홈(Home) 탭의 환경(Environment) 섹션에서 기본 설정(Preferences)을 클릭합니다.

  2. MATLAB > 코드 분석기(Code Analyzer)를 선택한 다음 통합 경고 및 오류 메시지 사용 체크박스를 선택합니다.

  3. 밑줄(Underline) 옵션을 경고 및 오류에 밑줄 표시(Underline warnings and errors)로 설정한 다음 확인(OK)을 클릭합니다.

참고

MATLAB Online™에서는 지속적인 코드 검사에 대한 기본 설정을 변경할 수 없습니다. 지속적인 코드 검사는 항상 활성화됩니다.

지속적인 코드 검사 사용하기

편집기에서는 MATLAB 코드 파일에 지속적인 코드 검사를 사용할 수 있습니다.

  1. 편집기에서 MATLAB 코드 파일을 엽니다. 이 예제에서는 MATLAB에 함께 제공되는 샘플 파일 lengthofline.m을 사용합니다.

    1. 다음과 같이 예제 파일을 엽니다.

      open(fullfile(matlabroot,'help','techdoc','matlab_env',...
           'examples','lengthofline.m'))
      
    2. 쓰기 권한이 있는 폴더에 예제 파일을 저장합니다. 이 예제에서는 lengthofline.mC:\my_MATLAB_files에 저장합니다.

  2. 메시지 표시줄 맨 위에 나타나는 메시지 표시자(Message Indicator)를 검토하여 파일에 대해 보고된 코드 분석기 메시지를 확인합니다.

    • 빨간색은 구문 오류나 기타 중요한 문제가 감지되었음을 나타냅니다.

    • 주황색은 경고 또는 개선할 여지가 있는 코드(오류는 아님)가 발견되었음을 나타냅니다.

    • 녹색은 오류, 경고 또는 개선할 사항이 발견되지 않았음을 나타냅니다.

    이 예제에서는 메시지 표시자가 빨간색으로, 파일에 적어도 하나의 오류가 있음을 나타냅니다.

  3. 메시지 표시자를 클릭하여 메시지가 포함된 다음 코드 조각으로 이동합니다. 다음 코드 조각의 위치는 상태 표시줄에 나타나는데, 현재 커서 위치에서 상대적입니다.

    lengthofline 예제에서는 21번 라인에 첫 번째 메시지가 있습니다. 커서가 21번 라인의 시작 위치로 이동합니다.

    메시지가 있는 코드 조각은 오류인 경우 빨간색으로 밑줄이 표시되고, 경고나 개선할 사항인 경우 주황색으로 밑줄이 표시됩니다.

  4. 밑줄이 표시된 코드 조각 내에서 마우스 포인터를 움직여 메시지를 표시합니다.

    메시지는 툴팁으로 열리며, 세부 정보(Details) 버튼이 포함되어 있어 누르면 메시지를 확장하여 추가 정보를 보여줍니다. 추가 정보가 없는 메시지도 있습니다.

  5. 세부 정보(Details) 버튼을 클릭합니다.

    창이 확장되어 자세한 설명과 사용자 동작이 표시됩니다.

  6. 필요한 경우 코드를 수정합니다.

    파일을 저장하지 않더라도, 메시지 표시자와 밑줄 표시가 변경 내용을 반영하여 자동으로 업데이트됩니다.

  7. 27번 라인의 prod에 커서를 올려놓습니다.

    이 코드는 경고 메시지가 있기 때문에 밑줄이 표시되어 있고, 자동 수정을 사용할 수 있으므로 강조 표시되어 있습니다. 메시지를 표시하면 자동 수정을 적용할 수 있는 버튼이 함께 나타납니다.

  8. 다음 중 하나를 수행하여 문제를 수정합니다.

    • 이전 경험을 통해 수정 사항에 동의하면 수정(Fix)을 클릭하십시오.

    • 수정 기능에 대해 잘 모르는 경우에는 다음과 같이 수정 사항을 확인한 후 적용하십시오.

      1. 강조 표시된 코드를 마우스 오른쪽 버튼으로 클릭한 다음(버튼이 하나인 마우스를 사용할 경우 Ctrl 키를 누른 상태에서 강조 표시된 코드를 클릭) 상황별 메뉴에서 첫 번째 항목을 확인합니다.

      2. 수정을 클릭합니다.

        MATLAB이 자동으로 코드를 수정합니다.

        이 예제에서는 MATLAB이 prod(size(hline))numel(hline)으로 바꿉니다.

  9. 다음 중 하나를 수행하여 다른 메시지로 이동합니다.

    • 다음 메시지로 이동하려면 메시지 표시자를 클릭하거나 밑줄 표시된 다음 코드 조각을 클릭하십시오.

    • 마커가 나타내는 라인으로 이동하려면 표시자 표시줄에서 빨간색 또는 주황색 라인을 클릭하십시오.

      lengthofline의 첫 번째 오류를 확인하려면 메시지 표시줄에서 첫 번째 빨간색 마커를 클릭하면 됩니다. 커서가 47번 라인의 첫 번째 의심 코드 조각으로 이동합니다. 세부 정보(Details) 버튼과 수정(Fix) 버튼이 흐리게 표시되면, 혹은 MATLAB Online의 경우 아무것도 표시되지 않으면, 이 메시지에 대한 추가 정보와 자동 수정이 없음을 나타냅니다.

      여러 개의 메시지가 단일 문제를 나타내거나 여러 문제를 나타낼 수 있습니다. 문제 하나를 해결하면 모든 문제가 해결될 수도 있고, 문제 하나를 해결한 후에 다른 메시지가 변경되거나 무엇을 해야 할지가 더 명확해질 수도 있습니다.

  10. 코드를 수정하여 메시지에 나와 있는 문제를 해결합니다. 메시지 표시자가 자동으로 업데이트됩니다.

    이 메시지는 47번 라인에 짝이 맞지 않는 구분 기호가 있음을 암시합니다. 이 메시지를 조사하기 위해 편집기에서 각 구분 기호로 화살표 키를 이동하여 MATLAB이 구분 기호 불일치를 나타내는지 확인하십시오. 화살표를 사용한 구분 기호 일치 확인을 활성화하는 방법에 대한 지침은 키보드 기본 설정 구성하기 항목을 참조하십시오.

    여기에서는 짝이 맞지 않는 구분 기호는 없는 것 같습니다. 그러나 코드 분석 중 data{3}(;)의 괄호 안 세미콜론이 감지되어 명령문의 끝으로 해석됩니다. 메시지는 47번 라인에서 두 개의 명령문에 각각 짝이 맞지 않는 구분 기호가 있다고 보고합니다.

    문제를 해결하려면 47번 라인에서 data{3}(;)data{3}(:)으로 변경하십시오. 이제 47번 라인에 더 이상 밑줄이 나타나지 않습니다. 한 번의 변경으로 47번 라인에 대한 두 메시지의 문제가 모두 해결되었습니다. 이 변경으로 파일에서 오류만 제거되었기 때문에, 메시지 표시줄 맨 위의 메시지 표시자가 빨간색에서 주황색으로 바뀌며 경고와 잠재적 개선 사항만 남았음을 나타냅니다.

코드를 수정하여 모든 메시지를 해결하거나 지정된 메시지를 비활성시키면, 메시지 표시자가 녹색으로 바뀝니다. 모든 메시지가 해결된 예제 파일은 lengthofline2.m으로 저장되어 있습니다. 수정된 예제 파일을 열려면 다음 명령을 사용하십시오.

open(fullfile(matlabroot,'help','techdoc',...
     'matlab_env', 'examples','lengthofline2.m'))

코드 분석기 메시지 리포트 생성하기

다음 방법 중 하나를 사용하여 개별 파일이나 폴더에 있는 모든 파일에 대한 메시지가 들어 있는 리포트를 만들 수 있습니다.

  • 개별 MATLAB 코드 파일에 대해 리포트를 실행합니다.

    1. 편집기 창에서 을 클릭하고 코드 분석기 리포트 표시(Show Code Analyzer Report)를 선택합니다.

      코드 분석기 리포트가 MATLAB 웹 브라우저에 나타납니다.

    2. 리포트의 메시지를 참고하여 파일을 수정합니다.

    3. 파일을 저장합니다.

    4. 리포트를 다시 실행하여 변경 후 메시지에 있던 문제가 해결되었는지 확인합니다.

  • 폴더에 있는 모든 파일에 대해 리포트를 실행합니다.

    1. 현재 폴더 브라우저에서 을 클릭합니다.

    2. 리포트(Reports) > 코드 분석기 리포트(Code Analyzer Report)를 선택합니다.

    3. 리포트의 메시지를 참고하여 파일을 수정합니다.

      자세한 내용은 MATLAB 코드 분석기 리포트(Code Analyzer Report) 항목을 참조하십시오.

    4. 수정된 파일을 저장합니다.

    5. 리포트를 다시 실행하여 변경 후 메시지에 있던 문제가 해결되었는지 확인합니다.

코드 분석기의 메시지 표시자(Message Indicator) 조정과 메시지(Message) 조정

MATLAB 파일 작성을 어느 정도 완성했는지에 따라, 코드 밑줄 표시를 제한하려 할 수 있습니다. 코드에서 오류와 경고 확인의 1단계에 나와 있는 코드 분석기 기본 설정을 사용하여 이와 같이 할 수 있습니다. 예를 들어, 처음 코딩할 때 경고까지 표시되면 주의가 산만해질 수 있으므로 오류에만 밑줄이 표시되도록 할 수 있습니다.

코드 분석이 모든 상황에 대해 완벽한 정보를 제공하는 것은 아니며, 경우에 따라서는 메시지에 따라 코드를 변경하는 것을 원치 않을 수도 있습니다. 코드를 변경하지 않으려는 경우 해당 라인에 대한 표시와 메시지를 보지 않으려면 이를 표시하지 않을 수 있습니다. lengthofline 예제에서 49번 라인의 첫 번째 메시지는 "함수의 출력값을 표시하지 않으려면 세미콜론으로 명령문을 종료하십시오(Terminate statement with semicolon to suppress output (in functions))"입니다. 명령문 끝에 세미콜론을 추가하면 출력값이 표시되지 않으며, 세미콜론을 쓰는 것이 일반적입니다. 코드 분석에서, 출력값을 생성하지만 종료 세미콜론이 없는 라인에 대해 이 경고를 표시합니다. 49번 라인에 대한 출력값을 보려는 경우에는 메시지 제안을 무시하고 세미콜론을 추가하지 마십시오.

다음 몇 가지 다른 방법을 통해 경고와 오류 메시지의 표시자를 해제할 수 있습니다.

구문 오류와 같은 오류 메시지는 표시하지 않을 수 없습니다. 따라서, 이러한 메시지 유형에는 메시지를 표시하지 않는 방법에 대한 지침이 적용되지 않습니다.

현재 파일에서 메시지의 특정 인스턴스 표시 안 하기

현재 파일에서 코드 분석기 메시지의 특정 인스턴스를 표시하지 않을 수 있습니다. 예를 들어, 코드에서 오류와 경고 확인에 나와 있는 코드를 사용하여 다음 단계를 따르십시오.

  1. 49번 라인의 첫 번째 밑줄에서 마우스 오른쪽 버튼을 클릭합니다. (버튼이 하나인 마우스를 사용할 경우에는 Ctrl 키를 누른 상태로 클릭합니다.)

  2. 상황별 메뉴에서 '세미콜론으로 명령문을 종료하여...' 표시 안 함(Suppress 'Terminate statement with semicolon...') > 이 라인에서(On This Line)를 선택합니다.

    라인 끝에 주석 %#ok<NOPRT>가 나타납니다. 이는 MATLAB이 이 라인에 종료 세미콜론이 있는지 확인하지 않도록 지시합니다. 해당 메시지에 대한 밑줄과 메시지 표시줄의 표시자가 사라집니다.

  3. 표시하지 않으려는 메시지가 한 라인에 두 개 있는 경우에는 각 밑줄에서 각각 마우스 오른쪽 버튼을 클릭한 다음 상황별 메뉴에서 적절한 항목을 선택합니다.

    %#ok 구문이 확장됩니다. 예를 들어, 코드에서 오류와 경고 확인에 나와 있는 코드에서 49번 라인에 대한 두 개의 메시지를 모두 무시하면 %#ok<NBRAK,NOPRT>가 추가됩니다.

    코드 분석기 기본 설정이 이 메시지를 활성화하도록 설정되어 있더라도 %#ok가 이 기본 설정보다 우선하므로, 이런 방법으로 표시하지 않도록 설정된 메시지의 특정 인스턴스는 나타나지 않습니다. 나중에 해당 라인에서 종료 세미콜론을 확인하려는 경우에는 라인에서 %#ok<NOPRT>를 삭제하십시오.

현재 파일에서 메시지의 모든 인스턴스 표시 안 하기

현재 파일에서 특정 코드 분석기 메시지의 모든 인스턴스를 표시하지 않을 수 있습니다. 예를 들어, 코드에서 오류와 경고 확인에 나와 있는 코드를 사용하여 다음 단계를 따르십시오.

  1. 49번 라인의 첫 번째 밑줄에서 마우스 오른쪽 버튼을 클릭합니다. (버튼이 하나인 마우스를 사용할 경우에는 Ctrl 키를 누른 상태로 클릭합니다.)

  2. 상황별 메뉴에서 '세미콜론으로 명령문을 종료하여...' 표시 안 함(Suppress 'Terminate statement with semicolon...') > 이 파일에서(In This File)를 선택합니다.

라인 끝에 주석 %#ok<*NOPRT>가 나타납니다. 이는 MATLAB이 파일 전체에서 종료 세미콜론이 있는지 확인하지 않도록 지시합니다. 이 메시지에 해당하는 모든 밑줄뿐 아니라 메시지 표시자 표시줄의 표시도 사라집니다.

현재 파일에서 전혀 표시하지 않으려는 메시지가 한 라인에 두 개 있는 경우에는 각 밑줄에서 각각 마우스 오른쪽 버튼을 클릭한 다음 상황별 메뉴에서 적절한 항목을 선택합니다. %#ok 구문이 확장됩니다. 예를 들어, 코드에서 오류와 경고 확인에 나와 있는 코드에서 49번 라인에 대한 두 개의 메시지를 모두 무시하면 %#ok<*NBRAK,*NOPRT>가 추가됩니다.

코드 분석기 기본 설정이 이 메시지를 활성화하도록 설정되어 있더라도 %#ok가 이 기본 설정보다 우선하므로, 메시지는 나타나지 않습니다. 나중에 파일에서 종료 세미콜론을 확인하려는 경우에는 라인에서 %#ok<*NOPRT>를 삭제하십시오.

모든 파일에서 메시지의 모든 인스턴스 표시 안 하기

모든 파일에서 코드 분석기 메시지의 모든 인스턴스를 비활성화할 수 있습니다. 예를 들어, 코드에서 오류와 경고 확인에 나와 있는 코드를 사용하여 다음 단계를 따르십시오.

  1. 49번 라인의 첫 번째 밑줄에서 마우스 오른쪽 버튼을 클릭합니다. (버튼이 하나인 마우스를 사용할 경우에는 Ctrl 키를 누른 상태로 클릭합니다.)

  2. '세미콜론으로 명령문을 종료하여...' 표시 안 함(Suppress 'Terminate statement with semicolon...') > 모든 파일에서(In All Files)를 선택합니다.

그러면 코드 분석기 기본 설정이 수정됩니다.

표시하지 않으려는 메시지를 알고 있으면 다음과 같이 코드 분석기 기본 설정을 사용하여 직접 메시지를 비활성화할 수 있습니다.

  1. 홈(Home) 탭의 환경(Environment) 섹션에서 기본 설정(Preferences)을 클릭합니다.

  2. MATLAB > 코드 분석기(Code Analyzer)를 선택합니다.

  3. 메시지를 검색하여 표시하지 않으려는 메시지를 찾습니다.

  4. 모든 파일에서 표시하지 않으려는 각 메시지의 체크박스 선택을 취소합니다.

  5. 확인(OK)을 클릭합니다.

밑줄에서 마우스 오른쪽 버튼을 클릭하여 모든 파일에서 코드 분석기 메시지의 모든 인스턴스를 표시하지 않는 기능은 라이브 편집기에서 지원되지 않습니다. 라이브 편집기에서 코드 분석기 메시지의 모든 인스턴스를 표시하지 않으려면 코드 분석기 기본 설정을 사용하십시오. 모든 파일에서 코드 분석기 메시지의 모든 인스턴스를 표시하지 않는 기능은 MATLAB Online에서 지원되지 않습니다.

코드 분석기 메시지 설정 저장 및 재사용

특정 코드 분석기 메시지를 활성화하거나 비활성화하도록 지정한 다음 이러한 설정을 파일에 저장할 수 있습니다. 설정 파일을 특정 파일에 사용하려는 경우 코드 분석기 기본 설정 창에서 설정 파일을 선택합니다. 이 설정 파일은 다른 설정 파일을 선택할 때까지 유효한 상태로 유지됩니다. 일반적으로, 일부 파일에 특정 설정 파일을 사용하려는 경우 설정 파일을 변경합니다.

다음 단계를 따르십시오.

  1. 홈(Home) 탭의 환경(Environment) 섹션에서 기본 설정(Preferences)을 클릭합니다.

    기본 설정 대화 상자가 열립니다.

  2. MATLAB > 코드 분석기(Code Analyzer)를 선택합니다.

  3. 특정 메시지 또는 메시지 범주를 활성화하거나 비활성화합니다.

  4. 동작 버튼 을 클릭하고 다른 이름으로 저장(Save As)을 선택한 다음 설정을 txt 파일에 저장합니다.

  5. 확인(OK)을 클릭합니다.

이러한 설정을 임의의 MATLAB 파일에 재사용하거나, 다른 사용자에게 설정 파일을 제공할 수 있습니다.

저장된 설정을 사용하려면 다음을 수행하십시오.

  1. 홈(Home) 탭의 환경(Environment) 섹션에서 기본 설정(Preferences)을 클릭합니다.

    기본 설정 대화 상자가 열립니다.

  2. MATLAB > 코드 분석기(Code Analyzer)를 선택합니다.

  3. 활성화된 설정(Active settings) 드롭다운 목록에서 찾아보기...(Browse...)를 선택합니다.

    열기 대화 상자가 나타납니다.

  4. 설정 파일 중에서 하나를 선택합니다.

    선택한 설정은 모든 MATLAB 파일에 적용되며, 이는 다른 코드 분석기 설정 모음을 선택할 때까지 유효합니다.

표시 차단된 메시지가 포함된 코드 이해

표시 차단된 메시지가 포함된 코드를 받을 경우에는 이러한 메시지를 다시 표시하도록 설정할 필요 없이 해당 메시지를 살펴볼 수 있습니다. 메시지는 다음과 같은 이유로 표시되지 않는 상태가 되었을 수 있습니다.

  • <message-ID>로 지정된 메시지를 야기하는 코드 라인에 하나 이상의 %#ok<message-ID> 지시문이 있습니다.

  • <message-ID>로 지정된 메시지를 야기하는 파일에 하나 이상의 %#ok<*message-ID> 지시문이 있습니다.

  • 코드 분석기 기본 설정 창에서 해당 메시지가 선택 취소되어 있습니다.

  • 해당 메시지가 기본적으로 비활성화되어 있습니다.

일부 메시지가 표시되지 않는 이유를 확인하려면 다음을 수행하십시오.

  1. 파일에서 %#ok 지시문을 검색하여 이 지시문과 관련된 모든 메시지 ID의 목록을 만듭니다.

  2. 홈(Home) 탭의 환경(Environment) 섹션에서 기본 설정(Preferences)을 클릭합니다.

    기본 설정 대화 상자가 열립니다.

  3. MATLAB > 코드 분석기(Code Analyzer)를 선택합니다.

  4. 검색 필드에 msgid:을 입력하고, 그 뒤에 1단계에서 찾은 메시지 ID(있는 경우) 중 하나를 입력합니다.

    메시지 목록에는 이제 이 ID에 해당하는 메시지만 표시됩니다. 메시지가 하이퍼링크이면 이 링크를 클릭하여 메시지에 대한 설명과 제안된 동작을 확인합니다. 이렇게 해서 메시지가 표시되지 않거나 비활성화된 이유를 파악할 수 있습니다. 다음 이미지는 검색 필드에 msgid:CPROP를 입력한 경우 기본 설정 대화 상자가 어떻게 표시되는지를 보여줍니다.

  5. 버튼을 클릭하여 검색 필드를 지운 다음, 1단계에서 찾은 각 메시지 ID에 대해 4단계를 반복합니다.

  6. 검색 필드 오른쪽에 있는 아래쪽 화살표를 클릭하여 기본적으로 비활성화되었거나 기본 설정 창에서 비활성화된 메시지를 표시합니다. 그런 다음 비활성화된 메시지 표시(Show Disabled Messages)를 클릭합니다.

  7. 각 메시지 ID와 연결된 메시지를 검토하여 코드에서 이 메시지가 표시되지 않는 이유나 기본 설정에서 비활성화된 이유를 파악합니다.

코드 분석의 한계

코드 분석기는 매우 유용한 툴이지만, 다음과 같은 몇 가지 한계를 가집니다.

  • 때때로, 코드 분석기 메시지가 나타날 거라고 예상되는 곳에 메시지가 생성되지 않는 경우가 있습니다.

    코드 분석은 반환되는 잘못된 메시지의 수를 최소화하도록 설계되었습니다. 이러한 동작으로 인해 일부 문제를 발견하지 못하고 지나칠 수 있습니다.

  • 때때로, 코드 분석은 특정 상황에 적용되지 않는 메시지를 생성합니다.

    메시지에 세부 정보(Details) 버튼이 함께 제공된 경우 이 버튼을 클릭하여 추가 정보를 확인하고, 메시지를 적용할지 여부를 결정할 수 있습니다. 오류 메시지는 거의 항상 문제를 나타냅니다. 반면 경고는, 약간 특이해서 의심스러운 코드에서 무언가를 한 번 살펴보라는 제안인 경우가 많습니다. 그러나 이 코드가 자신의 상황에는 올바른 것일 수 있습니다.

    메시지가 자신의 상황에 적용되지 않는다고 확신할 경우 경고 메시지를 표시하지 않을 수 있습니다. 메시지를 표시하지 않는 이유가 모호하거나 미묘해서 금방 알 수 없는 것이면, 근거를 설명하는 주석을 포함시키십시오. 이렇게 하면 코드를 읽는 다른 사람들이 상황을 알 수 있습니다.

    자세한 내용은 코드 분석기의 메시지 표시자(Message Indicator) 조정과 메시지(Message) 조정 항목을 참조하십시오.

아래 섹션에서는 다음에 대한 코드 분석 제한 사항을 설명합니다.

함수 이름과 변수 이름 구별

경우에 따라 코드 분석이 함수 이름과 변수 이름을 구별하지 못할 수도 있습니다. 다음 코드의 경우, 코드 분석기 메시지가 활성화되어 있으면 Code Analyzer cannot determine whether xyz is a variable or a function, and assumes it is a function이라는 코드 분석 메시지가 반환됩니다. xyz에 명확한 값이 할당되지 않았기 때문에 코드 분석에서 제대로 파악할 수 없을 수 있습니다. 아니면, 코드 분석에서 감지할 수 없는 방식으로 값이 작업 공간에 배치되었을 수도 있습니다.

function y=foo(x)
   .
   .
   .
   y = xyz(x);
end

예를 들어, 다음 코드에서 xyz는 함수이거나 또는 MAT 파일에서 불러온 변수일 수 있습니다. 코드 분석에는 이를 확인할 수 있는 방법이 없습니다.

function y=foo(x)
    load abc.mat
    y = xyz(x);
end
eval, evalc, evalin, assignin 함수를 사용할 경우에도 코드 분석에서 변수를 감지하지 못할 수 있습니다.

코드 분석에서 변수를 함수로 오인할 경우에는 다음 중 하나를 수행하십시오.

  • 코드 분석에서 변수를 함수로 여기지 않도록 변수를 초기화합니다.

  • load 함수의 경우, load 명령줄에 변수 이름을 명시적으로 지정합니다. 예를 들면 다음과 같습니다.

     function y=foo(x)
         load abc.mat xyz
         y = xyz(x);
     end

구조체(Structure)와 핸들 객체(Handle Object) 구분

경우에 따라, 코드 분석에서 구조체와 핸들 객체를 구분하지 못할 수도 있습니다. 다음 코드에서 x가 구조체이면, 코드에서 이 구조체의 업데이트된 값을 사용하지 않음을 나타내는 코드 분석기 메시지가 표시될 수 있습니다. 그러나 x가 핸들 객체이면 이는 올바른 코드일 수 있습니다.

function foo(x)
		x.a = 3;
end

코드 분석에서는 x가 구조체인지 또는 핸들 객체인지 여부를 알아낼 수 없습니다. 위 코드에 감지하기 힘든 심각한 버그가 있을 수 있더라도, 잘못된 메시지 수를 최소화하기 위해 코드 분석은 이 코드에 대해 어떠한 메시지도 반환하지 않습니다.

내장 함수와 오버로드된 함수 구별

일부 내장 함수가 클래스나 경로에 오버로드되어 있는 경우, 코드 분석기 메시지가 내장 함수에는 적용되지만 호출하는 오버로드된 함수에는 적용되지 않을 수 있습니다. 이 경우, 오버로드된 함수가 나타나는 라인에서 메시지를 표시하지 않거나 전체 파일에서 이 메시지를 표시하지 않을 수 있습니다.

메시지를 표시하지 않는 방법에 대한 자세한 내용은 코드 분석기의 메시지 표시자(Message Indicator) 조정과 메시지(Message) 조정 항목을 참조하십시오.

변수의 크기 또는 형태 확인

코드 분석은 변수의 유형과 행렬의 형태를 확인하는 데 있어 한계를 가집니다. 코드 분석은 예를 들어, 벡터에 대해서는 대부분의 경우 적합한 메시지를 생성할 수 있습니다. 그러나 이러한 메시지가 행렬에 대해서는 드물게 적합하지 않을 수 있습니다.

슈퍼클래스가 포함된 클래스 정의 분석

코드 분석기는 슈퍼클래스가 포함된 클래스 정의를 확인하는 데 있어 한계를 가집니다. 예를 들어, 코드 분석기는 클래스가 핸들 클래스인지 확인하지 못할 수도 있습니다. 그러나 때때로, 클래스에 사용된 사용자 지정 특성(Attribute)이 슈퍼클래스에서 상속된 경우 이 특성은 확인할 수 있습니다. 클래스 정의를 분석할 때 코드 분석기는 슈퍼클래스의 정보를 사용하려고 하지만, 확실한 결정을 내리기 위해 필요한 정보를 충분히 얻지 못하는 경우도 있습니다.

클래스 메서드 분석

대부분의 클래스 메서드는 메서드와 동일한 클래스의 객체인 인수를 적어도 하나 포함해야 합니다. 그러나 이 인수가 항상 첫 번째 인수여야 할 필요는 없습니다. 첫 번째 인수일 경우, 코드 분석은 인수가 코드 작성자가 정의하는 클래스의 객체인지 확인할 수 있으며, 이를 위해 다양한 검사를 할 수 있습니다. 예를 들어, 속성 이름과 메서드 이름이 존재하며 철자가 올바른지 확인할 수 있습니다. 그러나 코드 분석에서 객체가 코드 작성자가 정의하는 클래스의 인수인지 확인할 수 없는 경우에는 이러한 검사를 제공할 수 없습니다.

MATLAB Compiler 배포 메시지 활성화하기

Compiler 배포 메시지에 대한 코드 분석기 기본 설정을 변경하여 파일에서 작업할 때 이 범주의 메시지를 표시하거나 숨기도록 설정할 수 있습니다. 어떤 옵션을 선택할지는 배포할 파일에서 작업하고 있는지 여부에 따라 달라질 것입니다. 기본 설정을 변경하면 편집기에서도 설정이 변경됩니다. 그 반대의 경우도 마찬가지입니다. 편집기에서 설정을 변경하면 이 기본 설정이 실제로 변경됩니다. 그러나 편집기에서 설정을 수정할 때 대화 상자가 열려 있으면 기본 설정 대화 상자에 변경 사항이 반영되지 않습니다. 편집기에서 설정을 변경하든 또는 기본 설정 대화 상자에서 변경하든 간에 변경 사항은 편집기와 코드 분석기 리포트에 적용됩니다.

MATLAB Compiler™ 배포 메시지를 활성화하려면 다음을 수행하십시오.

  1. 홈(Home) 탭의 환경(Environment) 섹션에서 기본 설정(Preferences)을 클릭합니다.

    기본 설정 대화 상자가 열립니다.

  2. MATLAB > 코드 분석기(Code Analyzer)를 선택합니다.

  3. 검색 필드 옆에 있는 아래쪽 화살표를 클릭한 다음 범주의 메시지 표시(Show Messages in Category) > MATLAB Compiler (배포) 메시지(MATLAB Compiler (deployment) messages)를 선택합니다.

  4. 범주 사용(Enable Category) 버튼을 클릭합니다.

  5. 코드에 대해 분석 메시지를 표시하지 않으려면(있는 경우) 해당 메시지의 선택을 취소합니다.

  6. 다음에 배포할 파일에서 작업할 때 이러한 설정을 재사용할 수 있도록 이 설정을 저장할지 여부를 결정합니다.

txt 설정 파일(코드 분석기 메시지 설정 저장 및 재사용에 설명된 대로 만들 수 있음)에 이 설정의 상태가 포함됩니다.