Main Content

헬퍼 함수를 사용하여 코드 재사용하기

헬퍼 함수는 사용자가 앱에 정의하는 MATLAB® 함수이며, 코드의 여러 위치에서 호출할 수 있습니다. 예를 들어, 최종 사용자가 편집 필드에서 숫자를 변경하거나 드롭다운 목록에서 항목을 선택하면 이에 따라 플롯을 업데이트할 수 있습니다. 헬퍼 함수를 만들면 공통 명령의 소스를 단일화할 수 있기 때문에 불필요한 코드를 유지할 필요가 없습니다.

두 가지 유형의 헬퍼 함수가 있습니다. 프라이빗 함수는 앱 내부에서만 호출할 수 있고, 퍼블릭 함수는 앱 내부 또는 외부에서 호출할 수 있습니다. 프라이빗 함수는 단일 창 앱에서 일반적으로 사용되는 반면, 퍼블릭 함수는 다중 창 앱에서 흔히 사용됩니다.

헬퍼 함수 만들기

코드 보기를 사용하면 다음 몇 가지 방법으로 헬퍼 함수를 만들 수 있습니다.

  • 편집기 탭에 있는 함수 버튼 아랫부분에서 드롭다운 목록을 확장합니다. 프라이빗 함수 또는 퍼블릭 함수를 선택합니다.

    Function drop-down list with options "Private Function" and "Public Function"

  • 코드 브라우저에서 함수 탭을 선택하고 Plus 버튼의 드롭다운 목록을 확장한 후, 프라이빗 함수 또는 퍼블릭 함수를 선택합니다.

    Plus button drop-down list with options "Private Function" and "Public Function"

항목을 선택하면 앱 디자이너가 템플릿 함수를 만들고 이 함수 본문에 커서를 놓습니다. 그러면 함수 이름 및 함수의 인수를 업데이트하고 함수 본문에 코드를 추가할 수 있습니다. app 인수는 필수 항목이지만 app 인수 뒤에 인수를 추가할 수 있습니다. 예를 들어, 다음 함수는 peaks 함수의 곡면 플롯을 만듭니다. 함수는 플롯에 표시할 샘플 개수를 지정하는 추가 인수 n을 받습니다.

methods (Access = private)
    
        function updateplot(app,n)
            surf(app.UIAxes,peaks(n));
            colormap(app.UIAxes,winter);
        end

end

어떤 콜백 내에서나 함수를 호출할 수 있습니다. 예를 들어, 다음 코드는 updateplot 함수를 호출하고 50n의 값으로 지정합니다.

updateplot(app,50);

헬퍼 함수 관리하기

코드 브라우저에서 헬퍼 함수는 콜백처럼 관리할 수 있습니다. 코드 브라우저함수 탭에서 이름을 더블 클릭하고 새 이름을 입력하여 헬퍼 함수의 이름을 변경할 수 있습 니다. 이름을 변경하면 앱 디자이너는 자동으로 함수에 대한 모든 참조를 업데이트합니다.

앱에 헬퍼 함수가 많은 경우, 함수 탭 상단에 있는 검색 표시줄에 이름 일부를 입력하여 특정 함수를 빠르게 검색하고 해당 함수로 이동할 수 있습니다. 입력을 시작하면 검색어와 일치하는 함수를 제외하고는 함수 탭에서 사라집니다.

Functions tab of the Code Browser. The search bar contains the text "plot", and the list of functions below shows the function "updateplot(app,n)" with the text "plot" highlighted.

검색 결과를 클릭하여 함수가 표시되도록 합니다. 검색 결과를 마우스 오른쪽 버튼으로 클릭하고 이동을 선택하면 커서가 함수로 이동합니다.

헬퍼 함수를 삭제하려면 함수 탭에서 함수 이름을 선택하고 Delete 키를 누르십시오.

예제: 플롯을 초기화하고 업데이트된 데이터를 표시하는 헬퍼 함수

이 앱에서는 2개의 플롯을 초기화한 후 컴포넌트 콜백에서 그중 하나를 업데이트하는 헬퍼 함수를 만드는 방법을 보여줍니다. 앱은 시작될 때 StartupFcn 콜백 끝에서 updateplot 함수를 호출합니다. 사용자가 테이블의 값을 변경하거나 열을 정렬하면 UITableDisplayDataChanged 콜백도 updateplot 함수를 호출하여 플롯 중 하나를 업데이트합니다.

관련 항목