Skip to content

JSON을 .env로 변환하는 도구

JSON 객체를 붙여넣으면 즉시 .env 파일을 생성합니다. 키와 시크릿이 브라우저를 벗어나지 않는 100% 비공개 온라인 dotenv 생성기입니다.

트래킹 없음 브라우저 실행 무료
옵션 · 키 유지 · export 없음
0
.env 출력
0
객체 전용 입력 처리, 왕복 안전한 따옴표 처리, 중첩 값 평탄화, 키 정규화에 대해 검토됨 — Go Tools Engineering Team · Jun 12, 2026

.env 파일이란?

.env 파일(dotenv 파일)은 환경 설정과 시크릿을 소스 코드 밖에 두는 KEY=VALUE 쌍의 일반 텍스트 목록입니다. Node.js, Vite, Next.js, Python, Ruby, Docker Compose의 사실상 표준이며, dotenv 라이브러리가 파일을 불러와 각 쌍을 프로세스 환경에 주입합니다. 흔히 데이터베이스 비밀번호, API 키, 액세스 토큰을 저장하므로 .env 파일은 민감 정보로 취급되어 버전 관리에서 제외됩니다.

JSON에서 .env 파일을 생성하는 것은 흔한 설정 파싱 작업의 반대입니다: 이미 JSON 객체로 된 설정 — API 응답, 설정 내보내기, 시크릿 관리자 덤프, 또는 설정을 프로그래밍 방식으로 만드는 스크립트에서 — 이 있고, 프로젝트에 넣거나 컨테이너에 넘길 .env 파일이 필요한 경우죠. 이 변환기는 JSON 객체의 최상위 키를 순회하며 속성당 올바르게 따옴표 처리된 KEY=VALUE 줄을 하나씩 작성합니다.

이 도구는 몇 가지 의도적인 결정을 중심으로 만들어졌습니다:

**1. 왕복 안전한 따옴표 처리.** 숫자와 불리언은 따옴표 없이 작성되고, null은 빈 값이 되며, 공백, 줄바꿈, # 또는 따옴표를 포함하는 모든 문자열은 자동으로 큰따옴표로 감싸지고 이스케이프됩니다. 그 결과는 dotenv와 함께 제공되는 .env을 JSON으로 변환 도구를 거쳐 깔끔하게 다시 파싱되므로, 값이 왕복에서 의미가 바뀌지 않습니다.

**2. 정직한 중첩 처리.** .env 파일은 정의상 평면적입니다. 중첩 데이터를 조용히 버리는 대신, 도구는 각 중첩 객체나 배열을 압축된 JSON 문자열로 직렬화하고 어떤 키가 평탄화되었는지 경고하여, .env가 정말 알맞은 대상인지 판단할 수 있게 합니다.

**3. 선택적 키 정규화.** 정보 손실을 피하기 위해 기본적으로 키는 그대로 유지됩니다. 키 정규화를 켜면 camelCase나 kebab-case가 환경 변수가 사용하는 UPPER_SNAKE_CASE 관례로 변환되며, 여전히 유효한 이름을 만들 수 없는 키에는 경고가 표시됩니다.

**4. 100% 브라우저 기반 프라이버시.** 붙여넣는 JSON — 보통 곧 .env에 쓰려는 바로 그 자격 증명 — 은 절대 브라우저를 벗어나지 않습니다. 업로드도, 서버 왕복도, 로그도 없습니다. DevTools 네트워크 탭에서 네트워크 요청이 0건임을 확인하세요.

변환하기 전에 JSON 포맷터로 JSON을 검증하거나 보기 좋게 정리하고, JSON 이스케이프로 JSON 문자열을 언이스케이프할 수 있습니다. 설정을 구조로 표현하는 것이 더 낫다면, JSON을 YAML로가 평면 .env가 할 수 없는 중첩을 보존합니다.

// Generate .env lines from a JSON object in Node.js
const config = {
  DATABASE_URL: 'postgres://user:pass@localhost:5432/mydb',
  PORT: 8080,
  DEBUG: true,
  NOTE: 'value with spaces',
};

const needsQuotes = (s) => /[\s#"'\n]/.test(s);

const env = Object.entries(config)
  .map(([key, value]) => {
    if (typeof value === 'string') {
      return needsQuotes(value)
        ? `${key}=${JSON.stringify(value)}`
        : `${key}=${value}`;
    }
    return `${key}=${value ?? ''}`; // null -> empty value
  })
  .join('\n');

console.log(env);
// DATABASE_URL=postgres://user:pass@localhost:5432/mydb
// PORT=8080
// DEBUG=true
// NOTE="value with spaces"

주요 기능

왕복 안전한 따옴표 처리

숫자와 불리언은 따옴표 없이 작성되고, null은 빈 값이 되며, 공백, 줄바꿈, # 또는 따옴표가 있는 문자열은 dotenv를 거쳐 깔끔하게 다시 파싱되도록 자동으로 큰따옴표로 감싸지고 이스케이프됩니다.

정직한 중첩 처리

중첩 객체와 배열은 평면 .env에 존재할 수 없으므로 각각 압축된 JSON 문자열로 직렬화되고, 어떤 키가 평탄화되었는지 경고가 정확히 나열합니다 — 결코 조용한 변경이 아닙니다.

선택적 키 정규화

기본적으로 키를 그대로 유지하며 — 유효한 env 이름이 아닌 키에는 경고가 표시됩니다 — 키 정규화를 켜면 camelCase와 kebab-case가 환경 변수가 사용하는 UPPER_SNAKE_CASE 관례로 변환됩니다.

선택적 export 접두사

모든 줄 앞에 export를 붙여 생성된 .env 파일을 셸에서 직접 source할 수 있게 하며, CI와 배포 스크립트의 스타일에 맞춥니다.

실시간 변환

JSON을 입력하거나 붙여넣는 동안 .env 출력이 즉시 갱신됩니다. 큰 입력(200KB 초과)은 브라우저 응답성을 유지하기 위해 변환 버튼이 있는 수동 모드로 전환됩니다.

100% 브라우저 기반 프라이버시

모든 변환이 브라우저에서 로컬로 실행됩니다. 붙여넣는 JSON — API 키, 자격 증명, 토큰 — 은 절대 업로드되거나 로그에 남거나 어떤 서버에도 저장되지 않습니다.

예제

설정 객체를 .env로

{
  "DATABASE_URL": "postgres://user:pass@localhost:5432/mydb",
  "PORT": 8080,
  "DEBUG": true,
  "LOG_LEVEL": "info",
  "API_KEY": "sk_live_abc123"
}
DATABASE_URL=postgres://user:pass@localhost:5432/mydb
PORT=8080
DEBUG=true
LOG_LEVEL=info
API_KEY=sk_live_abc123

평면 JSON 설정 객체가 깔끔한 .env 파일이 됩니다. 숫자와 불리언은 따옴표 없이 작성되고, 일반 문자열은 그대로 작성됩니다. .env로 저장해 dotenv로 불러올 준비가 되었습니다.

따옴표가 필요한 값

{
  "GREETING": "Hello, World",
  "MOTD": "line one\nline two",
  "COLOR": "#ff0000",
  "NOTE": "value with # hash",
  "EMPTY": null
}
GREETING="Hello, World"
MOTD="line one\nline two"
COLOR="#ff0000"
NOTE="value with # hash"
EMPTY=

공백, 줄바꿈, #, 따옴표를 포함하는 문자열은 dotenv를 통한 왕복에서 살아남도록 자동으로 큰따옴표로 감싸지고 이스케이프됩니다. null 값은 빈 할당(KEY=)이 됩니다.

키를 UPPER_SNAKE_CASE로 정규화

{
  "databaseUrl": "postgres://localhost/mydb",
  "poolSize": 10,
  "enable-signup": true
}
DATABASE_URL=postgres://localhost/mydb
POOL_SIZE=10
ENABLE_SIGNUP=true

키 정규화 옵션을 켜면 camelCase와 kebab-case 키가 환경 변수가 사용하는 UPPER_SNAKE_CASE 관례로 변환됩니다. 끄면 원래 키가 그대로 유지됩니다.

JSON 문자열로 평탄화된 중첩 객체

{
  "APP_NAME": "my-app",
  "FEATURES": { "signup": true, "beta": false },
  "REGIONS": ["us-east-1", "eu-west-1"]
}
APP_NAME=my-app
FEATURES="{\"signup\":true,\"beta\":false}"
REGIONS="[\"us-east-1\",\"eu-west-1\"]"

.env 파일은 평면적이므로 중첩 객체와 배열은 기본 형태로 표현할 수 없습니다. 도구는 각 중첩 값을 압축된 JSON 문자열로 직렬화하고 큰따옴표로 감싸며, 어떤 키가 평탄화되었는지 나열하는 경고를 표시하여 그 동작이 결코 조용히 일어나지 않게 합니다.

사용 방법

  1. 1

    JSON 객체 붙여넣기

    위의 입력란에 평면 JSON 객체를 입력하거나 붙여넣으세요. '예제 불러오기'를 클릭해 설정 객체, 따옴표가 필요한 값 또는 중첩 객체를 시험해 볼 수도 있습니다.

  2. 2

    실시간 .env 출력 확인

    .env 파일이 출력 패널에 즉시 나타납니다. UPPER_SNAKE_CASE 이름을 원하면 '키 정규화'를 켜고, 파일을 셸에서 source할 거라면 'export 접두사 추가'를 켜세요.

  3. 3

    복사 또는 다운로드

    복사를 눌러 .env를 클립보드에 가져오거나, 다운로드를 눌러 .env 파일로 저장하세요 — 프로젝트에 바로 넣어 dotenv로 불러올 준비가 되었습니다.

흔한 JSON 함정

최상위 배열 또는 스칼라

.env 파일은 이름이 붙은 변수의 평면 집합이므로 입력은 JSON 객체여야 합니다. 최상위 배열이나 문자열·숫자 같은 단순 값은 변수에 매핑할 키 이름이 없어 도구가 오류를 보고합니다. 먼저 데이터를 설명적인 키가 있는 객체로 감싸세요.

✗ 오류
["a", "b", "c"]
✓ 정상
{"ITEMS": "a,b,c"}

유효하지 않은 JSON 구문

입력은 유효한 JSON이어야 합니다. 끝의 쉼표, 작은따옴표, 따옴표 없는 키는 자바스크립트에서 복사하면서 흔히 생기는 실수이며 줄과 열과 함께 파싱 오류를 일으킵니다. 모든 키와 문자열 값에 큰따옴표를 사용하고 끝의 쉼표를 제거하세요.

✗ 오류
{'PORT': 8080,}
✓ 정상
{"PORT": 8080}

.env에서 중첩 구조를 기대

중첩 객체와 배열은 평면 .env 파일에 기본 형태로 표현할 수 없습니다. 도구는 이를 JSON 문자열로 직렬화하고 경고하지만, 값은 단일 불투명 문자열이 됩니다. 구조를 보존해야 한다면 .env 대신 YAML로 변환하세요.

✗ 오류
{"DB": {"host": "localhost", "port": 5432}}
✓ 정상
{"DB_HOST": "localhost", "DB_PORT": 5432}

유효한 변수 이름이 아닌 키

대부분의 셸과 로더는 [A-Za-z_][A-Za-z0-9_]*에 맞는 변수 이름만 받습니다 — 숫자로 시작하거나 공백이나 대시를 포함하는 키는 유효하지 않습니다. 키를 그대로 유지하면 도구가 그런 키에 경고하고, 키 정규화는 대소문자와 대시를 고치지만 숫자로 시작하는 이름은 구할 수 없으므로 그런 키는 JSON에서 이름을 바꾸세요.

✗ 오류
{"2fa-enabled": true}
✓ 정상
{"TWO_FA_ENABLED": true}

따옴표가 필요한데 따옴표 없는 문자열

JSON을 손으로 작성한다면, 공백이나 #이 있는 값도 여전히 유효한 JSON 문자열(큰따옴표 안)이어야 함을 기억하세요. 그러면 도구가 .env용으로 자동으로 다시 따옴표 처리합니다. 실수는 입력 쪽에서 JSON 따옴표를 빠뜨려 유효하지 않은 JSON을 만드는 것입니다.

✗ 오류
{"MSG": Hello World}
✓ 정상
{"MSG": "Hello World"}

일반적인 사용 사례

설정 내보내기에서 .env 생성
API, 설정 대시보드 또는 시크릿 관리자에서 가져온 JSON 설정 내보내기를 로컬 개발이나 컨테이너에 바로 쓸 수 있는 .env 파일로 바꾸세요.
.env 템플릿 스캐폴딩
새 서비스에 필요한 변수를 설명하는 JSON 객체를 만들고, 이를 .env로 변환한 뒤, .env.example을 커밋해 팀원이 어떤 키를 채워야 하는지 정확히 알 수 있게 하세요.
JSON 설정 도구를 dotenv에 연결
일부 도구는 설정을 JSON으로 내보내지만 런타임은 .env를 기대합니다. JSON 출력을 dotenv 형식으로 변환해 파이프라인의 양쪽이 같은 변수에 동의하게 하세요.
source 가능한 셸 env 파일 생성
export 접두사를 켜서 셸이나 CI 단계에서 직접 source할 수 있는 파일을 생성하세요. JSON 설정 덩어리를 한 번의 붙여넣기로 내보내진 환경 변수로 바꿉니다.
설정 왕복
이를 .env을 JSON으로 변환하는 도구와 짝지어 설정을 구조화된 JSON으로 편집하고 다시 .env로 쓰세요 — 왕복 안전한 따옴표 처리가 값이 양방향에서 살아남도록 보장합니다.
혼합된 대소문자 키 정규화
키 정규화 옵션으로 camelCase나 kebab-case 키가 있는 JSON 객체를 일관된 UPPER_SNAKE_CASE 변수 이름의 .env로 변환하여 환경 변수 관례에 맞추세요.

기술 세부 정보

객체 전용 입력과 타입별 직렬화
입력은 브라우저의 네이티브 JSON.parse()로 파싱되며 최상위 객체여야 합니다. 배열과 스칼라는 명확한 오류와 함께 거부됩니다. 각 최상위 속성은 타입별로 직렬화됩니다: 숫자와 불리언은 따옴표 없이 작성되고, null은 빈 값(KEY=)이 되며, 문자열은 공백, 줄바꿈, # 또는 따옴표를 포함하지 않는 한 직접 작성되고, 포함하면 왕복 안전을 위해 큰따옴표로 감싸지고 이스케이프됩니다.
중첩 값과 키 정규화
중첩 객체와 배열은 압축된 JSON.stringify로 직렬화되어 큰따옴표로 감싸지고 이스케이프되며, 평탄화된 키를 지명하는 경고가 함께 표시됩니다. 선택적 키 정규화 단계는 키를 UPPER_SNAKE_CASE로 변환하여 대부분의 유효하지 않은 이름을 해결합니다. 키를 그대로 유지하면 [A-Za-z_][A-Za-z0-9_]*에 맞지 않는 키가 유효하지 않은 이름 경고를 일으킵니다. 선택적 export 접두사를 모든 줄에 추가할 수 있습니다.
브라우저 기반 — 업로드 없음, 서버 없음
모든 처리가 브라우저의 자바스크립트 엔진 안에서만 일어나며, JSON 데이터가 어느 시점에도 네트워크로 전송되지 않습니다. 직렬화기가 외부 의존성 없이 자체 제작되었습니다. Node dotenv 라이브러리는 브라우저에서 안전하지 않기 때문입니다. 200KB를 초과하는 입력은 브라우저 응답성을 유지하기 위해 실시간 모드에서 수동 모드(명시적 변환 클릭)로 전환됩니다.

모범 사례

env 관례가 필요하지 않으면 키를 그대로 유지하세요
소비하는 앱이 이미 JSON의 정확한 키 이름을 기대한다면 키 정규화를 꺼서 아무것도 예기치 않게 이름이 바뀌지 않게 하세요. 환경 변수가 관례적으로 사용하는 UPPER_SNAKE_CASE 관례를 특별히 원할 때만 켜세요.
중첩을 우연이 아니라 의도적으로 평탄화하세요
중첩 값은 .env에서 불투명한 JSON 문자열이 되며, 대부분의 앱은 이를 자동으로 다시 파싱하지 못합니다. 평탄화 경고가 보이면 변환하기 전에 JSON을 평면적인 접두사 키(DB_HOST, DB_PORT)로 재구성하거나 YAML 같은 구조화된 형식을 선택하는 것이 좋습니다.
왕복을 위해 자동 따옴표 처리를 신뢰하세요
언제 따옴표를 칠지 도구에 맡기세요 — 필요한 값만 큰따옴표로 감싸고 이스케이프합니다. 이로써 .env를 읽기 좋게 유지하면서, 공백, 줄바꿈, #이 있는 값이 .env을 JSON으로 변환하는 도구를 거치는 왕복에서 바뀌지 않고 살아남도록 보장합니다.
브라우저 전용 도구에서만 시크릿을 생성하세요
여기서 변환하는 JSON은 사실상 자격 증명 집합입니다. 전적으로 브라우저에서 실행되는 도구에서만 .env를 생성하세요. DevTools에서 네트워크 요청이 0건임을 확인하세요. 이 변환기는 서버 측이나 API 기반 생성기와 달리 그 조건을 충족합니다.
먼저 JSON 입력을 검증하세요
JSON이 손으로 작성되었거나 스크립트로 조립된 것이라면, 먼저 JSON 포맷터로 검증해 끝의 쉼표나 따옴표 없는 키를 잡으세요. 그래야 혼란스러운 파싱 오류 대신 깔끔한 .env를 얻습니다.

자주 묻는 질문

온라인에서 JSON을 .env 파일로 어떻게 변환하나요?
위의 입력란에 JSON 객체를 붙여넣으세요. 도구가 브라우저에서 즉시 .env 파일을 생성합니다 — 버튼 클릭이 필요 없습니다. 각 최상위 속성이 KEY=VALUE 줄이 됩니다. 옵션 패널에서 선택적으로 키를 UPPER_SNAKE_CASE로 정규화하거나 export 접두사를 추가한 다음, 복사를 눌러 결과를 가져오거나 다운로드를 눌러 .env 파일로 저장할 수 있습니다. 모든 작업이 로컬에서 실행되므로 시크릿이 절대 기기를 벗어나지 않습니다.
어떤 종류의 JSON을 받나요?
입력은 JSON 객체(최상위에 키/값 쌍의 집합)여야 합니다. .env 파일은 근본적으로 변수의 평면 목록이기 때문입니다. 최상위 배열이나 문자열·숫자 같은 단순 스칼라는 환경 변수에 매핑할 수 없으므로 도구가 객체를 요청하는 오류를 보고합니다. 유효하지 않은 JSON도 문제를 빠르게 찾을 수 있도록 최선의 줄과 열 번호와 함께 오류를 표시합니다.
문자열, 숫자, 불리언, null은 어떻게 작성되나요?
숫자와 불리언은 따옴표 없이 작성됩니다(PORT=8080, DEBUG=true). null 값은 빈 할당(KEY=)이 되며, dotenv가 빈 문자열로 불러옵니다. 일반 문자열은 그대로 작성되지만, 공백, 줄바꿈, #, 따옴표 문자를 포함하는 문자열은 올바르게 다시 파싱되도록 자동으로 큰따옴표로 감싸지고 이스케이프됩니다. 따라서 출력은 dotenv 파서와 함께 제공되는 .env을 JSON으로 변환 도구를 거쳐 깔끔하게 왕복됩니다.
중첩 객체와 배열은 어떻게 되나요?
.env 파일은 중첩을 표현할 수 없습니다 — 모든 변수가 평면 문자열입니다. 값이 중첩 객체나 배열일 때 도구는 JSON.stringify로 압축된 JSON 문자열로 직렬화하고 큰따옴표로 감싸며 이스케이프합니다. 비차단 경고가 어떤 키가 이런 식으로 평탄화되었는지 정확히 나열하므로 구조가 접혔다는 것을 항상 알 수 있습니다. 데이터가 깊게 중첩되어 있다면 JSON을 YAML로 같은 형식이 .env보다 계층 구조를 훨씬 잘 보존합니다.
키 정규화 옵션은 무엇을 하나요?
기본적으로 원래 JSON 키가 작성된 그대로 유지되므로 데이터가 손실되지 않습니다 — 그리고 이 모드에서는 이미 유효한 환경 변수 이름이 아닌 키(대부분의 셸과 로더는 [A-Za-z_][A-Za-z0-9_]*에 맞는 이름만 받음)에 경고가 표시되어 이름을 바꿀 수 있습니다. 키 정규화를 켜면 키가 UPPER_SNAKE_CASE — 환경 변수의 관례적 스타일 — 로 변환되며(databaseUrl은 DATABASE_URL이 되고, enable-signup은 ENABLE_SIGNUP이 됨) 대부분의 유효하지 않은 이름이 자동으로 해결됩니다.
내 JSON 데이터가 서버로 전송되나요?
아니요. 모든 변환은 자바스크립트로 브라우저 안에서만 일어납니다. 붙여넣는 JSON — 곧 .env에 쓰려는 API 키, 데이터베이스 자격 증명, 토큰을 흔히 담고 있죠 — 은 절대 전송되지 않고, 어떤 서버에도 저장되지 않으며, 로그에 남지 않습니다. 브라우저의 네트워크 탭을 열어 붙여넣을 때 요청이 한 건도 발생하지 않는 것을 보면 확인할 수 있습니다. 그래서 샘플뿐 아니라 실제 프로덕션 .env도 안전하게 생성할 수 있습니다.

Base64 디코더 · 인코더 (Base64 Decoder & Encoder)

인코딩 & 포매팅

Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.

Base64 이미지 변환기 (온라인)

인코딩 & 포매팅

Base64 문자열이나 데이터 URI를 온라인 브라우저에서 이미지로 디코딩합니다. 미리보고, 치수와 MIME을 읽은 뒤 PNG, JPG, GIF, SVG로 다운로드하세요. 업로드 없음.

CSV to JSON 변환기 (CSV to JSON Converter)

인코딩 & 포매팅

브라우저에서 CSV를 JSON으로 변환합니다. RFC 4180, 타입 추론, 헤더 행, 큰 정수 안전 처리. 100% 비공개, 업로드 없음.

.env을 JSON으로 변환하는 도구

인코딩 & 포매팅

.env 파일을 붙여넣으면 즉시 JSON으로 변환됩니다. 데이터베이스 비밀번호, API 키, 토큰이 브라우저를 절대 벗어나지 않는 100% 비공개 무료 온라인 dotenv 파서입니다.

HTML to Markdown 변환기

인코딩 & 포매팅

브라우저에서 HTML을 깔끔한 Markdown으로 변환 — GFM 테이블·작업 목록·링크, ATX/Setext와 인라인·참조 링크 선택. 웹 이전·LLM 입력에 적합. 100% 비공개.

이미지 Base64 변환기 (온라인)

인코딩 & 포매팅

이미지를 온라인 브라우저에서 Base64 데이터 URI로 변환합니다 — PNG, JPG, SVG, ICO. HTML, CSS, Markdown, JSON 출력을 복사하세요. 100% 비공개, 업로드 없음.