사례 2주차 2026-08-06 · 위키 글마다 사진 자동으로 붙이기 연재

API 키, 깃허브에 새어나가지 않게 관리하는 법

새 API 키를 쓰게 되면서, "실수로 GitHub에 올라가지 않게 해달라"고 부탁했다. 코드에 직접 안 쓰고 따로 관리하는 방식과, 이미 올라간 적 있는지 커밋 기록 전체를 검사하는 법을 정리했다.

A brass padlock securing a rusty wire on a concrete post, symbolizing security and protection.
사진: Markus Winkler · Pexels

이 글은 이런 분께

  • 처음으로 API 키를 발급받아서 쓰게 됐는데, 어떻게 보관해야 안전한지 모르는 분
  • “이거 혹시 깃허브에 그대로 올라간 거 아니야?” 뒤늦게 걱정되는 분
  • “코드에 직접 쓰지 말라”는 말은 들었는데 그게 정확히 뭔 뜻인지 감이 안 잡히는 분

Before — 키를 만들긴 했는데 어떻게 보관해야 할지 몰랐다

Pexels API 키를 직접 발급받고 나니, 이 키를 어디에 어떻게 저장해야 안전한지가 걱정됐다. 코드 파일 안에 그냥 적어두면 될 것 같았는데, 그게 위험하다는 말은 어디선가 들어본 것 같았다. 그래서 이렇게 부탁했다.

API 키를 쓰게 됐어. 실수로 GitHub에 올라가지 않게 안전하게 넣어줘.
- 키를 코드에 직접 쓰지 말고 따로 관리하는 방식으로 해줘.
- 그 파일이 .gitignore에 들어 있는지 확인해줘.
- 혹시 이미 올라간 적이 있으면 알려줘.

어떻게 — 세 가지를 한 번에 확인

1. 키를 코드가 아니라 별도 파일에 저장

.env라는 파일 하나를 새로 만들어서 그 안에 키이름=값 형태로만 저장했다. 실제 코드에는 값이 아예 안 적히고, “환경변수(.env)에서 이 이름의 값을 읽어와라”는 지시만 남는다. 이렇게 하면 코드를 통째로 남에게 보여줘도 키 값 자체는 안 보인다.

2. .gitignore에 등록됐는지 확인

grep -n "\.env" .gitignore

.env, .env.production이 이미 등록돼 있는 걸 확인했다. .gitignore는 “이 목록에 있는 파일은 깃허브에 절대 안 올린다”는 규칙을 적어두는 파일이다.

3. 예전 커밋 기록까지 전부 뒤져서 확인

지금 상태만 안전한 게 다가 아니다. 과거에 실수로 한 번이라도 올라간 적 있으면, 지금 지워도 예전 기록엔 남아있다. 그래서 처음 만든 이후의 전체 히스토리를 다 뒤졌다.

git log --all --full-history -- .env          # .env 파일 자체가 커밋된 적 있는지
git log --all -p | grep "실제_키_문자열"        # 키 값이 다른 파일 안에 그대로 적힌 적 있는지

둘 다 결과가 아무것도 안 나와야 안전하다는 뜻이다.

After — 결과

점검 항목결과
.gitignore.env 등록 여부✅ 이미 등록돼 있었음
.env가 지금까지 커밋된 적 있는지✅ 한 번도 없음
키 값 문자열이 다른 파일에 남아있는지✅ 없음 (전체 히스토리 검사)

세 가지 다 안전하다는 걸 확인하고 나서야 마음이 놓였다. “커밋 안 했으니까 괜찮겠지”가 아니라 직접 검사해서 눈으로 확인한 게 핵심이었다.

배운 것 / 재사용 자산

API 키는 “코드”가 아니라 “환경변수”에. 코드는 여러 사람이 보고, GitHub에 영구히 기록되고, 검색도 된다. 반면 .env 파일은 내 컴퓨터에만 있고 .gitignore가 깃허브 업로드 자체를 막아준다. 이 둘을 분리하는 게 API 키 보안의 기본이라는 걸 알게 됐다.

새 API 키를 받을 때마다 쓸 체크리스트

  • 키 값을 코드에 직접 쓰지 않고 .env(또는 그에 준하는 별도 파일)에 저장했는가
  • 그 파일이 .gitignore에 등록돼 있는가
  • 전체 커밋 기록(git log --all)까지 검사해서, 과거에 실수로 올라간 적이 없는지 확인했는가
  • 배포 사이트(Vercel 등)를 쓴다면, 그쪽 환경변수 설정에도 별도로 등록했는가

재사용 프롬프트

API 키를 쓰게 됐어. 실수로 GitHub에 올라가지 않게 안전하게 넣어줘.
- 키를 코드에 직접 쓰지 말고 따로 관리하는 방식으로 해줘.
- 그 파일이 .gitignore에 들어 있는지 확인해줘.
- 혹시 이미 올라간 적이 있으면 알려줘.

이 네 줄만 기억해두면, 앞으로 어떤 API 키를 받든 똑같이 안전하게 시작할 수 있다.