Main Content

객체의 저장 및 불러오기에 대한 디폴트 프로세스

MATLAB®은 객체를 직렬화(저장)하고 역직렬화(불러오기)할 때 일련의 기본 단계를 따릅니다. 이 항목에서는 사용자 지정된 직렬화가 구현되지 않은 클래스에 대해 MATLAB이 수행하는 기본 단계를 설명합니다. 직렬화를 사용자 지정하는 방법에 대한 자세한 내용은 When to Customize the Serialization Process 항목을 참조하십시오.

저장 함수와 불러오기 함수

객체를 직렬화하거나 역직렬화하려면 각각 saveload를 사용합니다. 기본 구문은 다음과 같습니다.

save("filename","variablename")
load("filename","variablename")

저장되는 정보

MAT 파일에서 객체를 직렬화하면 다음 항목이 저장됩니다.

  • 네임스페이스 한정자를 포함하여 객체 클래스의 전체 이름.

  • 동적 속성의 값.

  • 클래스의 첫 번째 객체가 MAT 파일에 저장될 시점에 이 클래스에 의해 정의된 모든 속성의 디폴트 값

  • 모든 속성의 이름과 값. 다음의 경우는 예외적으로 저장되지 않습니다.

    • 속성의 현재 값이 클래스 정의에 지정된 디폴트 값과 같은 경우 속성이 저장되지 않습니다.

    • 속성이 과도형(transient), 상수(constant), 종속형(dependent)으로 정의된 경우 속성이 저장되지 않습니다. 이러한 속성 특성에 대한 설명은 속성 특성(Attribute) 항목을 참조하십시오.

속성 데이터를 불러오는 방식

MAT 파일에서 객체를 역직렬화하면 load 함수가 다음 단계를 통해 객체를 복원합니다.

  • load가 새 객체를 생성합니다.

  • 클래스의 ConstructOnLoad 특성이 true로 설정된 경우 load가 인수 없이 클래스 생성자를 호출합니다. 그렇지 않은 경우 load가 클래스 생성자를 호출하지 않습니다.

  • load가 저장되어 있는 속성값을 객체에 할당합니다(종속형 속성, 상수 속성 또는 과도형 속성은 예외이며 이 속성들은 기본적으로 저장되지 않음). 클래스가 속성에 대해 set 메서드를 정의한 경우 MATLAB이 해당 메서드를 호출합니다. 속성값은 클래스의 현재 정의에 지정된 속성 유효성 검사를 충족해야 합니다. 자세한 내용은 속성 get 및 set 메서드속성값 유효성 검사 항목을 참조하십시오.

  • 속성값이 디폴트 값과 동일하여 저장된 값이 없는 속성에 대해서는 load가 MAT 파일에 저장되어 있는 디폴트 값을 할당합니다. 이렇게 값을 할당하면 클래스로 정의된 속성 set 메서드가 호출됩니다.

  • 불러오는 객체의 속성에 객체가 포함되어 있는 경우 load는 동일한 클래스의 새 객체를 생성하여 속성에 할당합니다.

  • 객체의 속성 중에서 객체가 직렬화된 이후 이름이 변경되거나 클래스 정의에서 제거된 속성이 하나 이상 있는 경우, load 함수는 그러한 변경된 속성을 제외하고 객체를 다시 구성합니다.

  • 유효성 검사가 하나 이상의 속성에 대해 변경되었고 저장된 값이 더 이상 유효하지 않게 된 경우, MATLAB은 이 속성에 대해 현재 정의되어 있는 디폴트 값으로 대체합니다.

참고 항목

|

관련 항목