핵심 정리
- API 키는 창구를 부를 때 함께 보내는 긴 문자열이에요. 이 문자열이 "나"를 뜻해요.
- 비밀번호와 달리 대개 이름을 따로 대지 않아요. 키를 쥔 쪽이 곧 주인으로 취급돼요.
- 서비스에 따라 키마다 열리는 문과 쓸 수 있는 양을 다르게 정해 둘 수 있어요.
- 새어 나가면 남이 내 이름으로 쓰고 요금과 기록은 내 앞으로 남아요.
- 샜다 싶으면 감추려 하지 말고 바로 끊고 새로 받는 것이 유일한 답이에요.
비유로 이해하기
회사 출입증은 카드 한 장이에요. 게이트에 대면 문이 열리고, 대지 않으면 열리지 않아요. 문을 여는 건 사람이 아니라 카드예요. 누가 들고 있든 게이트는 카드만 봐요.
카드마다 열리는 문도 달라요. 어떤 카드는 사무실까지만, 어떤 카드는 서버실까지 들어가요. 손님에게 내주는 카드는 그날 저녁이면 저절로 막혀요.
드나든 기록도 남아요. 몇 시에 어느 문을 지났는지 다 찍혀요.
그래서 출입증을 흘리면 곤란해져요. 주운 쪽이 내 이름으로 문을 열고 다니고, 기록은 내 것으로 쌓이니까요. 이럴 때 할 일은 하나예요. 그 카드를 정지시키고 새 카드를 받는 거예요.
API 키가 이 출입증이에요.
자세히 알아보기
이름을 묻지 않고 카드만 봐요
API 키는 뜻 없는 글자와 숫자가 길게 이어진 문자열이에요. 창구를 부를 때 이 문자열을 함께 보내면, 받는 쪽은 목록에서 찾아보고 이 키의 주인이 맞다고 여기고 일을 해 줘요.
여기서 중요한 건 대개 아이디와 비밀번호를 같이 대지 않는다는 점이에요. 키 하나로 끝나는 경우가 많아요. 그래서 키를 손에 넣은 쪽은 별다른 절차 없이 곧바로 주인 행세를 할 수 있어요. 키는 잠금장치라기보다 신분증이고, 그 신분증에는 얼굴 사진이 없어요.
사람이 외워서 쓰는 물건도 아니에요. 프로그램 안에 넣어 두고 부를 때마다 자동으로 붙여 보내요. 그래서 사람 눈에 잘 띄지 않는 곳에 오래 남아 있기 쉬워요.
카드마다 열리는 문이 달라요
키 하나가 모든 걸 다 할 수 있게 만들면 위험해요. 그래서 서비스가 허락하면 키를 만들 때 범위를 정해 둬요. 곳에 따라 읽기만 되는 키, 정해진 기능만 되는 키, 하루에 얼마까지만 쓰이는 키를 따로 만들 수 있어요.
쓰임새별로 나눠 두면 사고가 나도 번지지 않아요. 시험용으로 만든 키가 새어 나가도 시험용 문만 열리니까요. 어느 키가 샜는지 찾기도 쉬워요. 키마다 쓴 기록이 따로 쌓이거든요.
기간을 정해 두는 것도 좋아요. 손님용 카드가 저녁에 막히듯 키에도 만료일을 걸어 두면, 잊고 방치한 키가 몇 년씩 살아 있는 일을 줄일 수 있어요.
어디에 두면 안 되나
가장 흔한 사고는 키를 프로그램 안에 그대로 적어 놓고 그 프로그램을 통째로 공개된 곳에 올리는 거예요. 공개된 자리에 올라간 키는 몇 분 만에 긁혀 가기도 해요. 사람이 눈으로 찾기 전에 자동으로 훑고 다니는 쪽이 먼저 찾아내요.
브라우저에서 도는 화면 쪽 코드에 넣는 것도 위험해요. 처음부터 공개용으로 나온 키(쓸 수 있는 곳과 기능이 좁게 묶인 키)가 아니라면요. 화면에 안 보인다고 감춰진 게 아니에요. 브라우저까지 내려온 것은 누구나 열어 볼 수 있어요. 키는 사람 손이 닿지 않는 서버 쪽에 두고, 화면에서는 그 서버를 거쳐 부르는 게 기본이에요.
메신저에 붙여 보내는 것, 화면을 공유하며 띄워 두는 것, 캡처 그림에 같이 담기는 것도 같은 종류의 사고예요. 문서나 메모에 적어 두면 그 문서를 넘기는 순간 키도 함께 넘어가요.
새어 나갔다면
새어 나간 키는 고쳐 쓸 수 없어요. 잃어버린 출입증에 무언가를 덧칠하지 않는 것과 같아요. 할 일은 정해져 있어요. 그 키를 끊고, 새 키를 받고, 쓰던 곳을 새 키로 바꾸는 거예요.
그다음에는 기록을 봐야 해요. 언제부터 낯선 흔적이 생겼는지, 그동안 무엇을 얼마나 불렀는지 남아 있어요. 쓰지 않는 시간대에 갑자기 몰려 쓰인 자국이 있다면 남이 썼을 가능성이 커요. 요금이 붙는 서비스라면 알아채는 게 늦을수록 손해가 커져요.
미리 해 둘 일도 있어요. 쓰는 양을 실제로 막아 주는 상한을 걸어 두면, 새어 나가도 피해를 대략 그 선 근처에서 줄일 수 있어요. 알림만 보내는 설정과 실제로 막는 설정은 달라요. 완전히 막는 것보다 빨리 알아채고 빨리 끊는 쪽이 현실적이에요.
조금 더 정확하게
API 키는 신원 확인과 권한 확인을 한 번에 해치우는 가장 단순한 방식이에요. 단순한 만큼 약한 면도 있어요. 문자열 하나가 그대로 신분이라서, 새어 나가는 순간 되돌릴 방법이 없어요. 그래서 더 조심스러운 곳에서는 짧게 살았다 사라지는 임시 표를 받아 쓰거나, 부르는 쪽의 위치까지 함께 확인하는 방식을 겹쳐 써요.
출입증 비유가 어긋나는 지점도 있어요. 출입증은 잃어버리면 내 손에 없다는 걸 알아채지만, 키는 복사돼도 원본이 그대로 남아 있어서 샌 줄도 모르고 지나가기 쉬워요. 출입증은 한 사람이 한 장을 쓰지만 키는 여러 프로그램이 같은 것을 나눠 쓰는 일이 흔해서, 하나를 끊으면 여러 곳이 동시에 멈춘다는 차이도 있어요. 쓰임새별로 따로 만들어 두라는 말이 나오는 이유예요. 키를 만들어 준 쪽도 원래 값을 그대로 보관하지 않고 알아볼 수 없게 바꾼 값만 남겨 두는 곳이 많아요. 그래서 발급하는 순간 한 번만 보여 주고, 잃어버리면 새로 받게 해 둬요.
직접 해보기
흔한 오해
키도 비밀번호처럼 사람이 직접 로그인해야 쓸 수 있다고 생각하기 쉽지만, 실제로는 대개 문자열 하나(서비스에 따라 키 ID와 비밀 값 한 쌍)만 있으면 돼서 쥔 쪽이 곧 주인이 돼요.
화면 쪽 코드에 넣어도 눈에 안 보이면 괜찮다고 여기기 쉽지만, 실제로는 브라우저까지 내려온 것은 누구나 열어 볼 수 있어요.
새어 나가도 조심해서 쓰면 된다고 생각하기 쉽지만, 실제로는 끊고 새로 받는 것 말고는 되돌릴 방법이 없어요.
한 줄 요약
API 키는 창구 앞에서 나를 대신하는 출입증이라, 어디에 두느냐와 샜을 때 얼마나 빨리 끊느냐가 거의 전부예요.
잘못된 내용이나 더 좋은 비유가 있나요? 수정 제안 보내기 · 마지막 수정 2026-10-17