INI 설정 (.ini)

업계에서 표준

Windows Initialization Configuration(INI)은 Microsoft Windows에서 널리 쓰이게 된 고전적인 가독성 높은 구성 파일 형식입니다. 애플리케이션 설정을 key=value 쌍이 들어 있는 이름 있는 [section]으로 구성합니다.

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

무료 브라우저 내 INI에서 JSON로 변환하는 도구입니다. 기기에서 파일을 즉시 변환할 수 있습니다.

검사 및 메타데이터

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

여기에 파일을 선택하거나 놓으십시오

비공개 - 파일은 기기를 벗어나지 않습니다

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

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

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

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

5B ... 5D

ASCII 표현: [...]

표준화: 업계에서 사실상의 구성 파일 표준

기술 사양

컨테이너 아키텍처[section] 헤더 아래에 키=값 쌍과 주석(; 또는 #)을 배치하는 일반 텍스트 구성 파일
압축압축되지 않은 텍스트 파일
바이트 엔디안UTF-8 또는 ANSI 텍스트 스트림
색 공간해당 없음(구성 파일)
채널 및 구조섹션 네임스페이스별로 분류된 키-값 구성 속성
최대 크기16비트 Windows에서는 과거 64KB 제한이 있었으며 최신 구현에는 크기 제한이 없음
투명도없음
스트리밍 및 프로그레시브한 줄씩 순차적으로 읽는 스트리밍 파서

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

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

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

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

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

복구: File2File.app Config Formatter로 INI 구문을 검증하고 수정하십시오.

보안 분석 및 파서 공격 벡터

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

알려진 공격 벡터

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

방어적 모범 사례: 사용자 입력을 정제해 줄바꿈 문자를 금지하고 프로토타입 오염을 방지하십시오.

역사적 배경 및 주요 이력

2000Python 표준 라이브러리에는 INI 파일을 다루는 configparser가 포함되어 있습니다.
1995윈도우 95가 거대한 시스템 INI 파일들(SYSTEM.INI, WIN.INI)을 대체하기 위해 윈도우 레지스트리를 도입했습니다.
1985마이크로소프트 윈도우 1.0이 핵심 운영체제 설정 데이터베이스로 WIN.INI를 도입했습니다.

주요 장점

  • 매우 깔끔하고 직관적인 구문: 비전문가 사용자도 쉽게 설정을 읽고 수정할 수 있습니다.
  • 거의 모든 프로그래밍 언어에서 기본 파싱 API를 제공합니다(Python 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 형식으로 바로 변환할 수 있습니다.