소개

본 장에서는 FileIO의 기본 개념과 특징, 주요 기능, 파일 포맷에 대해 소개한다.

1. 개요

ProFrame은 비즈니스 영역과 일관된 데이터베이스 접근에 대한 표준을 제시할 뿐만 아니라 특정 파일의 입출력에 대한 표준화된 접근을 지원한다. FileIO는 ProFrame에서 제공하는 특정 파일의 읽기 및 쓰기에 대한 표준 접근방법이다. FileIO는 정형화된 포맷으로 파일을 처리하며, 표준화된 접근방법으로 모듈화하여 EMB 모듈에서 파일 접근이 용이하도록 지원한다.

figure1 1
ProFrame 아키텍처 – Data Tier – FileIO

Data Tier는 ProFrame 아키텍처에서 제시하고 있는 3-Tier 중의 하나로 데이터베이스 접근 모듈과 애플리케이션 프로그램을 분리하여 비즈니스 로직의 성능을 높이고 데이터베이스 접근의 일관성을 보장하는 계층이다. 이 계층에는 DBIO, DWIO, FileIO가 포함되어 있다.

FileIO의 특징은 다음과 같다.

  • 파일에 대한 표준적 접근방법을 제공한다.

  • 파일 접근에 대한 일괄된 에러처리를 제공한다.

  • 정형화된 파일 포맷에 대한 대량처리가 쉽다.

2. 주요 기능

  • 파일의 Read/Write

    파일의 1 row는 구조체로 변환될 수 있는 형태이다. 따라서 1 row씩 Read/Write하기 위해서는 반복적으로 파일을 접근해야 한다.

  • FileIO 컴파일

    FileIO는 기본적으로 ProMapper를 이용한다.

    파일의 Read/Write는 구조체 배열을 입력받아 한 구조체씩 ProMapper로 Read/Write할 형태 즉, 전문으로 변환하여 구조체 및 파일에 반복적으로 Read/Write한다.

    따라서 FileIO 구조체를 생성할 때 ProMapper 구조체와 변환할 전문 타입의 소스를 생성하게 되고 생성된 소스를 컴파일 및 Dlupdate함으로써 FileIO 모듈 내부에서 호출하여 사용할 수 있게 된다.

    EMB Designer에서 FileIO 모듈을 삽입하면 ProFrame에서 기본적으로 제공하는 FileIO API를 호출하는 소스가 자동으로 생성된다. 따라서 EMB Designer에서 추가로 FileIO 정보를 입력하게 되면 그 정보가 EMB 모듈의 소스 상에 구조체로 작성되며, 또한 FileIO API에도 입력 인자로 전달된다.

    다시 말해 FileIO는 이와 같은 정보를 이용하여 반복적으로 구조체로 변환하거나 파일의 Read/Write하여 호출된다.

3. 파일 포맷

FileIO는 정형화된 파일 포맷을 사용하고 있으며 비정형화 유형에 대해서는 C API를 사용하여 파일 접근을 하도록 한다.

3.1. 정형 파일 포맷

  • 데이터부 반복 유형

    파일의 1 row가 구조체로 변환될 수 있는 형태의 반복이어야 한다.

  • 헤더부, 데이터부, 트레일러부 유형

    현재 헤더부, 데이터부, 트레일러부가 포함된 파일은 지원하지 않는다.

  • 헤더부, 데이터부, 트레일러부를 전체 포함하는 반복 유형

    이 파일 포맷은 지원하지 않는 유형이다.

3.2. 비정형 파일 포맷

  • 헤더부, 데이터부, 트레일러부가 각 부별로 반복하는 유형

    FileIO에서는 비정형화된 유형을 지원하기 위해 파일의 n row의 Read/Write가 가능하다. 개발자는 일반 C API를 사용하는 것처럼 FileIO의 API를 사용하여 가공하지 않은 파일의 데이터를 직접 접근할 수 있다.