설정 형식 통일
모듈마다 application.yml 과 application.properties 가 섞인 프로젝트를 한 형식으로 맞출 때 기존 값을 그대로 옮깁니다.
YAML TO PROPERTIES · SPRING CONFIG
yml 설정, 한 줄 키로 펼쳐 볼까?
server: 아래 port: 8080 처럼 들여쓰기로 중첩된 YAML 을 server.port=8080 한 줄로 바꿉니다. 반대로 key=value 목록을 YAML 계층으로 다시 쌓아 설정 파일 형식을 옮길 때 씁니다.
MADE FOR YOUR WORK
모듈마다 application.yml 과 application.properties 가 섞인 프로젝트를 한 형식으로 맞출 때 기존 값을 그대로 옮깁니다.
환경 변수나 -D 옵션으로 덮어쓸 설정의 전체 키 이름이 필요할 때, YAML 을 펼쳐 spring.datasource.url 같은 경로를 바로 얻습니다.
native2ascii 로 \uD55C\uAE00 처럼 바뀐 오래된 properties 를 YAML 로 바꾸면 값이 한글로 풀려 무슨 내용인지 읽을 수 있습니다.
운영과 개발 YAML 을 각각 한 줄 한 키로 펼쳐 두면 diff 도구로 어느 값이 다른지 줄 단위로 비교할 수 있습니다.
STEP BY STEP
이렇게 쓰세요
변환 방향에서 'YAML → Properties' 또는 'Properties → YAML' 을 선택합니다.
YAML 은 들여쓰기 그대로, Properties 는 한 줄에 key=value 하나씩 넣습니다. # 이나 ! 로 시작하는 줄은 주석으로 건너뜁니다.
변환에 실패하면 배열·빈 값·키 충돌처럼 걸린 이유를 상태 줄에 알려 줍니다.
결과 칸의 내용을 결과 복사 버튼으로 가져가 설정 파일에 붙여 넣습니다. 원본의 주석은 옮겨지지 않으니 필요한 설명은 다시 적으세요.
UNDERSTAND THE BASICS
properties 는 한 줄에 키 하나, 값 하나만 있는 평평한 형식입니다. 계층은 키 안의 점으로만 표현합니다. YAML 은 들여쓰기로 계층을 만들기 때문에, 들여쓰기 경로를 점으로 이으면 properties 키가 되고 점으로 끊어 다시 들여 쓰면 YAML 이 됩니다.
두 형식이 딱 맞지 않는 곳이 있습니다. properties 에는 목록 문법이 없어 Spring 은 list[0]=a 같은 관례를 쓰는데, 이 도구는 이 관례를 추측하지 않고 배열을 거부합니다. 키 자체에 점이 들어간 경우도 경로와 구분할 수 없어 받지 않습니다.
값의 타입도 다르게 다룹니다. YAML → Properties 는 JSON 호환 규칙으로 읽어 true·false·숫자만 특별하게 보고 yes, on 같은 값은 글자 그대로 둡니다. Properties 에는 타입이 없으므로 반대 방향에서는 모든 값을 문자열로 두고, 숫자처럼 보이는 값은 port: '8080' 처럼 따옴표를 붙여 내보냅니다.
java.util.Properties 를 InputStream 으로 읽으면 ISO-8859-1 로 해석해 한글 값이 깨집니다. 그래서 예전에는 한글을 \uXXXX 로 바꿔 적었습니다. 이 도구는 읽을 때 \uXXXX 를 한글로 풀지만, 내보낼 때는 한글을 그대로 둡니다.
| YAML | properties | 이 도구 |
|---|---|---|
| server: 아래 들여 쓴 port: 8080 | server.port=8080 | 변환 |
| msg: "a\nb" (줄바꿈 값) | msg=a\nb | 이스케이프해 변환 |
| name: "" | name= | 변환 |
| name: (값 없음 = null) | 없음 | 오류로 거부 |
| hosts: 아래 - a 목록 | hosts[0]=a (Spring 관례) | 지원 안 함 |
| # 주석 | # 주석 | 결과에서 빠짐 |
중첩 YAML 설정을 점 표기 Properties로 변환하고 복원합니다. 배열과 점이 포함된 키는 지원 범위를 확인하세요.
YAML은 중첩 객체를 입력하고, Properties는 한 줄에 key=value를 입력하세요. 점으로 중첩 키를 구분하며 배열·빈 객체·null·키의 점·연속 줄은 지원하지 않습니다. Properties에서 가져온 값은 숫자처럼 보여도 문자열로 보존합니다.
QUICK EXAMPLE
server: port: 8080
server.port=8080
주석과 서식은 유지되지 않을 수 있습니다. 배열과 점이 포함된 키는 결과를 검토하세요.
YAML 의 중첩 구조를 점으로 이은 키 하나로 펼칩니다. server: port: 8080 이 server.port=8080 이 됩니다. 반대 방향은 점으로 나눠 다시 중첩 객체로 쌓습니다.
키에 점·공백·등호·콜론·역슬래시가 들어 있으면 거부합니다. Properties 형식에서 그 문자들은 구분자라, 그대로 내보내면 다시 읽을 때 다른 키가 됩니다. __proto__ 같은 예약 이름도 막습니다 — 객체를 쌓는 과정에서 프로토타입을 건드리게 됩니다.
배열은 지원하지 않습니다. Properties 에는 배열 표기가 없고 프레임워크마다 흉내 내는 방식이 달라서, 대충 정하기보다 데이터 변환 도구로 보냅니다.
값의 줄바꿈·탭·역슬래시는 이스케이프하고, 되돌릴 때는 \uXXXX 까지 해석합니다.
BEFORE YOU FINISH
version: 1.10 은 YAML 에서 소수 1.1 로 읽혀 결과가 version=1.1 이 됩니다. 버전·코드처럼 글자 그대로 남겨야 하는 값은 따옴표로 감싸세요.
key: 뒤를 비우면 YAML 에서는 null 이라 properties 로 옮길 값이 없어 오류가 납니다. 빈 문자열이 의도라면 key: "" 로 적으세요.
--- 로 여러 프로필을 한 파일에 담은 YAML 은 한 번에 변환되지 않습니다. 문서마다 나눠서 넣으세요.
변환 방향을 YAML → Properties 로 두고 yml 내용을 붙여 넣은 뒤 실행을 누르면 됩니다. 들여쓰기 경로가 spring.datasource.url=... 같은 한 줄 키로 펼쳐집니다.
properties 에는 배열 문법이 없고 프레임워크마다 흉내 내는 방식이 달라서 이 도구는 추측하지 않고 오류로 알려 줍니다. JSON·YAML 데이터 변환 도구를 쓰거나 list[0]= 형태로 직접 옮기세요.
properties 값에는 타입이 없어서 모두 문자열로 보존하기 때문입니다. '8080' 처럼 따옴표를 붙여야 YAML 이 숫자로 바꿔 읽지 않습니다.
Properties → YAML 로 변환하면 \uXXXX 를 한글로 풀어 보여 줍니다. 반대 방향 결과는 한글을 그대로 두므로, 읽는 프로그램이 파일을 어떤 인코딩으로 여는지 확인하세요.
옮겨지지 않습니다. 두 방향 모두 값만 읽어 새로 쓰기 때문에 주석과 빈 줄 같은 서식은 결과에 남지 않습니다. 원본 파일은 따로 보관해 두세요.
이 도구의 입력 데이터는 브라우저에서 처리하며 도구 기능을 위해 서버로 업로드하지 않습니다. 결과를 공유하기 전 민감한 정보가 없는지 확인하세요.