APP DEVELOPMENT TERM
환경 변수
코드 밖에서 주입하는 실행 설정값
환경 변수는 앱이나 서버가 실행될 때 외부에서 전달받는 이름과 값의 설정이며, 같은 코드에 개발·테스트·운영별 서버 주소와 기능 조건을 다르게 적용하는 데 사용합니다.
30초 이해
환경 변수는 코드를 고치지 않고 실행 공간마다 주소·기능·외부 서비스 연결을 바꾸게 하는 설정입니다
개발용 서버 주소와 운영용 서버 주소를 코드 곳곳에 직접 적으면 잘못된 값이 공개되거나 바꿀 때 누락되기 쉽습니다. 환경 변수로 분리하면 같은 코드에 개발·테스트·운영 환경이 각자의 주소와 설정을 주입할 수 있습니다.
환경 변수라고 모두 비밀정보인 것은 아니며, 환경 변수에 넣었다고 자동으로 안전해지는 것도 아닙니다. 공개 가능한 기능 설정과 API 비밀키·데이터베이스 비밀번호를 구분하고, 민감한 값은 배포 서비스의 비밀 관리 기능과 최소 권한으로 보관해야 합니다. .env 파일은 이런 이름과 값을 적는 한 가지 파일 형식입니다.
한 장으로 이해
같은 코드에 환경별 설정값을 안전하게 연결하는 과정
코드에는 변수 이름만 두고 배포 환경이 목적에 맞는 값을 제공해 서로 다른 서비스 연결과 기능을 구성합니다.
- 01
설정 식별
서버 주소·외부 키·기능 조건 중 코드 밖으로 분리할 값을 정합니다.
- 02
이름 정의
무엇을 뜻하는지 알 수 있는 변수 이름과 필요한 환경을 문서화합니다.
- 03
값 안전 보관
일반 설정과 비밀값을 구분해 환경별 저장소와 권한을 적용합니다.
- 04
배포·교체
환경에 값을 주입하고 노출·오류 시 비밀값을 교체합니다.
소스코드에는 비밀값 자체가 아니라 필요한 변수 이름과 사용 목적만 남기고 실제 값의 소유·접근·교체 책임을 별도로 정해야 합니다.
언제 사용하는 개념인가요?
환경별 서버를 연결할 때
개발·테스트·운영 앱이 각기 다른 API와 데이터베이스를 사용하게 합니다.
외부 서비스 인증 정보를 쓸 때
결제·메일·알림·지도 API 키를 코드에 직접 넣지 않고 권한이 통제된 공간에서 제공합니다.
기능 공개 범위를 조절할 때
배포 결과물을 다시 만들지 않고 환경별 기능 사용 여부나 운영 옵션을 관리할 수 있습니다.
왜 중요한가요?
운영 비밀값의 코드 노출을 줄입니다
저장소와 빌드 파일에 비밀번호·개인키가 그대로 남는 위험을 낮춥니다.
같은 코드의 환경별 동작을 구분합니다
시험 결제와 실제 결제처럼 환경마다 달라야 하는 연결을 명확하게 관리합니다.
설정 변경과 사고 대응을 빠르게 합니다
외부 키가 노출되거나 주소가 바뀌었을 때 코드 전체 수정 없이 값을 교체할 수 있습니다.
실제 상황 예시
예약 앱의 결제·알림 설정을 나눈다면
변수 이름은 같게 유지하고 개발·테스트·운영 공간이 서로 다른 실제 값을 보관합니다.
변수로 분리할 항목
- API 서버와 데이터베이스 주소
- 결제사 공개키·비밀키
- 문자·푸시 알림 인증 정보
- 기능 공개 여부와 오류 수집 환경
운영 관리 기준
- 운영 비밀값 접근자 최소화
- 저장소에 .env 실제 값 제외
- 변경자·시점과 배포 결과 기록
- 노출·퇴사·업체 종료 시 키 교체
테스트 키가 운영에 들어가거나 운영 키가 개발자 개인 컴퓨터에 퍼지지 않도록 환경·권한·교체 절차를 함께 관리해야 합니다.
자주 하는 오해
“환경 변수는 모두 비밀번호다”
서버 주소나 기능 설정처럼 공개 가능한 값도 있습니다. 민감도에 따라 보관과 접근 기준을 다르게 적용해야 합니다.
“.env 파일에 넣으면 자동으로 안전하다”
.env 파일도 복사·커밋·노출될 수 있습니다. 실제 비밀값은 저장소에서 제외하고 배포 서비스의 보호 기능을 사용하는 것이 좋습니다.
“프론트엔드 환경 변수는 사용자에게 안 보인다”
브라우저나 앱에 포함된 값은 사용자가 확인할 수 있다고 가정해야 합니다. 서버만 가져야 할 비밀키를 클라이언트에 넣으면 안 됩니다.
우리 서비스에 적용할 때 확인하세요
- 1코드와 공개 저장소에 실제 비밀값이 포함되지 않았나요?
- 2변수 이름·용도·필수 여부와 환경별 담당자가 문서화됐나요?
- 3브라우저·앱에 포함돼도 되는 값과 서버 전용 비밀값을 구분했나요?
- 4운영 비밀값 접근 권한과 변경 이력을 확인할 수 있나요?
- 5노출·퇴사·업체 변경 시 키를 교체하는 방법을 아나요?
공식 참고
서비스 기준은 공식 문서에서 다시 확인하세요
다음 자료
이해한 내용을 바로 적용해보세요
값이 달라지는 개발·테스트·운영 환경, 비밀정보 접근을 통제하는 인증·인가와 코드 원본을 관리하는 소스코드를 함께 확인하세요.
환경 변수 목록보다 값의 소유·접근·교체 책임을 먼저 정하세요
변수 이름·용도·민감도·사용 환경·관리자를 표로 남기고 실제 비밀값은 권한이 통제된 공간에서 관리하세요.
