🌳 고급 인프라
환경변수와 시크릿 관리
쉽게 이해하기
코드는 공개된 레시피북이라고 생각해보세요. 레시피에 '우리 집 금고 비밀번호는 1234'라고 적어두면 누구나 볼 수 있잖아요. 환경변수는 레시피와 별도로 보관하는 비밀 메모 같은 거예요.
핵심 정리
API 키나 비밀번호 같은 민감한 정보는 코드에 넣으면 안 되는 이유
자세히 알아보기
환경변수는 코드 외부에서 주입하는 설정값이에요. API 키, 데이터베이스 비밀번호, 서드파티 서비스 토큰처럼 민감한 정보는 절대 코드에 하드코딩하면 안 됩니다. Git에 올라가면 공개 저장소라면 전 세계 누구나 볼 수 있거든요.
로컬 개발에서는 `.env` 파일에 환경변수를 넣고 `.gitignore`에 추가해서 Git에 올라가지 않게 해요. 프로덕션에서는 호스팅 서비스의 환경변수 설정 기능이나 시크릿 관리 도구(AWS Secrets Manager, Vault 등)를 사용합니다.
환경변수를 사용하면 같은 코드로 개발/스테이징/프로덕션 환경을 다르게 설정할 수 있어요. 예를 들어 개발에서는 로컬 DB를 쓰고, 프로덕션에서는 클라우드 DB를 쓰는 식이죠.
실무에서는 Vercel이나 Netlify 같은 플랫폼의 환경변수 설정 UI에서 직접 입력하거나, Kubernetes의 Secret 객체로 관리해요. 절대 슬랙이나 이메일로 시크릿을 주고받지 않고, 암호화된 채널이나 전용 도구를 사용합니다.