.properties는 자바(Java) 플랫폼에서 주로 사용되는 설정 파일 포맷이자 파일 확장자이다. 키-값(Key-Value) 쌍으로 이루어진 단순 텍스트 기반의 데이터 저장 형식으로, 애플리케이션의 환경 설정, 국제화(i18n) 메시지, 데이터베이스 연결 정보 등 변경 가능성이 있는 매개변수를 소스 코드와 분리하여 관리하는 데 활용된다.
파일 형식 구조 파일은 기본적으로 텍스트 인코딩(주로 ISO 8859-1 또는 UTF-8)을 따르며, 각 줄은 주석, 빈 줄, 또는 키-값 쌍으로 구성된다.
- 키-값 구분자: 등호(
=), 콜론(:), 또는 공백(스페이스, 탭)을 사용한다. - 주석: 줄의 시작이 번호 기호(
#) 또는 느낌표(!)로 시작하면 주석으로 처리된다. - 이스케이프: 특수 문자(줄바꿈, 탭, 유니코드 등)는 백슬래시(
\)를 사용하여 이스케이프 시퀀스로 표현한다(예:,\t,\uXXXX). - 줄 연속: 줄 끝에 백슬래시(
\)를 붙이면 다음 줄과 연결하여 하나의 긴 값으로 처리한다.
주요 용도
- 애플리케이션 설정: 서버 포트, 경로, 기능 활성화 여부 등 런타임 동작을 제어하는 매개변수 저장.
- 국제화(I18N): 로케일(Locale)별 메시지 문자열을 분리하여 다국어 지원 구현 시 사용 (예:
messages_ko_KR.properties,messages_en_US.properties). - 자바 표준 API:
java.util.Properties클래스가 이 형식의 로드(load)와 저장(store)을 기본 지원하며,ResourceBundle메커니즘의 기반이 된다.
특징 및 제약사항
- 계층적 구조(중첩)를 기본적으로 지원하지 않으며, 평탄한(Flat) 네임스페이스를 가진다. 관례적으로 점(
.)을 이용해 계층을 표현한다(예:database.url,database.username). - 값의 자료형은 문자열로만 저장되며, 타입 변환(정수, 불리언 등)은 애플리케이션 로직에서 별도 처리해야 한다.
- XML 기반 설정 파일(
XMLProperties) 대비 구조화 표현력이 낮으나, 가독성이 높고 용량이 작아 경량 설정용으로 널리 쓰인다.