나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2023-11-25 00:06:17

설정 파일


1. 개요2. 상세3. 종류
3.1. 운영체제의 설정3.2. 어플리케이션의 설정
3.2.1. UNIX-like
4. 설정 파일 포맷5. 둘러보기

1. 개요

소프트웨어를 설정하기 위한 독립된 파일을 뜻한다. 주로 사용자가 직접 읽거나 편집할 수 있도록 텍스트 파일을 사용하며, 어플리케이션(응용 소프트웨어)의 중간 상태를 저장하는 데이터 파일과는 구분된다.

2. 상세

3. 종류

3.1. 운영체제의 설정

3.1.1. UNIX-like

유닉스 시스템에서는 기본적으로 /etc 하위에 각종 시스템 소프트웨어들의 설정 파일을 저장한다. 모듈화가 잘 되어있는 유닉스 특성상 여러 분야에서 (오픈소스로) 개발된 각 소프트웨어들이 각자만의 포맷을 가지고 있는 경우가 많지만, 가장 많이 쓰이는 포맷은 .conf이다.

또한 /etc/fstab[1], /etc/passwd[2], /etc/sudoers[3] 별도의 문법을 가지는 각 파일 포맷은 man page의 (5)번 항목에 별도로 문서가 마련되어 있다.

유닉스 소프트웨어 설정파일의 전반적인 특징은 다음과 같다:
  1. 주석을 지원한다. 주로 #을 사용하며, 이를 사용해 각 설정에 대한 설명을 담거나[4] 설정을 일시적으로 비활성화할 수 있다.
  2. Key-Value형식이며, 중괄호 등 그룹핑을 사용하지 않는다. 만약 별도의 네임스페이스가 필요하다면 INI처럼 []를 사용하는 경우가 많다.
  3. ~rc(runcom의 약자)로 끝나는 경우가 많다. 이 때문인지 흔히 rcfiles라고도 불린다.

macOS의 경우 유닉스식 설정과는 다르게 .plist를 사용한다.

3.1.2. Microsoft Windows

MS DOS시절에는 ini식 설정파일을 사용했지만, Windows NT부터는 레지스트리를 사용해서 전체 어플리케이션 트리의 설정을 일관적인 데이터베이스로 관리한다. 따라서 윈도우용 어플리케이션의 경우 설정파일이 없거나 외부로 노출되지 않는 경우가 많고, 개발자 도구나 시스템 툴 정도만 텍스트 설정파일을 제공하는 경우가 많다.

3.2. 어플리케이션의 설정

3.2.1. UNIX-like

~(홈 디렉토리) 아래에 .으로 시작하는 파일들(dotfiles)을 둔다. 현대 XDG표준으로는 ~/.config 폴더를 사용한다.

4. 설정 파일 포맷

모든 애플리케이션은 독자적인 설정 파일을 쓸 수 있지만, 그렇게 된다면 사용자가 쉽게 설정하고 편집할 수 있어야 한다는 원래의 목적이 퇴색된다. 따라서 데이터 직렬화 형식에서 사용되는 포맷들을 사용하는 곳도 늘어났지만, 설정파일의 특성상 기계가 파싱하는 것뿐만 아니라 사람도 읽기 쉬워야 하기 때문에 YAML등의 humman-readable컨셉의 파일들이 널리 채택되었다.

5. 둘러보기


[1] 부팅 시 읽어들이는 파티션 테이블 세팅[2] 유저 데이터베이스. 굳이 따지면 CSV와 굉장히 유사한 구조를 가지고 있다.[3] sudo 설정파일[4] 특히 auto-generated된 설정파일에서 이런 경우가 많다.