본문 바로가기

API

INI 파일과 레지스트리

정보의 저장


프로그램은 실행 중에 사용자가 입력한 옵션 설정이나 프로그램 스스로 만들어낸 정보들을 다음 실행을 위해 저장해 두어야 한다. 이런 정보를 저장할 필요가 있을 때는 디스크를 사용한다. 메모리는 휘발성이므로 저장하지 못하므로 현재는 하드 디스크에 파일을 입력하는 방법 밖에 없다. 


저장의 방법


프로그램의 설정 정보를 저장하는 방법에는 INI 파일을 쓰는 방법과 레지스트리를 쓰는 방법이 있다. 응용 프로그램은 이런 장치를 통해 자신의 고유 정보를 저장해 놓고 다음 실행할 때 이 정보를 복원해 계속 사용한다. 저장 대상 정도는 사용자 신상, 위치, 크기, 옵션, 사용자의 설정, 최근 연 파일 목록, 설치 관련 정보 및 기타 동작에 필요한 모든 정보들이다.


단, 이런 설정 정보는 프로그램 자신의 정보일 뿐이지 사용자의 정보는 아니다. 사용자가 편집한 문서나 그래픽, 소스 등의 데이터 파일은 사용자의 것이므로 분리된 파일로 저장해야지 레지스트리에 이런 정보를 저장하는 것은 옳지 않다.


INI파일은 C드라이브의 Windows 폴더 내에 생성이 된다. system.ini에 저장할 수도 있지만( 섹션으로 구분 됨 ) 추천하지 않는 방법이다.


INI 파일의 단점


1. INI 파일은 텍스트 파일 포맷으로 저장되므로 사용자가 임의로 조작할 수 있다.

2. 프로그램당 하나 이상의 INI파일을 생성하므로 하드 디스크에는 무수한 INI파일들로 꽉 차게 되고 결과적으로 하드 디스크 공간을 낭비한다.

3. INI 파일은 복수 사용자를 지원하지 않으므로 사용자별로 설정한 정보를 별도로 저장할 수 없다.

4. INI 파일이 손상되었을 경우에 복구할 수 있는 방법이 없다.

5. INI 파일은 실제 디스크상에 존재하는 텍스트 파일이므로 정보를 읽고 쓸 때마다 하드 디스크를 액세스해야 한다.


레지스트리 구조

레지스트리는 디렉토리 구조와 유사한 계충적 구조로 구성되어 있다. 루트로부터 복수 개의 가지가 갈라져 나오는 트리 구조이며 트리의 각 노드를 키라고 한다. 키 안에 또 다른 서브키가 포함될 수 있으며 서브키 안에 또 다른 서브키가 포함될 수 있다.