.env을 JSON으로 변환하는 도구
.env 파일을 붙여넣으면 즉시 JSON으로 변환됩니다. 데이터베이스 비밀번호, API 키, 토큰이 브라우저를 절대 벗어나지 않는 100% 비공개 무료 온라인 dotenv 파서입니다.
옵션 · 2칸 · 문자열
.env 파일이란?
.env 파일(dotenv 파일)은 설정과 시크릿을 소스 코드 밖에 두기 위해 사용하는 KEY=VALUE 쌍의 일반 텍스트 목록입니다. Node.js, Vite, Next.js, Python, Ruby, Docker Compose 등 거의 모든 현대 프레임워크에서 환경 변수의 사실상 표준이며, dotenv 라이브러리와 그 이식판이 파일을 불러와 각 쌍을 프로세스 환경에 주입합니다. 이 파일은 흔히 데이터베이스 비밀번호, API 키, OAuth 클라이언트 시크릿, 액세스 토큰을 담고 있어 거의 항상 git에서 무시되며 민감 정보로 취급됩니다.
.env 파일을 JSON으로 변환하는 일은 흔한 작업입니다: JSON을 읽는 도구에 설정을 넣어야 하거나, JSON 스키마로 검증하거나, 시크릿 관리자에 가져오거나, 타입이 지정된 설정 객체를 생성하거나, 긴 .env를 구조화된 데이터로 한눈에 살펴봐야 할 때가 있죠. 이 변환기는 평면적인 쌍 목록을 키당 속성이 하나인 단일 JSON 객체로 바꿉니다.
이 도구는 몇 가지 의도적인 결정을 중심으로 만들어졌습니다:
**1. 기본은 문자열, 필요하면 타입.** dotenv는 타입을 절대 변환하지 않으며 런타임에 모든 process.env 값은 문자열입니다. 기본 출력은 이를 정확히 지키므로 JSON이 앱이 실제로 보는 것과 일치합니다. 타입이 지정된 JSON을 원할 때 선택적 타입 추론 스위치는 따옴표 없는 숫자, 불리언, null 값을 승격하며, 따옴표가 붙은 값은 따옴표가 명시적 신호이므로 문자열로 유지됩니다.
**2. 충실한 dotenv 파싱.** 주석, 빈 줄, export 접두사, 작은따옴표와 큰따옴표, 이스케이프 시퀀스, 여러 줄 큰따옴표 값, 따옴표 없는 값의 인라인 주석이 모두 dotenv 라이브러리가 처리하는 방식 그대로 처리됩니다 — JSON을 애플리케이션이 불러오는 것과 비교해도 놀랄 일이 없습니다.
**3. 중복 키 안전성.** 키가 두 번 정의되면 나중 값이 이기고, 어떤 키가 중복되었는지 경고가 알려주어 실수로 가려진 시크릿이 눈치채지 못하게 지나가는 일이 없습니다.
**4. 100% 브라우저 기반 프라이버시.** .env 데이터는 절대 브라우저를 벗어나지 않습니다. 업로드도, 서버 왕복도, 로그도 없습니다 — DevTools 네트워크 탭에서 네트워크 요청이 0건임을 확인할 수 있습니다. 파일이 본질적으로 자격 증명 목록이므로, 실제 .env를 온라인에서 변환하는 유일하게 책임 있는 방법입니다.
변환한 후에는 JSON 포맷터로 결과를 보기 좋게 정리하거나 검증하고, JSON 이스케이프로 다른 문자열에 삽입하기 위해 이스케이프하거나, 함께 제공되는 JSON을 .env로 변환 도구로 반대로 변환할 수 있습니다. 설정이 YAML로 되어 있다면 YAML을 JSON으로를 시험해 보세요.
// Parse a .env file to a JSON object in Node.js using dotenv
import { parse } from 'dotenv';
const envText = `# Database
DATABASE_URL=postgres://user:pass@localhost:5432/mydb
DEBUG=true`;
// dotenv.parse returns a plain object of string values
const parsed = parse(envText);
// Every value is a string, just like process.env
const json = JSON.stringify(parsed, null, 2);
console.log(json);
// {
// "DATABASE_URL": "postgres://user:pass@localhost:5432/mydb",
// "DEBUG": "true"
// } 주요 기능
충실한 dotenv 파싱
주석, export 접두사, 작은따옴표와 큰따옴표, 이스케이프 시퀀스(\n \t \r \\ \"), 여러 줄 큰따옴표 값, 인라인 주석을 dotenv 라이브러리와 똑같은 방식으로 처리합니다.
기본은 문자열, 필요하면 타입
값은 dotenv의 런타임 동작에 맞춰 기본적으로 JSON 문자열입니다. 타입 추론을 켜면 따옴표 없는 숫자, 불리언, null 값이 승격되며 따옴표가 붙은 값은 항상 문자열로 유지됩니다.
중복 키 경고
키가 두 번 정의되면 마지막 값이 이기고(dotenv 동작) 경고가 중복된 모든 키를 나열하므로, 조용히 덮어쓰인 시크릿이 눈치채지 못하게 지나갈 수 없습니다.
실시간 변환
입력하거나 붙여넣는 동안 JSON 출력이 즉시 갱신됩니다. 큰 입력(200KB 초과)은 브라우저 응답성을 유지하기 위해 변환 버튼이 있는 수동 모드로 자동 전환됩니다.
2칸 또는 4칸 들여쓰기
JSON 출력의 들여쓰기를 코드베이스 스타일이나 다운스트림 도구에 맞춰 2칸과 4칸 사이에서 전환합니다.
100% 브라우저 기반 프라이버시
모든 파싱이 브라우저에서 로컬로 실행됩니다. .env 데이터 — 데이터베이스 비밀번호, API 키, 토큰 — 는 절대 업로드되거나 로그에 남거나 어떤 서버에도 저장되지 않습니다.
예제
Node / Vite .env
# Database DATABASE_URL=postgres://user:pass@localhost:5432/mydb DATABASE_POOL_SIZE=10 # Auth JWT_SECRET="super secret value" SESSION_TIMEOUT=3600 # Feature flags ENABLE_SIGNUP=true VITE_API_BASE=https://api.example.com
{
"DATABASE_URL": "postgres://user:pass@localhost:5432/mydb",
"DATABASE_POOL_SIZE": "10",
"JWT_SECRET": "super secret value",
"SESSION_TIMEOUT": "3600",
"ENABLE_SIGNUP": "true",
"VITE_API_BASE": "https://api.example.com"
} 전형적인 Node.js / Vite .env 파일입니다. 기본적으로 모든 값은 JSON 문자열이 됩니다(dotenv 표준). 주석 줄과 빈 줄은 건너뜁니다. 10 → 숫자, true → 불리언으로 원한다면 타입 추론을 켜세요.
Docker Compose 환경 변수
POSTGRES_DB=mydb POSTGRES_USER=admin POSTGRES_PASSWORD=s3cr3t! PGDATA=/var/lib/postgresql/data TZ=UTC NGINX_HOST=example.com NGINX_PORT=80
{
"POSTGRES_DB": "mydb",
"POSTGRES_USER": "admin",
"POSTGRES_PASSWORD": "s3cr3t!",
"PGDATA": "/var/lib/postgresql/data",
"TZ": "UTC",
"NGINX_HOST": "example.com",
"NGINX_PORT": "80"
} Docker Compose 스택이 읽는 env_file을 JSON으로 바꿔 스크립트, 설정 검증기 또는 시크릿 관리자에 불러올 수 있습니다. 아무것도 업로드되지 않으므로 실제 자격 증명에도 안전합니다.
export 접두사가 붙은 CI 시크릿 템플릿
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY export AWS_REGION=us-east-1 export DEPLOY_ENV=production
{
"AWS_ACCESS_KEY_ID": "AKIAIOSFODNN7EXAMPLE",
"AWS_SECRET_ACCESS_KEY": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"AWS_REGION": "us-east-1",
"DEPLOY_ENV": "production"
} 셸 스타일 .env 파일은 source로 불러올 수 있도록 각 줄 앞에 export를 붙이는 경우가 많습니다. 파서가 export 접두사를 자동으로 제거하고 깔끔한 JSON 키를 만들어 줍니다.
복잡한 .env: 따옴표, 이스케이프, 여러 줄과 인라인 주석
APP_NAME=My App # unquoted value, inline comment stripped GREETING="Hello,\nWorld" # double quotes: \n becomes a real newline LITERAL='no \n escapes here' # single quotes: kept literally PRIVATE_KEY="-----BEGIN KEY----- line two line three -----END KEY-----" EMPTY=
{
"APP_NAME": "My App",
"GREETING": "Hello,\nWorld",
"LITERAL": "no \\n escapes here",
"PRIVATE_KEY": "-----BEGIN KEY-----\nline two\nline three\n-----END KEY-----",
"EMPTY": ""
} 모든 dotenv 엣지 케이스를 한 번에 보여줍니다: 따옴표 없는 값의 인라인 주석은 제거되고, 큰따옴표 값은 \n \t \r \\ \" 이스케이프를 처리하며, 작은따옴표 값은 그대로 유지되고, 큰따옴표 값은 닫는 따옴표가 나올 때까지 여러 줄에 걸칠 수 있습니다(PEM 키에 유용).
사용 방법
- 1
.env 파일 붙여넣기
위의 입력란에 .env 내용을 입력하거나 붙여넣으세요. '예제 불러오기'를 클릭해 Node/Vite .env, Docker Compose env 파일 또는 CI 시크릿 템플릿을 시험해 볼 수도 있습니다.
- 2
실시간 JSON 출력 확인
JSON이 출력 패널에 즉시 나타납니다. 문자열 대신 숫자와 불리언을 원하면 '타입 추론'을 켜고, 2칸 또는 4칸 들여쓰기를 선택하세요.
- 3
복사 또는 다운로드
복사를 눌러 JSON을 클립보드에 가져오거나, 다운로드를 눌러 .json 파일로 저장하세요 — 설정 로더, 시크릿 관리자 또는 JSON을 읽는 모든 도구에 바로 쓸 수 있습니다.
흔한 .env 함정
줄에 = 기호 누락
주석이 아니고 비어 있지 않은 모든 줄은 KEY=VALUE 쌍이어야 합니다. = 기호가 없는 줄은 파싱할 수 없으며 도구가 줄 번호와 함께 오류를 보고합니다. 값이 없는 키만 있으면 KEY=(빈 값)으로 작성해야 합니다.
DATABASE_URL DEBUG true
DATABASE_URL= DEBUG=true
= 기호 주변의 공백
dotenv는 공백 없이 첫 =에서 분리합니다. KEY = value라고 쓰면 키가 'KEY '(뒤에 공백)가 되고 값이 ' value'(앞에 공백)가 됩니다. 공백을 제거하거나, 값이 앞 공백을 포함해야 한다면 값을 따옴표로 감싸세요.
API_KEY = abc123
API_KEY=abc123
인라인 주석에 먹힌 따옴표 없는 값
따옴표 없는 값에서는 공백 뒤에 #이 오면 인라인 주석이 시작되어 그 뒤의 모든 것이 사라집니다. 값에 정당하게 #이 포함된다면 #이 보존되도록 값을 따옴표로 감싸세요.
COLOR=#ff0000
COLOR="#ff0000"
작은따옴표에서 이스케이프를 기대
작은따옴표 값은 리터럴입니다 — \n은 백슬래시와 n으로 유지되며 줄바꿈이 되지 않습니다. \n, \t, \" 같은 이스케이프 시퀀스를 처리하려면 큰따옴표를 사용하세요.
GREETING='Hello\nWorld'
GREETING="Hello\nWorld"
여러 줄 값에서 닫히지 않은 큰따옴표
큰따옴표 값은 여러 줄에 걸칠 수 있지만 짝이 맞는 큰따옴표로 닫혀야 합니다. 닫는 따옴표가 없으면 파서가 파일 끝까지 줄을 계속 소비합니다. PEM 키 같은 여러 줄 시크릿이 닫는 따옴표로 끝나는지 확인하세요.
KEY="-----BEGIN----- line two
KEY="-----BEGIN----- line two -----END-----"
조용히 덮어쓰인 중복 키
같은 키가 두 번 나타나면 마지막 값이 이기고 앞선 값은 사라집니다. 도구가 경고하지만, 가장 깔끔한 해결책은 중복을 제거해 의도한 값이 명확해지도록 하는 것입니다.
PORT=3000 PORT=8080
PORT=8080
일반적인 사용 사례
- JSON 기반 도구에 설정 넣기
- .env 파일을 JSON으로 변환해 환경 변수가 아닌 JSON을 읽는 도구, 스크립트, SDK에 환경 설정을 불러오세요 — 설정 검증기, 스키마 검사기, 코드 생성기 등.
- 관리자에 시크릿 가져오기
- 많은 시크릿 관리자(AWS Secrets Manager, Vault, Doppler)는 일괄 가져오기에 JSON을 받습니다. 먼저 .env 파일을 JSON 객체로 변환한 뒤, 변수를 하나씩이 아니라 전체 세트를 한 번에 푸시하세요.
- 긴 .env를 한눈에 살펴보기
- 방대한 .env 파일을 구조화되고 들여쓰기된 JSON으로 바꿔, 변경 사항을 커밋하기 전에 키를 훑어보고 경고로 중복을 발견하며 설정을 읽기 좋은 형식으로 검토하세요.
- 타입이 지정된 설정 객체 생성
- 타입 추론을 켜서 JSON에 숫자, 불리언, null을 얻은 다음, 타입이 지정된 설정 레이어나 JSON-to-TypeScript 단계에 넣어 환경 변수의 인터페이스를 도출하세요.
- JSON 스키마로 검증
- .env를 JSON으로 변환하고 JSON 스키마 검증기에 통과시켜 CI에서 필수 키, 값 형식, 허용 enum을 강제하세요 — 배포 전에 잘못 설정된 환경을 잡아냅니다.
- Docker Compose env_file 설정 이전
- Compose 스택이 읽는 env_file을 JSON으로 바꿔 다른 오케스트레이션 도구, 설정 서버 또는 문서에 사용하세요 — 실제 자격 증명을 외부 서비스에 노출하지 않고요.
기술 세부 정보
- 줄 단위 dotenv 호환 파싱
- 입력은 줄 단위로 파싱됩니다. 빈 줄과 주석 줄(공백이 아닌 첫 문자가 #)은 건너뛰고, 선택적 export 접두사는 제거되며, 나머지 각 줄은 첫 =에서 키와 값으로 분리됩니다. 키는 둘러싼 공백이 제거됩니다. 값은 dotenv 규칙을 따릅니다: 큰따옴표는 \n \t \r \\ \" 이스케이프를 처리하고 여러 줄 범위를 허용하며, 작은따옴표는 리터럴이고, 따옴표 없는 값은 뒤의 공백과 인라인 주석을 제거합니다.
- 선택적 타입 추론
- 기본적으로 모든 값은 JSON 문자열로 출력되며, process.env 값이 항상 문자열인 dotenv의 런타임 동작과 일치합니다. 타입 추론을 켜면 따옴표 없는 값이 승격됩니다: 숫자 문자열은 JSON 숫자가 되고, true/false는 불리언이 되며, 비어 있거나 null인 값은 JSON null이 됩니다. 따옴표가 붙은 값은 절대 추론되지 않습니다 — 따옴표가 명시적 문자열로 표시하기 때문입니다. 중복 키는 경고와 함께 마지막 값이 이기는 방식으로 해결됩니다.
- 브라우저 기반 — 업로드 없음, 서버 없음
- 모든 처리가 브라우저의 자바스크립트 엔진 안에서만 일어나며, .env 데이터가 어느 시점에도 네트워크로 전송되지 않습니다. 파서가 자체 제작되어 외부 의존성이 없습니다 — Node dotenv 라이브러리는 파일 시스템에 의존하므로 브라우저에서 안전하지 않습니다. 200KB를 초과하는 입력은 브라우저 응답성을 유지하기 위해 실시간 모드에서 수동 모드(명시적 변환 클릭)로 전환됩니다.
모범 사례
- dotenv와 맞추려면 기본 문자열 출력을 유지하세요
- dotenv는 모든 값을 문자열로 불러오므로, 기본 문자열 출력은 애플리케이션이 런타임에 보는 것을 정확히 반영합니다. 다운스트림 소비자가 진정으로 타입이 지정된 JSON을 기대할 때만 타입 추론을 켜세요 — 그렇지 않으면 '0'이나 'false'가 JSON에서 실행 중인 앱과 다르게 동작하는 불일치 위험이 있습니다.
- # 또는 공백을 포함하는 값은 따옴표로 감싸세요
- 따옴표 없는 값에서는 공백 뒤에 #이 오면 인라인 주석이 시작되고 뒤의 공백이 제거됩니다. 값이 정당하게 #(16진수 색상, 프래그먼트 URL)이나 의미 있는 공백을 포함한다면 JSON에 그대로 보존되도록 큰따옴표로 감싸세요.
- 중복 키는 원본에서 해결하세요
- 도구는 마지막 값을 유지하고 키가 중복되면 경고하지만, .env 파일의 중복은 거의 항상 실수입니다. 어떤 시크릿이 활성인지 모호하지 않도록 불필요한 줄을 제거하세요.
- 프로덕션 시크릿을 서버 측 변환기에 절대 붙여넣지 마세요
- .env 파일은 사실상 자격 증명 목록이므로, 전적으로 브라우저에서 실행되는 도구에서만 변환하세요. 이 변환기는 그렇게 합니다 — DevTools에서 네트워크 요청이 0건임을 확인하세요 — 따라서 서버 측이나 API 기반 변환기와 달리 실제 시크릿에도 안전합니다.
- 다운스트림에서 사용하기 전에 JSON을 검증하세요
- 변환한 후, JSON을 JSON 포맷터에 통과시켜 스키마 검증기, 시크릿 관리자 가져오기 또는 설정 로더에 넣기 전에 구조를 확인하세요. 그래야 구조적 문제가 일찍 드러납니다.
자주 묻는 질문
온라인에서 .env 파일을 JSON으로 어떻게 변환하나요?
값이 숫자와 불리언으로 변환되나요, 아니면 문자열로 유지되나요?
.env 파일에 같은 키가 두 번 나타나면 어떻게 되나요?
따옴표, 이스케이프, 여러 줄 값은 어떻게 처리되나요?
이 파서는 dotenv 라이브러리와 일관성이 있나요?
중첩되거나 그룹화된 설정을 처리할 수 있나요?
내 .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% 비공개, 업로드 없음.
HTML to Markdown 변환기
인코딩 & 포매팅
브라우저에서 HTML을 깔끔한 Markdown으로 변환 — GFM 테이블·작업 목록·링크, ATX/Setext와 인라인·참조 링크 선택. 웹 이전·LLM 입력에 적합. 100% 비공개.
이미지 Base64 변환기 (온라인)
인코딩 & 포매팅
이미지를 온라인 브라우저에서 Base64 데이터 URI로 변환합니다 — PNG, JPG, SVG, ICO. HTML, CSS, Markdown, JSON 출력을 복사하세요. 100% 비공개, 업로드 없음.
JSON Diff 비교
인코딩 & 포매팅
두 JSON 파일을 브라우저에서 즉시 Diff 비교하세요. 나란히 보기 하이라이팅, RFC 6902 JSON Patch 출력, 타임스탬프·ID 같은 노이즈 필드 무시. 비공개, 업로드 없음.