2554 단어
13 분

SDK에 대해 알아보자

2026-05-25
2026-05-25

SDK는 Software Development Kit(소프트웨어 개발 키트)의 약자다. 쉽게 말해, 개발자가 특정 플랫폼, 시스템, 또는 소프트웨어에 맞는 프로그램을 쉽게 만들 수 있도록 도와주는 ‘종합 도구 상자’ 세트라고 생각하면 된다.

SDK를 비유하자면, 레고로 성을 만들 때 하나하나 플라스틱을 녹여서 블록을 만드는 게 아니라, 미리 만들어진 블록과 설명서, 조립 도구가 들어있는 ‘레고 조립 세트’를 사는 것과 같다.

SDK 안에는 무엇이 들어있을까?#

SDK는 보통 하나의 패키지로 제공되며, 다음과 같은 것들이 포함되어 있다.

  • 라이브러리 / API: 미리 만들어진 코드의 묶음. 예를 들어 “로그인 기능”, “결제 기능”을 개발자가 처음부터 만드는 게 아니라, 이미 만들어진 코드를 가져다 쓸 수 있게 해준다.

  • 컴파일러 등 개발 도구: 개발자가 작성한 코드를 컴퓨터나 스마트폰이 이해할 수 있는 언어로 변환해 주는 도구.

  • 디버거: 코드에 오류(버그)가 없는지 찾아내고 수정할 수 있게 도와주는 도구.

  • 문서 및 샘플 코드: 이 SDK를 어떻게 사용하는지 설명해 주는 가이드북과 예시 파일.

about sdk

SDK, 예시로 이해하기#

우리가 자주 쓰는 앱들도 대부분 다양한 SDK를 사용해 만들어져 있다.

  • 안드로이드 앱을 만들고 싶다면? Google이 제공하는 Android SDK가 필요하다.

  • 아이폰 앱을 만들고 싶다면? Apple이 제공하는 iOS SDK가 필요하다.

  • 내 앱에 ‘카카오톡 로그인’이나 ‘지도’를 넣고 싶다면? 카카오가 제공하는 카카오 SDK를 내 프로그램에 설치해야 한다.

최근에는 Antigravity SDK가 출시되면서, 내 입맛대로 에이전트를 만들어 쓸 수 있게 되었다.

SDK, API와의 차이점은 무엇일까?#

두 개념이 자주 혼용되어서 헷갈릴 수 있는데, 포함 관계로 이해하면 쉽다.

  • API (Application Programming Interface): 프로그램과 프로그램이 서로 소통하기 위한 ‘통로’나 ‘규칙’을 의미한다. (예: 기상청 서버에 날씨 데이터를 요청하는 명령어)

  • SDK (Software Development Kit): API를 포함해서, 개발에 필요한 모든 도구(컴파일러, 디버거, 문서 등)를 통째로 넣어둔 ‘종합 선물 세트’다.

즉, SDK가 더 넓은 개념이며, 보통 SDK 안에 API가 포함되어 있다.

SDK를 사용할 때 주의사항은 없을까?#

SDK는 개발 과정을 획기적으로 줄여주기도 하지만, 남용하거나 잘못 사용하면 프로젝트에 독이 될 수도 있다.

1. SDK 사용의 장점#

  • 개발 시간 및 비용 단축: 미리 만들어져 있는 것을 갖다 쓰는거라서 결제, 로그인, 지도 등 복잡한 기능을 처음부터 만들 필요 없이 몇 줄의 코드로 구현할 수 있어 서비스 출시가 빨라진다.

  • 검증된 안정성: 구글, 카카오, 페이스북 등 대기업이나 전문 기업이 만든 SDK는 이미 수많은 테스트를 거쳤기 때문에 직접 만드는 것보다 버그가 적고 안전하다.

  • 유지보수 효율성: 플랫폼(iOS, 안드로이드 등)의 OS 버전이 업데이트되거나 보안 이슈가 생겼을 때, SDK 제공업체가 알아서 업데이트를 해주므로 유지보수 부담이 줄어든다.

  • 풍부한 문서와 커뮤니티: 대중적인 SDK는 사용법이 잘 정리되어 있고, 에러가 발생해도 인터넷에서 해결책을 찾기 쉽다.

2. SDK 사용의 단점#

  • 앱 용량 증가: SDK 안에는 내가 쓰지 않는 기능의 코드나 이미지까지 포함되어 있는 경우가 많다. SDK를 많이 추가할수록 최종 앱의 용량이 커진다.

  • 높은 의존성과 주도권 상실: 만약 SDK 제공업체의 서버가 터지거나 서비스를 종료하면, 내 앱의 해당 기능도 마비된다.

  • 블랙박스 문제: SDK 내부 코드는 대개 숨겨져 있어서, SDK 자체에서 버그가 발생하면 내가 직접 코드를 수정할 수 없고 제공업체의 업데이트만 기다려야 한다.

  • 성능 저하: 여러 개의 SDK가 백그라운드에서 동시에 작동하면 스마트폰의 메모리를 많이 차지하고 배터리 소모가 빨라질 수 있다.

3. SDK 사용 시 반드시 확인해야 할 주의사항#

① 라이선스 및 비용 확인#

  • 유료 전환 조건: “사용자 수 1만 명까지는 무료, 그 이후부터는 건당 과금” 같은 조건이 있는지 반드시 확인해야 한다. 서비스가 성장했을 때 폭탄 청구서를 받을 수도 있다.

  • 오픈소스 라이선스: SDK 내부에 상업적 이용을 제한하거나, 내 소스코드를 의무적으로 공개해야 하는 라이선스(GPL 등)가 포함되어 있는지 확인해야 한다.

② 개인정보 보호 및 보안 (Privacy & Security)#

  • 데이터 무단 수집: 일부 광고나 애널리틱스 SDK는 사용자의 위치, 연락처, 기기 정보 등을 몰래 수집하기도 한다. 이로 인해 구글 플레이스토어나 애플 앱스토어에서 앱 출시를 거부 당하거나 법적 처벌을 받을 수 있다.

  • 개인정보 처리방침 반영: SDK가 수집하는 정보가 있다면, 반드시 앱의 개인정보 처리방침에 명시해야 한다.

③ 업데이트 및 관리 상태 확인#

  • 최근 업데이트 날짜: 마지막 업데이트가 1~2년 전인 SDK는 절대 사용하면 안된다. 최신 스마트폰 OS 환경에서 작동하지 않거나 보안 취약점이 있을 확률이 매우 높기 때문이다.

④ 의존성 충돌#

  • A라는 SDK와 B라는 SDK를 동시에 넣었는데, 두 SDK가 서로 다른 버전의 동일한 하위 라이브러리를 사용하면 에러가 발생해 앱이 켜지지 않을 수 있다. 도입 전 호환성 테스트가 필요하다.

SDK의 구조는 어떻게 생겼을까?#

SDK의 내부 구조는 개발자가 특정 환경에서 앱을 쉽게 만들 수 있도록 다양한 도구와 리소스가 층층이 쌓여 있는 구조를 가지고 있다.

이해하기 쉽게 가장 바깥쪽(개발자가 직접 만지는 부분)부터 가장 안쪽(컴퓨터가 이해하는 부분)까지의 구조를 도식화하면 다음과 같다. sdk structure

SDK를 구성하는 4대 핵심 구조#

SDK는 크게 ① 인터페이스(연결고리), ② 라이브러리(기능 묶음), ③ 개발 도구(변환 및 검사), ④ 가이드라인의 4가지 계층으로 나뉜다.

1. API — 인터페이스 계층#

  • 역할: 개발자가 SDK의 기능을 쓸 수 있도록 열어놓은 창구나 명령어 시스템이다.

  • 설명: 개발자는 SDK의 내부 코드가 어떻게 돌아가는지 몰라도, 이 API라는 문을 통해 “로그인해 줘”, “지도 보여줘” 같은 명령을 내릴 수 있다. SDK의 가장 표면에 위치한다.

2. 프레임워크 및 라이브러리 — 기능 계층#

  • 역할: 실제 기능들이 구현되어 있는 코드의 본체다.

  • 설명: 미리 작성된 클래스, 함수, 그래픽 리소스 등이 포함되어 있다.

    • 예: 안드로이드 SDK의 경우 화면을 그리는 기능, 네트워킹 기능, 데이터베이스에 접근하는 기능 등이 이 계층에 라이브러리 형태로 들어있다.

3. 개발 도구 계층 — 엔진 계층#

개발자가 작성한 코드를 실제 작동하는 앱으로 완성하기 위해 백그라운드에서 일하는 도구들이다.

  • 컴파일러 : 사람이 작성한 프로그래밍 언어 코드를 스마트폰이나 컴퓨터가 이해할 수 있는 기계어(0과 1)로 번역해 준다.

  • 디버거: 코드의 오류를 추적하고, 메모리 누수가 없는지 감시하는 도구다.

  • 빌드 도구: 코드, 이미지, 라이브러리를 한데 모아 최종 설치 파일(예: .apk, .ipa)로 포장해 준다.

4. 문서 및 샘플 코드 — ‘안내서 계층’#

  • 역할: 개발자가 SDK를 헤매지 않고 쓸 수 있게 돕는 설명서다.

  • 설명: 각 API를 어떻게 호출해야 하는지 적힌 문서와, 실제로 작동하는 간단한 예제 프로그램이 포함되어 있다. 개발자는 이 샘플을 복사·붙여넣기 하는 것부터 시작하곤 한다.

Antigravity SDK 예시#

antigravity sdk example 예시 코드가 담겨 있는 폴더. how to use antigravity sdk 대부분의 SDK 페이지에서는 Readme 파일에 ‘이걸 어떻게 쓰면 되냐면~’ 하는 설명 글들을 적어둔다.

antigravit sdk에서는 설치 및 Gemini API KEY를 환경변수에 등록하는 것으로 시작하라고 가이드를 준다.

💡 요약하자면

SDK의 구조는 “설명서(Documentation)를 보고, 명령어(API)를 입력하면, 내장된 기능(Library)들이 작동하여, 번역기(Tools)를 통해 하나의 앱으로 완성되는 구조”로 짜여 있다.

Antigravity SDK 해부글 더 알아보기#

구글 Antigravity SDK 알아보기 - 직접 만드는 나만의 AI Agent