개발 기본

환경변수(Environment Variable)

환경변수는 프로그램에 필요한 API 키나 서버 주소 등을 코드 밖에서 이름과 값으로 전달하는 설정입니다.

쉬운 설명

앱에는 코드뿐 아니라 연결할 서버 주소나 API 키 같은 설정도 필요해요. 환경변수는 이런 값을 코드에 직접 적는 대신, 프로그램이 이름으로 찾아 읽게 하는 설정이에요. 같은 코드라도 내 컴퓨터와 배포한 서버에서 서로 다른 값을 쓸 수 있어요. 다만 환경변수에 넣었다는 이유만으로 비밀값이 자동으로 보호되지는 않아요.

이런 상황에서 만나요

AI와 함께 만든 회의록 요약 앱이 내 컴퓨터에서는 되는데, 공유한 사이트에서는 실패했어요. AI가 ‘배포한 서버에도 AI_API_KEY 환경변수가 있는지 확인해 보세요’라고 안내할 수 있어요. 이때 앱을 배포한 곳의 설정 화면을 열어 봅니다.

환경변수 설정설명용 화면
1Name · 이름
AI_API_KEY
2Value · 값
••••••••••••가림 예시
3이 설정을 적용할 곳

배포한 앱의 서버

내 컴퓨터의 설정과 별도로 확인
  1. 1이름: 코드에서 읽는 이름을 그대로 넣습니다. AI_API_KEY는 이 앱을 가정한 예시입니다.
  2. 2값: 연결할 서비스에서 받은 값을 넣는 자리입니다. 여기서는 비밀값 대신 가림 표시를 사용했습니다.
  3. 3적용할 곳: 내 컴퓨터가 아닌, 사람들이 접속할 앱의 서버에 설정하는지 확인합니다.
특정 서비스의 실제 화면이 아닌 재구성 예시입니다. 설정을 저장한 뒤에는 사용 중인 도구의 안내에 따라 재시작하거나 재배포하고, 요약 기능을 다시 확인합니다.

AI에게 확인을 요청할 때는 ‘내 컴퓨터에서는 요약이 되는데 배포한 사이트에서만 실패해요. 서버에 AI_API_KEY라는 이름으로 설정했어요’처럼 증상과 설정 이름을 알려 주세요. 키 원문을 보내는 대신 값이 비어 있는지, 이름이 일치하는지 확인하면 됩니다. 환경변수가 제대로 설정되어 있다면 오류 메시지를 바탕으로 다른 원인을 살펴봅니다.

헷갈리기 쉬운 점

.env 파일에 넣었는데, 배포한 앱에서는 왜 못 읽나요?

내 컴퓨터의 .env 파일과 배포 서버의 설정은 별도로 관리되는 경우가 많습니다. 내 컴퓨터에 값이 있어도 배포한 곳에 자동으로 등록됐다고 볼 수는 없습니다. 코드가 읽는 변수 이름과 배포 설정의 이름이 같은지, 실제로 사용하는 환경에 값이 있는지 확인합니다. 값을 바꾼 뒤에는 도구에 따라 재시작이나 재배포가 필요할 수 있습니다.

환경변수는 값을 숨겨 주는 기능 자체가 아닙니다. 브라우저에 전달되는 변수에 비밀 API 키를 넣으면 방문자에게 노출될 수 있습니다. 비밀값이 든 .env 파일은 Git에 올리지 않고, 값을 확인하려고 키 전체를 로그나 AI 대화에 붙여 넣지 않습니다.

왜 알아야 할까요?

설정 누락은 코드 수정만으로 해결되지 않을 수 있습니다. 어느 환경에서 실패하는지와 어떤 이름의 설정이 필요한지를 알면, AI에게 비밀값을 보여 주지 않고도 문제를 구체적으로 설명할 수 있습니다.

조금 더 자세히

APP_ENV=development라는 예시에서 APP_ENV는 이름이고 development는 값입니다. 프로그램에 APP_ENV를 읽는 코드가 있어야 이 설정을 사용할 수 있습니다. 변수 이름은 프로젝트가 정해 둔 이름을 따르며, 이름을 비슷하게 바꾸면 다른 설정으로 취급될 수 있습니다.

.env는 이름과 값을 모아 적는 파일입니다. 파일이 존재한다고 모든 프로그램이 자동으로 읽는 것은 아닙니다. 사용하는 프레임워크가 읽어 주거나, 실행할 때 파일을 불러오도록 설정해야 합니다. 배포 서비스에서는 파일 대신 설정 화면에서 값을 등록하기도 합니다.

설정이 반영되는 시점도 다릅니다. 빌드할 때 코드에 들어가는 값은 결과물을 다시 만들어 배포해야 바뀝니다. 서버가 시작할 때 읽는 값은 재시작이 필요할 수 있습니다. 설정을 바꿨는데 동작이 그대로라면 사용 중인 도구의 반영 방법을 확인합니다.

환경변수에는 공개해도 되는 값도 있습니다. 예를 들어 Vite의 기본 설정에서 VITE_로 시작하는 변수는 브라우저용 코드에 포함됩니다. 비밀 키를 그런 변수에 넣으면 안 됩니다. 변수의 이름과 공개 범위를 확인하고, 비밀 키는 서버에서만 읽도록 구성합니다.

직접 사용할 때 확인해 보세요

  • 코드가 읽는 변수 이름과 설정한 이름이 일치하는지 확인한다
  • 내 컴퓨터와 배포한 서버 중 어디에서 값이 필요한지 확인한다
  • 값을 바꾼 뒤 필요한 재시작이나 재배포를 진행한다
  • 비밀값이 브라우저 코드·Git·로그에 남지 않는지 확인한다

관계 지도

환경변수(Environment Variable) 중심으로 관련 개념의 정의와 관계를 한눈에 정리했습니다.
환경변수(Environment Variable)의 정의와 관련 개념 간 관계를 설명한 계층형 그래프