Main Content

코드 분석기를 사용하여 코드에서 오류와 경고 확인하기

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

MATLAB 코드 분석기에서 수행한 모든 검사의 목록은 Index of Code Analyzer Checks에서 확인할 수 있습니다.

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

지속적인 코드 검사를 활성화하려면 탭의 환경 섹션에서 기본 설정을 클릭하십시오. MATLAB > 코드 분석기를 선택한 다음 통합 경고 및 오류 메시지 사용 체크박스를 선택합니다. 밑줄 옵션을 경고 및 오류에 밑줄 표시로 설정합니다.

지속적인 코드 검사가 활성화되면 MATLAB이 편집기와 라이브 편집기의 코드에 대해 경고 및 오류 메시지를 표시합니다. 예를 들어, 샘플 파일 lengthofline.m에는 여러 개의 오류 및 경고가 포함되어 있습니다. 코드를 편집기로 복사하고 파일을 lengthofline.m으로 저장합니다.

 lengthofline.m 코드

파일에 대한 코드 분석기 상태 보기

편집기 또는 라이브 편집기에서 파일을 열면 표시줄 맨 위에 메시지 표시자로 파일에 대한 전반적인 코드 분석기 상태를 보여줍니다.

메시지 표시자설명
Red error symbol

파일에 구문 오류나 기타 중요한 문제가 있습니다.

Yellow warning symbol

파일에 경고 또는 개선할 사항이 있지만, 오류는 없습니다.

Green check mark symbol

파일에 오류, 경고 또는 개선할 사항이 없습니다.

예를 들어, lengthofline.m에서는 메시지 표시자가 Red error symbol으로, 파일에 적어도 하나의 오류가 있음을 나타냅니다.

lengthofline file in the Editor with the red error symbol displayed in the indicator bar

코드 분석기 메시지 보기

메시지가 포함된 첫 번째 코드 조각으로 이동하려면 메시지 표시자를 클릭하십시오. 식별된 코드 조각은 오류인 경우 빨간색으로 밑줄이 표시되고, 경고나 개선할 사항인 경우 주황색으로 밑줄이 표시됩니다. 파일에 오류가 있는 경우 메시지 표시자를 클릭하면 첫 번째 오류로 이동합니다.

예를 들어, lengthofline.m에서 메시지 표시자를 클릭하면 첫 번째 오류가 발생한 47번 라인으로 커서가 이동합니다. MATLAB은 표시줄에서 오류 마커 옆에 해당 라인에 대한 오류를 표시합니다. 여러 개의 메시지가 단일 문제를 나타내거나 여러 문제를 나타낼 수 있습니다. 메시지 하나를 해결하면 모든 메시지가 해결될 수도 있습니다. 또는 메시지 하나를 해결한 후에 다른 메시지가 변경되거나 무엇을 해야 할지가 더 명확해질 수도 있습니다.

lengthofline file in the Editor after clicking the message indicator. Three errors display next to the error marker in the indicator bar.

메시지가 포함된 다음 코드 조각으로 이동하려면 메시지 표시자를 클릭하십시오. 또는 표시줄에서 마커를 클릭하여 마커가 나타내는 라인으로 이동할 수도 있습니다. 예를 들어, lengthofline.m의 표시줄에서 첫 번째 마커를 클릭합니다. 커서가 21번 라인의 시작 위치로 이동합니다.

코드 조각에 대한 메시지를 보려면 밑줄이 표시된 코드 조각 내로 마우스 포인터를 움직여 보십시오. 또는 밑줄이 표시된 코드 조각 내에 커서를 놓은 후 Ctrl+M을 누를 수도 있습니다. 메시지에 대한 추가 정보가 있는 경우 메시지에 세부 정보 버튼이 포함되어 있습니다. 버튼을 클릭하면 추가 정보 및 제안된 사용자 조치가 표시됩니다.

lengthofline file in the Editor showing a warning message with a details button

코드에 있는 문제 해결하기

코드 파일의 각 메시지에 대해 코드를 수정하여 메시지에 나와 있는 문제를 해결합니다. 코드를 수정하면 파일을 저장하지 않더라도 메시지 표시자와 밑줄 표시가 변경 내용을 반영하여 업데이트됩니다.

예를 들어, lengthofline.m에서 메시지는 47번 라인에 짝이 맞지 않는 구분 기호가 있음을 암시합니다. 각 구분 기호 위로 화살표 키를 움직일 때는 MATLAB이 불일치가 있다고 표시하지 않습니다. 그러나 코드 분석에서는 data{3}(;)의 세미콜론을 감지하고 명령문의 끝으로 해석합니다.

lengthofline file in the Editor after clicking the message indicator. Three errors display next to the error marker in the indicator bar.

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

일부 메시지의 경우 MATLAB은 문제 해결에 적용할 수 있는 자동 수정을 제안합니다. 문제에 자동 수정을 사용할 수 있는 경우 코드 조각이 강조 표시되어 있고 메시지에 수정 버튼이 포함되어 있습니다.

lengthofline file in the Editor showing a warning message with a fix button

예를 들어, lengthofline.m의 27번 라인에서 밑줄이 표시되어 있습니다. 이 라인의 강조 표시되어 있는 코드 조각 prod 위에 마우스를 올려 보십시오. 표시되는 메시지에 수정 버튼이 포함되어 있습니다.

이전 경험을 통해 문제 해결 방법을 알고 있는 경우 수정 버튼을 클릭하거나 Alt+Enter를 누르십시오. 문제에 대해 잘 모르는 경우에는 강조 표시된 코드를 마우스 오른쪽 버튼으로 클릭하십시오. 상황별 메뉴의 첫 번째 항목은 제안 수정 사항을 나타냅니다. 이 수정을 적용하려면 해당 항목을 선택합니다.

lengthofline file in the Editor showing the context menu. The first item in the menu is the suggested fix.

한 문제에 해당하는 인스턴스가 여러 개 존재하는 경우 MATLAB은 문제의 모든 인스턴스에 제안 수정 사항을 적용하는 옵션을 제공할 수 있습니다. 문제의 모든 인스턴스에 수정 사항을 적용하려면 강조 표시된 코드를 마우스 오른쪽 버튼으로 클릭하고 이 문제의 모든(n) 인스턴스 수정을 선택하십시오. 모든 제안 수정 사항에 이 옵션이 있는 것은 아닙니다.

코드를 수정하여 모든 메시지를 해결하거나 지정된 메시지를 비활성화하면, 메시지 표시자가 녹색으로 바뀝니다. 모든 메시지가 해결된 예제 파일 lengthofline2.m을 참조하십시오.

 lengthofline2.m 코드

코드 분석기 앱을 사용하여 파일 분석하기

R2022b 이후

코드 분석기 앱을 사용하여 폴더에 있는 모든 파일에 대한 코드 분석기 메시지가 들어 있는 리포트를 만들 수 있습니다.

앱을 열려면 다음을 수행하십시오.

  • MATLAB 툴스트립: 탭의 MATLAB에서 앱 아이콘 Code Analyzer App Icon을 클릭합니다.

  • MATLAB 명령 프롬프트: codeAnalyzer를 입력합니다.

Code Analyzer app showing an overall summary of code issues and code health details

codeIssues 객체를 사용하여 파일의 문제를 식별하고 저장하기

R2022b 이후

codeIssues를 사용하여 코드의 문제를 프로그래밍 방식으로 찾고 저장할 수 있습니다. codeIssues 객체는 MATLAB 코드 분석기에서 찾은 문제를 저장합니다. 하나 이상의 지정된 파일이나 폴더에서 발견된 문제를 명령줄에서 프로그래밍 방식으로 또는 코드 분석기 앱에서 대화형 방식으로 정렬하고 필터링할 수 있습니다.

예를 들어, 지정된 파일의 문제를 포함하는 codeIssues 객체를 생성할 수 있습니다.

issues = codeIssues("test.m")
issues = 

  codeIssues with properties:

                         Date: 18-Oct-2022 14:18:54
                      Release: "R2023a"
                        Files: "C:\MyCode\test.m"
    CodeAnalyzerConfiguration: "active"
                       Issues: [3×10 table]
             SuppressedIssues: [0×11 table]


    Issues table preview

    Location    Severity    Fixability                                            Description                                             CheckID    LineStart    LineEnd    ColumnStart    ColumnEnd       FullFilename   
    ________    ________    __________    ____________________________________________________________________________________________    _______    _________    _______    ___________    _________    __________________

    "test.m"      info        manual      "Variable appears to change size on every loop iteration. Consider preallocating for speed."    AGROW          3           3            1             3        "C:\MyCode\test.m"
    "test.m"      info        auto        "Add a semicolon after the statement to hide the output (in a script)."                         NOPTS          6           6            3             3        "C:\MyCode\test.m"
    "test.m"      info        auto        "string('...') is not recommended. Use "..." instead."                                          STRQUOT        8           8            1            13        "C:\MyCode\test.m"

R2023b: codeIssues 객체에 포함된 정보는 export를 사용하여 내보낼 수 있습니다.

MATLAB Online에서 코드 문제 패널을 사용하여 파일 분석하기

MATLAB Online™에서 코드 문제 패널을 사용하여 코드에 대한 오류 메시지와 경고 메시지를 볼 수 있습니다. 코드 문제 패널은 MATLAB 코드 분석기가 코드를 자동으로 확인하면서 발견한 코딩 문제를 표시합니다.

코드 문제 패널을 열려면 편집기 탭이나 라이브 편집기 탭으로 이동한 후 분석 섹션에서 코드 문제를 클릭합니다. 또는 사이드바의 패널 더 열기 버튼(three-dot icon)을 사용하여 패널을 열 수 있습니다. 기본적으로 코드 문제 패널은 데스크탑 오른쪽에 열립니다. 코드 문제 패널을 숨기려면 사이드바에서 코드 문제 아이콘을 클릭하십시오.

Code Issues panel showing 0 errors and 13 warnings found in the lengthofline.m file. The MATLAB Online desktop right sidebar shows the Code Issues icon.

툴 위쪽에 있는 옵션을 사용하여 코드 문제 패널에 표시되는 메시지를 변경할 수 있습니다.

  • 현재 파일 또는 열려 있는 모든 파일에 대한 메시지 표시 - 코드 문제 패널의 왼쪽 위에 있는 드롭다운 목록을 사용하여 오류와 경고를 현재 파일에 대해서 표시할지 열려 있는 모든 파일에 대해서 표시할지 선택할 수 있습니다. 예를 들어, 열려 있는 모든 파일에 대한 오류와 경고를 표시하려면 드롭다운 목록에서 열려 있는 파일을 선택합니다.

  • 오류와 경고를 표시하거나 숨기기 - 코드 문제 패널의 오른쪽 위에 있는 오류 버튼 및 경고 버튼 을 사용하여 오류와 경고를 표시하거나 숨길 수 있습니다. 예를 들어, 오류만 표시하려면 오류 버튼 을 클릭하여 켜고 경고 버튼 을 클릭하여 끕니다.

  • 메시지를 텍스트별로 필터링 - 드롭다운 목록 아래의 검색 필드를 사용하면 텍스트별로 메시지 목록을 필터링할 수 있습니다. 예를 들어, 단어 Variable이 포함된 메시지만 표시하려면 검색 필드에 단어 Variable을 입력합니다.

코드 분석기의 메시지 표시자와 메시지 조정하기

사용자의 현재 개발 단계에 가장 적합하게 어떤 유형의 코드 문제에 밑줄을 표시할지 지정할 수 있습니다. 예를 들어, 처음 코딩할 때 경고까지 표시되면 주의가 산만해질 수 있으므로 오류에만 밑줄이 표시되도록 할 수 있습니다. 밑줄 기본 설정을 변경하려면 탭의 환경 섹션에서 기본 설정을 클릭하십시오. MATLAB > 코드 분석기를 선택한 다음 밑줄 옵션을 선택합니다.

코드를 분석할 때 표시되는 메시지를 조정할 수도 있습니다. 코드 분석이 모든 상황에 대해 완벽한 정보를 제공하는 것은 아닙니다. 경우에 따라서는 메시지에 따라 코드를 변경하는 것을 원치 않을 수도 있습니다. 특정 라인에 대해 코드 변경을 원하지 않고 표시자와 메시지를 보고 싶지 않으면 이를 표시하지 않을 수 있습니다. 예를 들어, 샘플 파일 lengthofline.m의 48번 라인에 대한 첫 번째 메시지는 출력값을 표시하지 않으려면 함수에서 명령문 끝에 세미콜론을 추가하십시오입니다. 명령문 끝에 세미콜론을 추가하면 출력값이 표시되지 않으며, 세미콜론을 쓰는 것이 일반적입니다. 코드 분석에서, 출력값을 생성하지만 종료 세미콜론이 없는 라인에 대해 이 알림을 표시합니다. 48번 라인에 대한 출력값을 보려는 경우에는 메시지 제안을 무시하고 세미콜론을 추가하지 마십시오.

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

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

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

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

구문 오류와 같은 오류 메시지는 표시하지 않을 수 없습니다.

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

현재 파일에서 코드 분석기 메시지의 특정 인스턴스를 표시하지 않을 수 있습니다. 예를 들어, 샘플 파일 lengthofline.m의 48번 라인에 대한 메시지를 표시하지 않으려면 48번 라인의 첫 번째 밑줄을 마우스 오른쪽 버튼으로 클릭하고 '세미콜론으로 명령문을 종료하여...' 표시 안 함 > 이 라인에서를 선택하십시오.

주석 %#ok<NOPRT>가 라인 끝에 나타나는데, 이는 MATLAB에 그 라인에 대해 출력값을 표시하지 않으려면 함수에서 명령문 끝에 세미콜론을 추가하십시오 코드 분석기 메시지를 표시하지 않도록 지시합니다. 이 메시지에 해당하는 밑줄과 표시줄의 표시도 사라집니다.

표시하지 않으려는 메시지가 한 라인에 두 개 있는 경우에는 밑줄을 각각 마우스 오른쪽 버튼으로 클릭한 다음 상황별 메뉴에서 적절한 항목을 선택하십시오. %#ok 구문이 확장됩니다. 예를 들어 샘플 파일 lengthofline.m의 48번 라인에 대한 두 개의 메시지를 모두 표시하지 않도록 차단하면 주석 %#ok<NBRAK,NOPRT>가 라인 끝에 추가됩니다.

코드 분석기 기본 설정이 이 메시지를 활성화하도록 설정되어 있더라도 %#ok가 이 기본 설정보다 우선하므로, 표시하지 않도록 설정된 메시지의 특정 인스턴스는 나타나지 않습니다. 나중에 해당 라인에 대한 출력값을 표시하지 않으려면 함수에서 명령문 끝에 세미콜론을 추가하십시오 코드 분석기 메시지를 표시하고자 할 경우에는 라인에서 %#ok<NOPRT>를 삭제하십시오.

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

현재 파일에서 특정 코드 분석기 메시지의 모든 인스턴스를 표시하지 않을 수 있습니다. 예를 들어, 샘플 파일 lengthofline.m의 48번 라인에 대한 메시지의 모든 인스턴스를 표시하지 않으려면 48번 라인의 첫 번째 밑줄을 마우스 오른쪽 버튼으로 클릭하고 '세미콜론으로 명령문을 종료하여...' 표시 안 함 > 이 파일에서를 선택하십시오.

주석 %#ok<*NOPRT>가 라인 끝에 나타나는데, 이는 MATLAB에 현재 파일에서 출력값을 표시하지 않으려면 함수에서 명령문 끝에 세미콜론을 추가하십시오 코드 분석기 메시지의 모든 인스턴스를 표시하지 않도록 지시합니다. 이 메시지에 해당하는 모든 밑줄뿐 아니라 메시지 표시자 표시줄의 표시도 사라집니다.

현재 파일에서 전혀 표시하지 않으려는 메시지가 한 라인에 두 개 있는 경우에는 밑줄을 각각 마우스 오른쪽 버튼으로 클릭한 다음 상황별 메뉴에서 적절한 항목을 선택하십시오. %#ok 구문이 확장됩니다. 예를 들어 샘플 파일 lengthofline.m의 48번 라인에 대한 두 개의 메시지를 모두 표시하지 않도록 차단하면 주석 %#ok<*NBRAK,*NOPRT>가 추가됩니다.

코드 분석기 기본 설정이 이 메시지를 활성화하도록 설정되어 있더라도 %#ok가 이 기본 설정보다 우선하므로, 메시지는 나타나지 않습니다. 나중에 현재 파일에 출력값을 표시하지 않으려면 함수에서 명령문 끝에 세미콜론을 추가하십시오 코드 분석기 메시지의 모든 인스턴스를 표시하고자 할 경우에는 해당 라인에서 %#ok<*NOPRT>를 삭제하십시오.

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

모든 파일에서 코드 분석기 메시지의 모든 인스턴스를 비활성화할 수 있습니다. 예를 들어, 샘플 파일 lengthofline.m의 48번 라인에 대한 메시지의 모든 인스턴스를 모든 파일에서 표시하지 않으려면 48번 라인의 첫 번째 밑줄을 마우스 오른쪽 버튼으로 클릭하고 '세미콜론으로 명령문을 종료하여...' 표시 안 함 > 모든 파일에서를 선택합니다. 이 옵션은 코드 분석기 기본 설정을 수정합니다.

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

  1. 탭의 환경 섹션에서 기본 설정을 클릭합니다.

  2. MATLAB > 코드 분석기를 선택합니다.

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

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

  5. 확인을 클릭합니다.

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

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

설정을 파일에 저장하려면 다음을 수행하십시오.

  1. 탭의 환경 섹션에서 기본 설정을 클릭합니다.

  2. MATLAB > 코드 분석기를 선택합니다.

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

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

  5. 확인을 클릭합니다.

이러한 설정을 임의의 MATLAB 파일에 재사용하거나, 다른 사용자에게 설정 파일을 제공할 수 있습니다. 저장된 설정을 사용하려면 다음을 수행하십시오.

  1. 탭의 환경 섹션에서 기본 설정을 클릭합니다.

  2. MATLAB > 코드 분석기를 선택합니다.

  3. 활성화된 설정 목록을 열고 찾아보기를 선택합니다.

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

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

사용자 지정 검사 활성화하기 및 기존 검사 구성하기

R2023a 이후

코드 분석기가 MATLAB 편집기에 표시하는 기존 검사를 구성하고 codeAnalyzerConfiguration.json이라는 파일을 resources 폴더에 넣어 사용자 지정 검사를 추가할 수 있습니다. 구성 파일은 resources 폴더를 포함하는 폴더 및 모든 하위 폴더에서 유효합니다.

기존 코드 분석기 검사를 수정할 수 있으며, 여기에는 검사를 활성화할지 여부와 각 검사의 심각도와 메시지 텍스트가 포함되며 함수의 입력, 출력 인수 개수를 제한하는 것과 같은 파라미터가 검사에 포함되어 있다면 그러한 파라미터까지 포함됩니다. 특정 함수가 사용될 때 트리거되는 사용자 지정 검사를 생성할 수도 있습니다. 코드 분석기 검사 구성에 대한 자세한 내용은 Configure Code Analyzer 항목을 참조하십시오.

함수 matlab.codeanalysis.validateConfiguration을 사용하여 codeAnalyzerConfiguration.json 구성 파일의 형식이 올바른지 확인합니다.

표시 차단된 메시지가 포함된 코드 파악하기

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

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

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

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

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

메시지 표시가 차단된 이유를 확인하려면 파일을 입력값으로 사용하여 codeIssues를 호출합니다.

issues = codeIssues("myFile.m")

출력값 issues는 속성 SuppressedIssues를 가지며 해당 파일에 대해 표시가 차단된 모든 문제가 나열된 테이블이 포함되어 있습니다. 각 문제와 연결된 메시지를 검토하여 이 메시지의 표시가 차단된 이유를 파악합니다.

코드 분석의 한계

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

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

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

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

    세부 정보 버튼을 클릭하여 메시지에 대한 추가 정보를 표시하면 자신의 상황에 메시지가 적용되는지 여부를 확인하는 데 도움이 될 수 있습니다. 오류 메시지는 거의 항상 문제를 나타냅니다. 반면 경고는, 약간 특이한 코드에서 무언가를 한 번 살펴보라는 제안인 경우가 많습니다. 그러나 이 코드가 자신의 상황에는 올바른 것일 수 있습니다.

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

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

함수 이름과 변수 이름 구별

경우에 따라 코드 분석이 함수 이름과 변수 이름을 구별하지 못할 수도 있습니다. 다음 코드의 경우, 코드 분석기 메시지가 활성화되어 있으면 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가 구조체인지 또는 핸들 객체인지 여부를 알아낼 수 없습니다. 위 코드에 감지하기 힘든 심각한 버그가 있을 수 있더라도, 잘못된 메시지 수를 최소화하기 위해 코드 분석은 이 코드에 대해 어떠한 메시지도 반환하지 않습니다.

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

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

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

변수의 크기 또는 형태 확인

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

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

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

클래스 메서드 분석

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

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

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

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

  1. 탭의 환경 섹션에서 기본 설정을 클릭합니다.

  2. MATLAB > 코드 분석기를 선택합니다.

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

  4. MATLAB Compiler (배포) 메시지 범주 제목의 오른쪽에 있는 범주 사용 버튼을 클릭합니다.

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

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

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

참고 항목

| |

관련 항목

외부 웹사이트