다음을 통해 공유


입력/출력 처리에 대한 권장 사항

파일 기반 I/O를 사용하는지 여부는 다음 의사 결정 트리의 질문에 응답하는 방법에 따라 달라집니다.

애플리케이션의 기본 데이터가 디스크 파일에 상주하나요?

  • 예, 기본 데이터는 디스크 파일에 있습니다.

    애플리케이션이 파일 열기에서 전체 파일을 메모리로 읽고 파일 저장 시 디스크에 전체 파일을 다시 씁니다.

    • 예: 기본 MFC 문서 사례입니다. serialization을 사용합니다 CDocument .

    • 아니요: 일반적으로 파일의 트랜잭션 기반 업데이트의 경우입니다. 트랜잭션별로 파일을 업데이트하며 serialization이 필요하지 CDocument 않습니다.

  • 아니요. 기본 데이터는 디스크 파일에 없습니다.

    데이터가 ODBC 데이터 원본에 상주하나요?

    • 예, 데이터는 ODBC 데이터 원본에 있습니다.

      MFC의 데이터베이스 지원을 사용합니다. 이 사례에 대한 표준 MFC 구현에는 문서 및 뷰와 함께 데이터베이스 클래스 사용: MFC 문서에 설명된 대로 개체가 포함 CDatabase 됩니다. 애플리케이션은 "데이터베이스 뷰 및 파일 지원" 옵션 모두 애플리케이션 마법사의 목적인 보조 파일을 읽고 쓸 수도 있습니다. 이 경우 보조 파일에 serialization을 사용합니다.

    • 아니요, 데이터는 ODBC 데이터 원본에 있지 않습니다.

      이 경우의 예: 데이터는 비 ODBC DBMS에 있습니다. 데이터는 OLE 또는 DDE와 같은 다른 메커니즘을 통해 읽습니다.

      이러한 경우 serialization을 사용하지 않으며 애플리케이션에 열기 및 저장 메뉴 항목이 없습니다. MFC ODBC 애플리케이션이 문서를 사용하여 개체를 저장하는 CRecordset 것처럼 홈 베이스로 사용할 CDocument 수도 있습니다. 그러나 프레임워크의 기본 파일 열기/저장 문서 serialization은 사용하지 않습니다.

파일 메뉴에서 열기, 저장 및 다른 이름으로 저장 명령을 지원하기 위해 프레임워크는 문서 serialization을 제공합니다. Serialization은 클래스 CObject에서 파생된 개체를 포함하여 데이터를 읽고 영구 스토리지( 일반적으로 디스크 파일)에 씁니다. 직렬화는 사용하기 쉽고 많은 요구 사항을 충족하지만 많은 데이터 액세스 애플리케이션에서 적합하지 않을 수 있습니다. 데이터 액세스 애플리케이션은 일반적으로 트랜잭션별로 데이터를 업데이트합니다. 전체 데이터 파일을 한 번에 읽고 쓰는 대신 트랜잭션의 영향을 받는 레코드를 업데이트합니다.

serialization에 대한 자세한 내용은 Serialization을 참조하세요.

참고 항목

serialization: Serialization과 데이터베이스 입력/출력 비교