빌드하는 방법을 두 가지로 상상해 보세요.
첫 번째는 원자재인 목재로 시작하는 방법이에요. 판자를 재단하고, 길이에 맞게 자르고, 나사를 직접 만들고, 모든 엣지를 사포로 다듬어야 해요. 책장 하나를 세우기도 전에 며칠이 걸리죠. 두 번째는 IKEA 박스를 여는 방법이에요. 부품은 이미 재단되어 있고, 라벨이 붙어 있고, 구멍까지 뚫려 있어요. 나사는 작은 봉지에 담겨 있고, 어떤 부품이 어디에 가는지 보여주는 책자도 있어요. 오후 한 나절이면 끝나요.
SDK가 바로 그 IKEA 박스예요. SDK는 Software Development Kit(소프트웨어 개발 키트)의 약자로, 어떤 회사가 자사 서비스 위에 무언가를 만들 수 있도록 제공하는 사전 제작된 부품 상자예요. 복잡한 내부 배선을 직접 하지 않아도 돼요.
이 비유가 딱 들어맞는 이유가 있어요. 서비스에 직접 연결하려면 원자재 코드를 써야 해요. 연결을 열고, 요청 형식을 정확히 맞추고, 키를 첨부하고, 온갖 오류를 처리하고, 응답을 해석해야 하죠. 수십 가지 세부 단계가 있고, 문자 하나가 틀리면 전체가 망가져요. SDK는 이 모든 과정을 단 하나의 깔끔한 명령 뒤에 숨겨줘요. 300줄 대신 3줄만 쓰면 돼요.
그렇다면 박스 안에는 실제로 무엇이 들어 있을까요? 보통 세 가지예요.
미리 만들어진 명령어. 지저분한 작업을 감싸줘요. 요청을 직접 조립하는 대신
stripe.charges.create()같은 한 줄로 끝낼 수 있어요.복사해서 수정할 수 있는 예시 코드. 빈 화면 앞에서 막막하게 시작하지 않아도 돼요.
도구와 헬퍼. 키 관리, 오류 처리, 재시도 같은 귀찮은 배관 작업을 조용히 백그라운드에서 처리해줘요.
이런 표현을 자주 듣게 될 텐데, 이제는 의미가 와닿을 거예요.
"Python SDK가 있습니다."
회사가 하는 말은 이런 뜻이에요. Python으로 개발한다면, 우리 서비스를 쉽게 연결할 수 있는 정리된 패키지가 여기 있어요. 주요 언어마다 하나씩 제공하는 경우가 많아요. Python 박스, JavaScript 박스, Swift 박스. 안에 든 부품은 같고, 언어에 맞게 설명서만 달라요.
드라이브스루 창구와의 관계. API는 서비스의 창구예요. 주문할 수 있는 것들의 메뉴죠. SDK는 그 창구에서 주문하는 과정을 수월하게 만들어주는 키트예요. 창구는 무엇을 요청할 수 있는지를 정의하고, 키트는 세부 사항을 신경 쓰지 않고도 어떻게 요청하는지를 알려줘요.
개발자가 결제, 지도, AI 기능을 한 달이 아니라 오후 한 나절 만에 앱에 붙일 수 있는 이유가 바로 이거예요. 처음부터 만드는 게 아니에요. 박스를 열고, 책자를 따라가고, 이미 재단된 부품을 조립할 뿐이에요.
원자재냐, IKEA 박스냐. SDK는 항상 박스예요.