Api 키 관리하는 방법
필요성
저도 어릴 땐 API 키나 민감한 정보를 소스코드에 하드코딩했는데요, 이러면 소스코드에 접근할 수 있는 모든 사람이 API 키들을 볼 수 있게 됩니다. 이건 보안상 매우 안 좋은 일입니다. 그리고 API 키등이 변경 됐을 때 프로그램을 다시 빌드해야한다는 문제점도 있습니다.
이러한 이유들 떄문에, API 키등의 민감한 정보는 환경 변수를 사용해서 소스코드와 별개로 관리해아합니다.
이럴 때 흔히 쓰이는 게 .env
파일입니다.
.env
파일?
.env
파일은
KEY1=VALUE1
ENV2=VALUE2
처럼 생긴 텍스트 파일입니다.
일반적으로 .env
파일은 .gitignore
에 넣고, 값 없이 필요한 환경 변수의 목록만 있는 .env.example
파일을 제공합니다.
TWITTER_API_KEY=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
.env.example
파일은 이렇게 생겼고, 필요한 전체 환경 변수의 이름을 포함하고 있는 게 좋습니다.
환경변수 관리 서비스
환경변수 관리가 중요한데 귀찮은 일이다보니, 관리를 도와주는 서비스가 있습니다.
Vercel
저는 웹사이트를 배포할 때 주로 Vercel을 사용하는데요, 콘솔에서 환경 변수를 등록한 뒤 프로젝트를 연결하고 프로젝트에서 vc env pull
을 하면 .env
파일을 만들어줍니다.