개념 설명게시일: 6분 분량

ADB란? 안드로이드 디버그 브리지 쉽게 이해하기

ADB(Android Debug Bridge)는 컴퓨터가 안드로이드 기기와 통신하게 해 주는 도구예요. 세 가지 구성 요소, 연결 승인 방식, USB와 와이파이, fastboot와의 차이를 알아봐요.

ADB는 Android Debug Bridge(안드로이드 디버그 브리지)의 줄임말로, 컴퓨터가 안드로이드 폰, 태블릿, TV와 통신할 때 쓰는 도구예요. ADB로 앱 설치, 로그 확인, 파일 복사, 셸 명령 실행, 화면 제어를 모두 컴퓨터에서 할 수 있어요. Google이 Android SDK와 함께 배포하고, Android Studio에서 Run을 누를 때마다 내부에서 쓰는 것도 바로 이 도구예요.

세 부분으로 이뤄진 다리

ADB는 명령 하나처럼 보이지만 실제로는 세 개의 프로그램이 함께 동작해요.

구성 요소실행 위치역할
클라이언트내 컴퓨터직접 입력하는 adb 명령이에요. 요청을 서버로 보내요.
서버내 컴퓨터, 백그라운드연결된 기기를 관리하고 클라이언트와 기기 사이에서 메시지를 전달해요. 5037 포트에서 대기해요.
데몬 (adbd)안드로이드 기기명령을 받아 기기에서 실행해요.

adb 명령을 처음 입력하면 서버가 실행 중이 아닐 경우 클라이언트가 서버를 띄워요. 서버는 USB와 네트워크에서 기기를 찾아요. adb shell ls를 실행하면 클라이언트가 요청을 서버에 넘기고, 서버가 기기의 adbd로 전달하고, 결과는 같은 경로로 돌아와요.

그래서 ADB 서버는 한 번에 한 프로그램만 띄우는 게 좋아요. Android Studio, scrcpy, 터미널이 각자 USB 연결을 차지하려고 하면 서로 충돌해서 "device busy" 같은 오류가 생겨요. 보통 adb kill-server를 실행하거나 다른 도구를 닫으면 해결돼요. 자세한 내용은 busy 또는 unauthorized 기기 해결에 있어요.

기기가 컴퓨터를 받아들이는 방식

ADB로 할 수 있는 일이 많아서 안드로이드는 아무 컴퓨터나 쓰게 두지 않아요.

  1. USB 디버깅이 켜져 있어야 해요. USB 디버깅은 개발자 옵션 안에 있고, 개발자 옵션은 빌드번호를 일곱 번 탭해야 나타나요. USB 디버깅 켜는 법을 참고하세요.
  2. 기기가 컴퓨터를 승인해야 해요. 컴퓨터마다 고유한 RSA 키가 있어요. 처음 연결하면 폰에 그 키의 지문과 함께 "USB 디버깅을 허용하시겠습니까?" 창이 떠요. 허용을 누르기 전까지 기기는 unauthorized로 표시되고 아무것도 동작하지 않아요.

이 승인은 개발자 옵션의 USB 디버깅 권한 승인 취소로 언제든 되돌릴 수 있어요.

USB 또는 와이파이

ADB는 두 가지 연결을 지원해요.

  • USB 케이블: 기본 방식이에요. 빠르고 안정적이며 설정이 가장 쉬워요.
  • 네트워크: 폰을 5555 포트로 전환할 때 케이블이 한 번 필요한 기존 방식 adb tcpip, 또는 안드로이드 11 이상에서 코드로 페어링하고 케이블이 전혀 필요 없는 무선 디버깅이 있어요. 차이는 adb tcpip vs 무선 디버깅에서 설명해요.

대부분의 TV는 USB로 컴퓨터에 연결할 수 없어서 네트워크 ADB가 유일한 방법이에요. ADB로 안드로이드 TV 제어하기를 보세요.

ADB와 fastboot의 차이

둘 다 Android SDK platform-tools라는 같은 패키지에 들어 있어서 자주 헷갈려요.

ADBFastboot
동작하는 때안드로이드(또는 리커버리)가 실행 중일 때안드로이드가 시작되기 전, 부트로더/fastboot 모드일 때
용도앱, 로그, 파일, 셸, 화면파티션 플래싱, 부트로더 언락
기기 쪽adbd부트로더

adb reboot bootloader가 보통 둘을 잇는 다리예요. 실행 중인 폰을 fastboot 모드로 보내요. 그다음 할 수 있는 일은 fastboot 모드 가이드에 있어요. 삼성 갤럭시는 fastboot 대신 다운로드 모드를 써요.

ADB를 쓰는 방법

흔히 쓰는 방법은 두 가지예요.

  • Android SDK platform-tools: Google이 윈도우, 맥, 리눅스용으로 무료 배포해요. 압축을 풀고 폴더를 PATH에 추가한 뒤 터미널에서 adb를 쓰면 돼요.
  • 브라우저에서: Chrome과 Edge는 WebUSB로 USB 기기와 통신할 수 있어서 웹페이지가 ADB 프로토콜을 직접 쓸 수 있어요. ADBKit이 이렇게 동작하고, USB 연결에는 아무것도 설치할 필요가 없어요. 기술적인 내용은 WebADB와 WebUSB란에 있어요.

ADB는 안전할까?

ADB는 디버깅 도구라서 승인된 컴퓨터에 깊은 권한을 줘요. 앱을 설치하고, 앱 로그를 읽고, 공유 저장소의 파일을 복사할 수 있어요. 내 컴퓨터이고 무엇을 실행하는지 알고 있다면 안전해요. 몇 가지 습관만 지키면 돼요.

  • 믿을 수 있는 컴퓨터에만 허용을 누르세요.
  • 필요 없을 때는 USB 디버깅을 끄세요. 매일 들고 다니는 폰이라면 더욱 그래요.
  • 공용 와이파이나 공유 와이파이에서는 네트워크 ADB를 켜 두지 마세요.

다음 단계