Share via


MFC의 Serialization

이 문서에서는 MFC(Microsoft Foundation Class Library)에 제공된 serialization 메커니즘을 설명하여 프로그램 실행 간에 개체를 유지할 수 있도록 합니다.

Serialization은 디스크 파일과 같은 영구 스토리지 매체에서 개체를 쓰거나 읽는 프로세스입니다. serialization은 프로그램 실행 중 또는 실행 후에 구조적 데이터(예: C++ 클래스 또는 구조체)의 상태를 기본하려는 경우에 적합합니다. MFC에서 제공하는 serialization 개체를 사용하면 표준적이고 일관된 방식으로 이 작업을 수행할 수 있으므로 사용자가 직접 파일 작업을 수행할 필요가 없습니다.

MFC는 클래스 CObject의 serialization에 대한 기본 제공 지원을 제공합니다. 따라서 파생된 CObject 모든 클래스는 '의 serialization 프로토콜을 활용할 CObject수 있습니다.

serialization의 기본 개념은 개체가 현재 상태(일반적으로 멤버 변수 값으로 표시됨)를 영구 스토리지에 쓸 수 있어야 한다는 것입니다. 나중에 스토리지에서 개체의 상태를 읽거나 역직렬화하여 개체를 다시 만들 수 있습니다. Serialization은 개체 포인터의 모든 세부 정보와 개체를 serialize할 때 사용되는 개체에 대한 순환 참조를 처리합니다. 핵심은 개체 자체가 자체 상태를 읽고 쓰는 것을 담당한다는 것입니다. 따라서 클래스를 serialize할 수 있도록 하려면 기본 serialization 작업을 구현해야 합니다. 아티클의 Serialization 그룹에 표시된 것처럼 이 기능을 클래스에 쉽게 추가할 수 있습니다.

MFC는 직렬화할 개체 CArchive 와 스토리지 매체 간의 중개자로 클래스의 개체를 사용합니다. 이 개체는 항상 파일 이름 및 요청된 CFile 작업이 읽기 또는 쓰기인지 여부를 포함하여 serialization에 필요한 정보를 가져오는 개체와 연결됩니다. serialization 작업을 수행하는 개체는 스토리지 매체의 특성과 관계없이 개체를 사용할 CArchive 수 있습니다.

개체는 CArchive 오버로드된 삽입(<<) 및 추출(>>) 연산자를 사용하여 쓰기 및 읽기 작업을 수행합니다. 자세한 내용은 직렬화: 개체 직렬화 문서의 보관 파일을 통해 CObjects 저장 및 로드를 참조하세요.

참고 항목

형식이 CArchive 지정된 텍스트 전용인 범용 iostream 클래스와 클래스를 혼동하지 마세요. 클래스는 CArchive serialize된 이진 형식 개체에 대한 것입니다.

원하는 경우 MFC serialization을 바이패스하여 영구 데이터 스토리지에 대한 고유한 메커니즘을 만들 수 있습니다. 사용자의 명령에서 serialization을 시작하는 클래스 멤버 함수를 재정의해야 합니다. ID_FILE_OPEN, ID_FILE_SAVE 및 ID_FILE_SAVE_AS 표준 명령에 대한 Technical Note 22의 설명을 참조하세요.

다음 문서에서는 serialization에 필요한 두 가지 기본 작업을 다룹니다.

Serialization: Serialization과 데이터베이스 입력/출력 문서에서는 serialization이 데이터베이스 애플리케이션에서 적절한 입력/출력 기술인 경우를 설명합니다.

참고 항목

개념
일반 MFC 항목
CArchive 클래스
CObject 클래스
CDocument 클래스
CFile 클래스