시크릿은 로컬에 유지됩니다: 이 도구는 브라우저에서 완전히 실행됩니다. 네트워크 요청이 전혀 없습니다 — 개발자 도구 네트워크 탭에서 확인할 수 있습니다.
🔍

위에 .env 파일을 붙여넣으세요

시크릿 감지, 형식 검증, .env.example 생성

.ENV 인스펙터는 무엇을 검사하나요?

.ENV 인스펙터는 환경 변수 파일에서 세 가지 범주의 문제를 분석합니다: 시크릿 노출 위험, 형식 문제, 완전성. 각 줄을 파싱하고, 변수를 민감도별로 분류하며, 팀을 위한 안전한 템플릿 파일 생성을 도와줍니다.

시크릿 패턴 감지

인스펙터는 민감한 자격 증명에 대한 일반적인 패턴과 일치하는 이름의 변수를 표시합니다. 키에 다음 패턴이 포함된 변수는 시크릿으로 분류됩니다:

  • API 자격 증명: API_KEY, API_SECRET, API_TOKEN, ACCESS_KEY, ACCESS_TOKEN
  • 인증: PASSWORD, PASSWD, PWD, AUTH, BEARER, OAUTH, SESSION_SECRET
  • 암호화: PRIVATE_KEY, SECRET, HMAC, SALT, SIGNING_KEY, ENCRYPTION_KEY
  • 데이터베이스: DATABASE_URL, DB_URL, MONGO_URI, POSTGRES_URL, MYSQL_URL, CONNECTION_STRING, DSN
  • 인프라: WEBHOOK_SECRET, CERTIFICATE, CREDENTIAL, REDIS_PASSWORD

일반적인 .env 형식 문제

  • 등호(=) 누락: 모든 변수는 KEY=VALUE 패턴을 따라야 합니다. =가 없는 줄은 유효하지 않습니다.
  • 잘못된 키 이름: 키는 대문자, 숫자, 밑줄만 포함해야 합니다. 숫자로 시작하거나 공백이 포함된 키는 대부분의 환경에서 유효하지 않습니다.
  • 따옴표 없는 공백 포함 값: 공백이 포함된 값은 따옴표로 감싸야 합니다: APP_NAME="My Application"
  • 인라인 주석: 일부 파서는 인라인 주석을 지원하지 않습니다(PORT=3000 # web port). 주석은 별도의 줄에 작성하세요.
  • 후행 공백: 값의 후행 공백은 특히 비밀번호와 토큰에서 미묘한 버그를 유발할 수 있습니다.

.env 보안 모범 사례

  • 항상 .env를 .gitignore에 추가: 첫 번째 커밋 전에 echo ".env" >> .gitignore를 실행하세요. 시크릿이 git 히스토리에 들어가면 유출된 것으로 간주해야 합니다 — 교체만이 유일한 해결책입니다.
  • 대신 .env.example을 커밋: 실제 값을 노출하지 않고 어떤 변수가 필요한지 문서화하세요. 새 팀원은 이 파일을 복사하고 자신의 시크릿을 채울 수 있습니다.
  • 환경별로 다른 자격 증명 사용: 프로덕션, 스테이징, 개발 환경은 각각 별도의 API 키와 데이터베이스 자격 증명을 가져야 합니다. 프로덕션 시크릿을 개발 환경에서 재사용하지 마세요.
  • 시크릿 정기적 교체: 시크릿을 비밀번호처럼 취급하세요 — 주기적으로 교체하고, 접근 권한이 있는 사람이 팀을 떠날 때 즉시 교체하세요.
  • 프로덕션에서는 시크릿 매니저 사용: 프로덕션 워크로드에서는 디스크의 .env 파일보다 AWS Secrets Manager, HashiCorp Vault, Doppler 같은 전용 시크릿 관리 솔루션을 선호하세요.
  • 환경 변수를 로그에 기록하지 않기: 특히 프로덕션에서 process.env를 로그에 출력하지 마세요. 민감한 패턴을 수정하는 로그 필터링을 설정하세요.

.env 파일에 대한 자주 묻는 질문

이 도구에 .env 파일을 붙여넣어도 안전한가요?

네 — 이 도구는 브라우저에서 완전히 실행됩니다. 어떤 서버로도 데이터가 전송되지 않습니다. 도구 사용 중 브라우저의 개발자 도구 네트워크 탭을 열어 확인할 수 있습니다. 나가는 요청이 전혀 없음을 확인할 수 있습니다. 분석은 JavaScript로 로컬에서 수행되며 탭을 닫으면 사라집니다.

.env 파일이란 무엇이며 어떻게 작동하나요?

.env(dotenv) 파일은 애플리케이션의 환경 변수를 저장하는 일반 텍스트 파일입니다. 변수는 KEY=VALUE 형식으로 한 줄에 하나씩 작성합니다. dotenv(Node.js), python-decouple(Python), godotenv(Go) 같은 라이브러리가 시작 시 이 파일을 로드하여 프로세스에서 환경 변수로 사용할 수 있게 합니다. 이를 통해 구성과 코드를 분리할 수 있습니다 — 동일한 코드베이스가 서로 다른 .env 파일로 개발, 스테이징, 프로덕션 환경에서 실행됩니다.

.env, .env.local, .env.production의 차이점은 무엇인가요?

많은 프레임워크(Next.js, Vite, Create React App)는 서로 다른 로딩 우선순위를 가진 여러 .env 파일 변형을 지원합니다. .env는 모든 환경에서 로드되는 기본값입니다. .env.local은 .env를 오버라이드하며 git에서 무시됩니다. .env.production.env.development는 환경별 파일입니다. .env.local은 항상 환경별 파일보다 우선합니다. 정확한 로딩 순서는 프레임워크 문서를 확인하세요.

.env 파일을 실수로 Git에 커밋했습니다 — 어떻게 해야 하나요?

즉시 노출된 모든 자격 증명을 교체하세요 — 삭제 후에도 git 히스토리는 영구적이므로 유출된 것으로 간주해야 합니다. git rm --cached .env로 파일을 제거하고 .gitignore에 .env를 추가한 후, git filter-branch 또는 BFG Repo Cleaner로 히스토리를 덮어쓰기 위해 force-push하세요. 저장소가 공개이거나 클론된 적이 있다면 히스토리 재작성과 무관하게 모든 시크릿이 유출된 것으로 간주하세요.

관련 개발자 도구