YAML과 Java Properties 설정 다루기
이 변환기가 하는 일
YAML과 Java의 .properties는 같은 설정을 작성하는 두 가지 방식입니다. properties 파일은 한 줄에 하나의 평면적인 키=값 쌍을 저장하고, 점(.)으로 계층 구조를 암시합니다(server.servlet.context-path=/api). YAML은 같은 계층 구조를 실제 들여쓰기와 중첩으로 표현합니다. 이 도구는 두 형식 중 어느 것이든 읽어 붙여 넣은 형식이 무엇인지 판별한 뒤 다른 형식으로 다시 작성합니다. 즉, 점으로 이어진 키를 중첩된 트리로 펼치거나, 트리를 다시 점으로 이어진 경로로 평탄화합니다.
변환이 양방향이며 고정된 템플릿이 아니라 감지된 구조를 기반으로 동작하기 때문에, 파일을 왕복(YAML → Properties → YAML)해도 동일한 결과를 되돌려 받을 수 있습니다.
언제 사용하나요
가장 흔한 경우는 application.properties와 application.yml 사이를 이전하는 Spring Boot 프로젝트입니다. 팀들은 대개 properties로 시작했다가, 설정이 충분히 깊어져 점으로 이어진 키가 읽기 어려워지면 YAML로 전환합니다. 반대 방향 변환도 도구나 배포 파이프라인이 평면 properties를 요구할 때 그만큼 유용합니다.
두 설정을 빠르게 비교하거나, 문서의 일부를 프로젝트가 실제로 사용하는 형식으로 변환하거나, 커밋 전에 들여쓰기와 배열 스타일을 정리하는 데에도 편리합니다.
예시: 서버 블록
properties 줄 server.port=8080과 server.servlet.context-path=/api는, server가 port: 8080과 context-path: /api를 담은 servlet 키를 포함하는 중첩 YAML 블록이 됩니다. 다시 변환하면 점으로 이어진 키가 그대로 정확히 되살아납니다. 8080 같은 숫자는 따옴표 없이 유지되어, 문자열이 아니라 정수 타입을 그대로 보존합니다.
형식 관련 참고 사항과 엣지 케이스
옵션을 켜면 변환 과정에서 주석을 그대로 보존할 수 있는데, 이는 설명이 포함된 설정 파일에서 중요합니다. 배열은 YAML 대시 목록으로도, 인덱스가 붙은 properties(name[0], name[1])로도 출력할 수 있습니다. 조정 가능한 들여쓰기와 문자열 따옴표 처리(자동, 항상, 안 함)로 팀의 스타일 가이드에 맞출 수 있습니다. 타입 자동 감지는 불리언, 정수, null 값이 따옴표로 감싸지지 않도록 해 줍니다.