API 키 관리하는 방법

Page content

필요성

저도 어릴 땐 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 파일을 만들어줍니다.