바이브코딩 정보

API 키 관리와 환경변수 - 바이브코딩 보안 기초

bravenewabyss 2026. 2. 9. 10:00
반응형

 

바이브 코딩을 하다 보면 API 키라는 걸 자주 만나게 된다. 요즘 스레드나 x에서도 바이브코딩 보안 관련된 글들이 심심치않게 보이는 관계로 관련글을 작성해본다. API 키는 Firebase 설정할 때도 나오고 Netlify 연결할 때도 나오고 외부 서비스를 붙일 때마다 등장한다. 오늘은 비개발자도 반드시 알아야 하는 API 키 관리법을 정리한다. 지루하게 느껴질 수 있지만 이거 모르면 진짜 사고다.

1. API 키가 뭔데 왜 중요한가

API 키는 내 서비스가 외부 서비스에 접속할 때 쓰는 비밀번호 같은 것이다. Firebase에 데이터를 읽고 쓸 때 내가 이 프로젝트의 주인이라고 증명하는 열쇠다. 이 열쇠가 다른 사람 손에 들어가면 어떻게 될까. 누군가 내 Firebase 프로젝트에 접속해서 데이터를 마음대로 조작할 수 있다. 유료 API를 쓰고 있다면 남이 내 키로 요청을 보내서 요금 폭탄을 맞을 수도 있다. 실제로 GitHub에 AWS 키를 실수로 올렸다가 하루 만에 수백만 원이 결제된 사례가 꽤 있다. 바이브 코딩하는 사람이 주로 쓰는 Firebase도 무료 한도를 넘기면 과금되니 남의 일이 아니다.

2. 환경변수란

환경변수는 코드와 분리해서 민감한 정보를 저장하는 방법이다. 코드 파일에 API 키를 직접 적는 대신 별도의 설정 파일에 적어두고 코드에서는 그 파일을 참조하는 방식이다. 비유하자면 이렇다. 회사 출입증 번호를 명함에 인쇄하는 사람은 없다. 명함은 누구에게나 돌리는 거니까. 출입증 번호는 지갑 속에 따로 보관한다. 환경변수도 마찬가지다. 코드는 누구나 볼 수 있는 명함이고 환경변수 파일은 나만 가지고 있는 지갑이다.

3. .env 파일 만들기

실제로 하는 방법은 아주 간단하다. 프로젝트 폴더 최상단에 .env라는 파일을 만들고 여기에 API 키를 적는다.

 

VITE_FIREBASE_API_KEY=여기에실제키값

VITE_FIREBASE_AUTH_DOMAIN=내프로젝트.firebaseapp.com

VITE_FIREBASE_PROJECT_ID=내프로젝트아이디

 

그리고 코드에서는 이 값을 불러와서 쓴다. AI에게 Firebase 설정을 환경변수로 분리해달라고 하면 알아서 .env 파일을 만들고 코드에서 참조하도록 수정해 준다. Vite를 쓰고 있다면 환경변수 이름 앞에 VITE_를 붙여야 한다. 이건 Vite의 규칙이다. React만 쓴다면 REACT_APP_을 붙인다. AI가 알아서 해주긴 하지만 알아두면 좋다.

4. .gitignore에 반드시 추가

.env 파일을 만들었으면 이게 GitHub에 올라가지 않도록 막아야 한다. .gitignore 파일에 .env를 추가하면 된다. 이전 글에서 Git 설정할 때 AI가 .gitignore를 만들어 줬을 텐데 거기에 .env가 포함되어 있는지 확인하자. 만약 빠져 있다면 AI에게 .gitignore에 .env 파일 추가해달라고 하면 한 줄 추가해 준다. 이 한 줄이 보안 사고를 막아준다.

주의할 점이 하나 있다. 이미 .env 파일을 커밋한 적이 있다면 .gitignore에 추가해도 소용없다. Git은 이미 추적 중인 파일은 무시 목록에 넣어도 계속 추적한다. 이 경우에는 AI에게 Git에서 .env 파일 추적을 해제해달라고 요청해야 한다.

5. Netlify에 환경변수 설정하기

로컬에서 .env 파일로 잘 돌아가던 앱을 Netlify에 배포하면 갑자기 안 되는 경우가 있다. .env 파일은 내 컴퓨터에만 있고 Netlify 서버에는 없기 때문이다. 당연한 건데 처음에는 이것 때문에 한참 헤맸다. Netlify에서는 사이트 설정의 환경변수 메뉴에서 같은 값들을 직접 입력해야 한다. Site configuration에서 Environment variables 항목을 찾아서 .env에 적었던 키와 값을 하나씩 추가하면 된다. 이 과정도 AI에게 물어보면 어디를 클릭해야 하는지 순서대로 알려준다.

6. 흔한 실수들

첫째로 API 키를 코드에 하드코딩하는 것이다. AI에게 빠르게 기능을 만들어달라고 하면 가끔 키를 코드에 직접 넣어버린다. 이걸 그대로 GitHub에 올리면 큰일 난다. 코드를 커밋하기 전에 API 키가 하드코딩된 부분이 없는지 한번 훑어보는 습관이 필요하다.

 

둘째로 .env.example 파일을 안 만드는 것이다. 나중에 다른 컴퓨터에서 작업하거나 팀원이 생겼을 때 어떤 환경변수가 필요한지 알 수가 없다. .env.example이라는 파일을 만들어서 키 이름만 적어두고 값은 비워두면 가이드가 된다. 이 파일은 GitHub에 올려도 된다. 값이 없으니까.

 

셋째로 Firebase 보안 규칙을 방치하는 것이다. Firebase API 키는 사실 클라이언트에 노출되는 게 정상이다. 대신 Firebase 보안 규칙에서 누가 뭘 읽고 쓸 수 있는지를 제한해야 한다. 테스트할 때 편하라고 모든 읽기쓰기를 허용해 놓고 그대로 배포하면 아무나 내 데이터베이스를 조작할 수 있다.

마무리

보안은 재미없는 주제다. 하지만 한 번 사고가 나면 재미없는 정도가 아니라 머리가 아프다. 바이브 코딩의 장점은 빠르게 만들 수 있다는 것인데 그 속도 때문에 보안을 건너뛰기 쉽다. .env 파일 만들고 .gitignore에 추가하는 데 5분이면 된다. 그 5분이 나중에 몇 시간 혹은 몇십만 원의 비용을 아껴줄 것이다.

반응형