.env 파일 파서

.env 파일을 온라인으로 파싱해 키-값을 테이블로 보여 주고, dotenv 규칙으로 등호 누락·콜론 표기·중복 키·빈 값을 감지하며 JSON으로 내보냅니다. 무료, 브라우저에서 처리.

  • 브라우저에서 처리
  • 데이터가 브라우저 밖으로 나가지 않습니다
  • 무료 · 회원가입 불필요
파싱을 클릭해 현재 텍스트를 확인하세요. 입력을 편집하면 이전 테이블이 숨겨지고 다시 파싱할 때까지 JSON 내보내기가 비활성화됩니다. 지우기는 입력, 테이블, 상태를 비우고 JSON 내보내기를 비활성화합니다. 도구 안에 포커스가 있을 때 Ctrl 또는 Command + L도 같은 동작을 수행합니다. 파싱한 키를 env.json으로 내려받습니다. 유효 또는 경고 항목이 하나 이상 필요합니다. 중복 키는 마지막 값을 사용하며 주석과 오류 줄은 제외합니다.
KEY=VALUE 또는 콜론 뒤에 공백을 둔 KEY: value를 붙여넣으세요. 따옴표로 감싼 값은 여러 줄에 걸칠 수 있습니다. 변수 참조는 확장하지 않으며 dotenv 16.6.1 규칙으로 파싱합니다.

파싱한 키, 값, 메모가 여기에 표시됩니다.

테이블과 env.json에는 값이 평문으로 남습니다. 화면이나 내려받은 파일을 공유하기 전에 비밀 값을 확인하세요.

자세한 가이드 읽기 .env 파일 온라인 파싱·검증 완전 가이드
예시·자세한 설명·자주 묻는 질문 실제 출력이 있는 예시, 다른 도구와의 차이, 자주 묻는 질문.

입력 예시

# 데이터베이스 설정
DB_HOST=localhost
DB_PORT=5432
DB_NAME=myapp
DB_PASSWORD="s3cr3t"
# API 키
API_KEY=
STRIPE_KEY=your-stripe-key
# 중복 키 예시
APP_ENV=development
APP_ENV=production

파서는 DB_PASSWORD의 따옴표를 제거하고, API_KEY에 “값이 비어 있습니다”, 두 번째 APP_ENV에 “중복된 키”를 표시하며, 상태 줄은 “유효 6개, 경고 2개.”입니다. 내보낸 env.json의 APP_ENV는 마지막 값입니다.

{
  "DB_HOST": "localhost",
  "DB_PORT": "5432",
  "DB_NAME": "myapp",
  "DB_PASSWORD": "s3cr3t",
  "API_KEY": "",
  "STRIPE_KEY": "your-stripe-key",
  "APP_ENV": "production"
}

콜론, 공백, 그 밖의 키 이름

dotenv는 YAML처럼 KEY: value도 읽지만 콜론 뒤에 공백이 있어야 합니다. dotenv가 건너뛰는 줄은 테이블에서 오류가 되고 내보내지지 않습니다. dotenv가 받는 드문 키는 경고가 붙고 내보내기에 포함됩니다.

SERVICE_NAME: 예약 서비스
export API_URL: https://api.example.kr/v1
DB HOST=db.internal
kakao.rest-key=your-rest-api-key
PORT:8080
{
  "SERVICE_NAME": "예약 서비스",
  "API_URL": "https://api.example.kr/v1",
  "kakao.rest-key": "your-rest-api-key"
}

상태 줄은 “유효 2개, 경고 1개, 오류 2개.”입니다. 3번째 줄은 키에 공백이 있어 dotenv의 키 패턴 [\w.-]+에 맞지 않으므로 오류이고, 5번째 줄은 콜론 뒤에 공백이 없습니다. Node.js 자체 파서(—env-file, util.parseEnv())는 규칙이 달라, Node.js 22.23.3은 이 텍스트에서 DB HOST와 kakao.rest-key를 읽고 콜론이 있는 세 줄은 모두 무시합니다.

proto라는 키만 내보내기 결과가 dotenv.parse()와 다릅니다. dotenv는 이 키를 버립니다.

__proto__=keep
A=1
{
  "__proto__": "keep",
  "A": "1"
}

감지되는 일반적인 .env 오류

  • 등호 누락 — =도 콜론도 없어 키-값 쌍으로 파싱할 수 없는 줄.
  • 콜론 표기 — PORT:8080, PORT : 8080은 dotenv가 건너뜁니다. PORT=8080 또는 PORT: 8080으로 쓰세요.
  • 빈 값 — 키는 있지만 값이 비어 있음. 앱에 따라 런타임 오류가 발생할 수 있습니다.
  • 중복 키 — 동일한 키가 두 번 이상 등장. dotenv는 마지막 값을 쓰지만 다른 로더도 그렇다는 보장은 없습니다.
  • 일반적이지 않은 키 이름 — 키 이름은 영문자나 밑줄로 시작하고 영문자, 숫자, 밑줄만 쓰는 것이 안전합니다. ., -가 있거나 숫자로 시작하는 키도 dotenv는 읽습니다(경고). 공백 등이 있는 키는 읽지 않습니다(오류).
  • 따옴표 없는 값 속 # — dotenv는 거기서부터 주석으로 보므로 COLOR=#fff는 빈 값이 되고 URL=https://example.com/#top은 #top이 사라집니다. 값을 따옴표로 감싸세요. 규칙은 dotenv 파싱 규칙 참고.

제한

  • 변수를 펼치지 않습니다. ${HOME}/data는 그대로 남습니다. dotenv-expand, Docker Compose, 일부 프레임워크는 이런 참조를 펼칩니다.
  • dotenv 규칙만 따릅니다. Node.js —env-file, Docker Compose의 env_file, Python의 python-dotenv, 셸의 source는 따옴표·콜론·export·#를 각자 다르게 처리합니다. 실제로 쓰는 로더로 확인하세요.
  • 값은 평문으로 표시됩니다. 테이블은 시크릿을 가리지 않으므로 화면 공유에 주의하세요. 파일을 공유하기 전에 API 키 마스킹 도구로 값을 바꿀 수 있습니다.

FAQ

어떤 .env 문법을 지원하나요?

dotenv 16.6.1(Node.js용 dotenv 패키지)의 파싱 규칙을 따릅니다. 한 줄에 KEY=VALUE 하나, 또는 콜론 뒤에 공백이 있는 KEY: value이며 앞에 export를 붙일 수 있습니다. 키에는 영문자, 숫자, _, ., -를 쓸 수 있습니다. #으로 시작하는 줄은 주석입니다. 따옴표 없는 값 뒤의 #부터 줄 끝까지는 주석이므로 PORT=5432 # default는 5432가 되고, 따옴표 안의 #은 그대로 남습니다. 따옴표로 감싼 값은 여러 줄에 걸칠 수 있습니다.

따옴표로 감싼 값은 어떻게 처리되나요?

값을 감싼 작은따옴표, 큰따옴표, 백틱은 제거하고 안쪽 공백은 유지합니다. \n을 줄바꿈으로 바꾸는 것은 큰따옴표 값뿐입니다. 닫히지 않은 따옴표는 값에 남고 메모 열에 표시됩니다.

어떤 경우가 오류로 감지되나요?

dotenv가 건너뛰는 줄은 오류이며 내보내지지 않습니다. = 도 콜론도 없는 줄(= 기호가 없습니다), 빈 키, MY KEY=1처럼 공백 등 dotenv가 허용하지 않는 문자가 있는 키(일반적이지 않은 키 이름), PORT:8080처럼 콜론 뒤에 공백이 없거나 앞에 공백이 있는 줄입니다. 빈 값, 중복 키, 그리고 dotenv는 받지만 [A-Za-z_][A-Za-z0-9_]*에 맞지 않는 키(my.key, 9KEY 등)는 경고이며 내보내기에 포함됩니다.

.env 파일이 서버로 전송되나요?

아닙니다. 모든 파싱은 브라우저 내 JavaScript로 처리되고 텍스트는 저장되지 않습니다. .env에는 시크릿이 들어 있으므로 이 페이지는 Google Analytics와 AdSense도 불러오지 않습니다.

JSON 내보내기 결과는 어떤 형태인가요?

테이블에서 오류가 아닌 모든 키를 담은 JSON 객체로, dotenv.parse() 결과와 같습니다. 주석 줄과 오류 줄은 제외됩니다. 중복 키는 dotenv처럼 마지막 값이 남고, 테이블에는 나올 때마다 경고가 붙습니다. 다른 점은 __proto__라는 키 하나뿐으로, 이 도구는 일반 속성으로 내보내고 dotenv.parse()는 버립니다. JSON 내보내기는 파싱 후, 내보낼 키가 하나 이상 있을 때만 쓸 수 있습니다.