INI 설정 (.ini)

De 표준

INI(Windows Initialization Configuration)는 마이크로소프트 윈도우에서 대중화된 고전적이고 읽기 쉬운 설정 파일 포맷으로, 애플리케이션 설정을 key=value 쌍을 포함하는 명명된 [섹션]으로 구성합니다.

INI을(를) JSON(으)로 변환

무료 브라우저 내 INI-JSON 변환기. 기기에서 파일을 즉시 변환하세요.

검사 및 메타데이터

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 INI 파일을 식별합니다:

여기에 파일을 선택하거나 놓으세요

100% 브라우저 내 프라이버시 변환 - 파일이 기기를 절대 떠나지 않습니다

또는 붙여넣기 Ctrl+V
제로 네트워크 전송 프라이버시 보장: 외부 서버로 업로드된 데이터 0바이트. 모든 처리는 브라우저 샌드박스내에서 로컬로 수행되었습니다.

바이트 단위 헤더 시그니처 (매직 바이트)

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 INI 파일을 식별합니다:

16진수 시그니처 (오프셋 0):

5B ... 5D

ASCII 표현: [...]

표준화: De facto industry configuration standard

기술 사양

컨테이너 아키텍처Plaintext configuration file structured into [section] headers containing key = value pairs and comments (; or #)
압축Uncompressed text file
바이트 엔디안UTF-8 or ANSI text stream
색 공간N/A (Configuration File)
채널 및 구조Key-value configuration properties categorized by section namespaces
최대 크기Historical 64 KB limit in 16-bit Windows; unlimited in modern implementations
투명도None
스트리밍 및 프로그레시브Sequential line-by-line streaming parser

기술 비교 매트릭스: INI 대 경쟁사

기술적 속성INI (현재)JSONYAMLTOML
구문 복잡성가장 단순함 (섹션 + key=val)엄격한 대괄호 및 따옴표들여쓰기에 민감한 공백최신 형식의 타이핑된 테이블
주석 지원기본 지원 (; 및 # 주석)사양서에 주석 미지원기본 지원 (# 주석)기본 지원 (# 주석)
중첩 구조1레벨 섹션만 지원무제한 중첩 객체/배열무제한 중첩 트리구조화된 테이블 배열
데이터 타이핑암시적 문자열 (앱이 타입 파싱)명시적 숫자, 부울, 배열명시적 타입 및 앵커명시적 날짜, 숫자, 배열

일반적인 손상 모드 및 헥스 복구 가이드

애플리케이션이 설정을 무시하거나 실행에 실패함.

근본 원인: 누락된 섹션 헤더 대괄호 (예: '[Settings]' 대신 '[Settings') 또는 값 내부의 이스케이프되지 않은 등호.

복구: File2File 설정 포맷터를 사용하여 INI 구문을 검증하고 수정합니다.

보안 분석 및 파서 공격 벡터

INI 파서는 객체로 역직렬화할 때 섹션 주입 공격과 프로토타입 오염에 대비해야 합니다.

알려진 공격 벡터

  • 사용자 입력값에 줄바꿈이 삽입되어 권한 없는 설정 섹션이 생성되는 INI 주입 공격.
  • JavaScript INI 파서에서 '__proto__'에 할당하는 프로토타입 오염.
  • 깊이 재귀적인 섹션 이름 확장을 통한 서비스 거부(DoS) 공격.

방어적 모범 사례:

역사적 배경 및 주요 이력

2000파이썬 표준 라이브러리에 ConfigParser 모듈이 통합되면서 INI가 범용 소프트웨어 설정 포맷으로 굳어졌습니다.
1995윈도우 95가 거대한 시스템 INI 파일들(SYSTEM.INI, WIN.INI)을 대체하기 위해 윈도우 레지스트리를 도입했습니다.
1985마이크로소프트 윈도우 1.0이 핵심 운영체제 설정 데이터베이스로 WIN.INI를 도입했습니다.

주요 장점

  • 유례없이 깔끔하고 직관적인 구문: 비전문가 사용자도 쉽게 설정을 읽고 수정할 수 있습니다.
  • 거의 모든 프로그래밍 언어에서 기본 제공하는 파싱 API (파이썬 configparser, PHP parse_ini_file, C# 등).
  • 섹션 네임스페이스를 통해 서로 다른 애플리케이션 기능 간의 설정 충돌을 방지합니다.

기술적 제한 사항 및 단점

  • 공식적인 국제 표준 부재: 주석 문자(; 대 #) 및 이스케이프 규칙이 파서마다 다릅니다.
  • 평면적 계층 구조: 사용자 정의 구분자 없이는 깊이 중첩된 배열이나 복잡한 구조화된 객체를 지원하지 않습니다.
  • 모든 값이 문자열로 읽히므로 애플리케이션에서 정수, 부울, 부동 소수점을 수동으로 파싱해야 합니다.

흥미로운 기술적 상식

  • 윈도우 3.1 시절에는 운영체제 전체의 모든 단일 설정이 단 두 개의 파일(WIN.INI와 SYSTEM.INI)에만 저장되었습니다.
  • Git은 '.git/config'에 위치한 기본 리포지토리 설정 파일로 INI 포맷을 사용합니다.
  • 리눅스의 데스크탑 단축키 파일(XDG Desktop Entry '.desktop' 파일)은 표준 INI 구문을 사용하여 구조화되어 있습니다.

자주 묻는 기술 질문

INI 파일은 무엇에 사용되나요?

INI 파일은 데스크톱 소프트웨어, 게임, 개발자 도구(Git 설정 및 PHP.ini 등)에서 사용자 기본 설정 및 구성 설정을 읽기 쉬운 형식으로 저장하는 데 사용됩니다.

INI 파일을 어떻게 편집할 수 있나요?

Notepad, TextEdit, VS Code와 같은 기본 텍스트 편집기나 File2File.app을 사용하여 온라인에서 직접 INI 파일을 열고 편집할 수 있습니다.

INI를 JSON이나 YAML로 변환할 수 있나요?

네. File2File.app은 브라우저에서 INI 파일을 깔끔한 JSON, YAML 또는 TOML 형식으로 즉시 변환할 수 있습니다.