WIPIVERSE

구성 파일

구성 파일(Configuration File)은 소프트웨어 프로그램, 운영 체제, 또는 시스템의 초기 설정값과 매개변수를 저장하기 위해 사용되는 파일이다. 사용자나 관리자가 프로그램의 동작 방식을 코드 수정 없이 변경할 수 있도록 외부화한 설정 데이터를 담고 있다.

주요 특징

  • 형식: 텍스트 기반(인코딩: 주로 UTF-8, ASCII)이 대부분이며, INI, XML, JSON, YAML, TOML, Properties 등 다양한 포맷이 사용된다. 일부 시스템은 이진 형식(Binary)을 사용하기도 한다.
  • 구조: 키-값 쌍(Key-Value Pair), 계층적 구조(Hierarchical Structure), 섹션(Section) 등의 방식으로 데이터를 조직화한다.
  • 적용 시점: 주로 프로그램 시작 시(부팅/실행 시) 읽어들여 메모리에 적재하며, 일부 애플리케이션은 런타임 중 변경 사항을 감지하여 동적으로 반영(Hot Reloading)하기도 한다.

주요 용도

  • 애플리케이션 동작 모드 설정(개발/운영/테스트 환경 구분 등)
  • 데이터베이스 연결 정보, API 키, 포트 번호, 경로 설정 등 인프라 연동 정보 관리
  • 사용자 인터페이스 테마, 언어, 단축키 등 사용자 맞춤 설정 저장
  • 시스템 서비스(데몬) 및 커널 매개변수 제어

대표적 예시

  • 운영 체제: /etc/ 디렉토리 하위의 각종 .conf 파일(Linux/Unix), 레지스트리(Windows, 파일 기반은 아님 개념적 유사), hosts, fstab, resolv.conf
  • 웹 서버: nginx.conf, httpd.conf (Apache), web.config (IIS)
  • 개발 도구: .gitconfig, .editorconfig, tsconfig.json, webpack.config.js, Dockerfile(빌드 설정), docker-compose.yml
  • 애플리케이션: application.properties / application.yml (Spring Boot), config.json (Node.js), settings.py (Django), php.ini

보안 고려사항 구성 파일에는 데이터베이스 비밀번호, API 토큰, 암호화 키 등 민감한 정보(Credentials)가 포함되는 경우가 많다. 따라서 버전 관리 시스템(Git 등)에 커밋되지 않도록 .gitignore 등에 등록하거나, 비밀 정보 관리 도구(Vault, AWS Secrets Manager, Kubernetes Secrets 등)를 연동하여 런타임에 주입하는 방식이 권장된다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기