본문 바로가기
텔레그램 한글 가이드
채널·봇 STEP 91 / 98

TDLib 이란 — 텔레그램이 만든 클라이언트 라이브러리

텔레그램이 만들어 공개한 클라이언트 라이브러리 TDLib 을 정리했습니다. 통신·암호화·저장·업데이트를 대신 하는 범위, JSON 방식으로 보내고 받기와 @extra, 로그인 상태 단계, 데이터 폴더를 지켜야 하는 이유, TDLib 과 봇 API 를 고르는 기준을 안내합니다.

  • 난이도L4
  • 읽는 시간5분
  • 최종 검증

결론부터

  1. 1TDLib 은 통신·암호화·저장·업데이트를 맡는 공식 클라이언트 라이브러리.
  2. 2JSON 으로 보내고 받기 — @extra 로 요청과 답을 맞춘다.
  3. 3로그인은 상태대로 값만 넣고, 데이터 폴더는 계정처럼 지킨다.
이 글의 목차
  1. TDLib 은 '텔레그램 앱의 속'
  2. 쓰는 방식 — 보내고 받기
  3. 로그인은 상태로 진행된다
  4. 이럴 때 TDLib
  5. 자주 묻는 질문
  6. 한눈에 정리

TDLib 은 '텔레그램 앱의 속'

TDLib(Telegram Database Library)은 텔레그램이 직접 만들어 공개한 클라이언트 라이브러리입니다. 텔레그램 앱이 화면 뒤에서 하는 일 — 서버와의 통신, 암호화, 기기 안 저장, 업데이트 순서 맞추기 — 을 통째로 맡아 줍니다. 내 앱은 화면과 기능만 만들면 됩니다. 오픈 소스이고, 윈도우·맥·리눅스·안드로이드·iOS·웹어셈블리 등에서 돌아갑니다.

TDLib 이 대신 하는 일직접 MTProto 를 다루면
암호화·인증 키·데이터 센터 연결직접 구현(MTProto 한눈에)
업데이트 순번·빈칸 메우기직접 구현(업데이트 처리)
피어·파일 참조·대화 목록 저장직접 저장소 설계(피어·파일 참조)
레이어 맞추기새 레이어마다 직접 따라가기

쓰는 방식 — 보내고 받기

TDLib 은 모든 일이 비동기입니다. 요청을 보내 두고, 답과 업데이트를 하나의 통로로 받아 처리합니다.

  • JSON 방식: 요청을 JSON 문자열로 보내고(send) 결과·업데이트를 JSON 으로 받습니다(receive). C 함수를 부를 수 있는 언어라면 어디서든 씁니다. 요청에 @extra 값을 붙여 두면 어느 요청의 답인지 맞출 수 있습니다.
  • 언어별 연결: 자바·C# 연결은 공식으로 함께 있고, 다른 언어는 공식 예제 모음에서 고릅니다.
  • 업데이트를 기억해 쓴다: 사용자·대화 정보는 업데이트로 계속 들어옵니다. 앱은 받은 순서대로 반영해 자기 쪽 목록을 유지합니다.

로그인은 상태로 진행된다

TDLib 은 지금 무엇이 필요한지를 '로그인 상태' 업데이트로 알려 줍니다. 상태에 맞는 값을 넣으면 다음 상태로 넘어갑니다.

  1. 설정 기다림 → setTdlibParameters: api_id·api_hash(발급), 데이터 저장 폴더, 시험 서버 사용 여부 등
  2. 전화번호 기다림 → 번호 넣기
  3. 코드 기다림 → 받은 코드 넣기(새 번호면 가입 정보)
  4. 비밀번호 기다림 → 2단계 인증 비밀번호(SRP 계산은 TDLib 이 한다)
  5. 준비 끝 → 이제 대화 목록·메시지 요청

직접 구현할 때의 메서드 순서는 로그인 흐름과 같고, TDLib 은 이를 상태 하나하나로 감싼 것입니다.

이럴 때 TDLib

상황권하는 길
나만의 텔레그램 앱·데스크톱 도구TDLib
내 계정의 대화 백업·정리 도구TDLib(약관 범위 안 — 이용 약관)
알림·응대·그룹 관리TDLib 말고 봇 API(API 4가지)

설치·빌드는 TDLib 빌드와 첫 연결에서 이어집니다.

자주 묻는 질문

TDLib 은 무엇인가요?

텔레그램이 만들어 공개한 오픈 소스 클라이언트 라이브러리입니다. 통신·암호화·기기 안 저장·업데이트 정리를 대신 해 텔레그램 앱을 만들 때 씁니다.

TDLib 은 어떤 언어에서 쓰나요?

C 함수를 부를 수 있는 언어라면 JSON 방식으로 쓸 수 있고, 자바·C# 연결은 공식으로 함께 있습니다.

TDLib 에도 api_id 가 필요한가요?

네. setTdlibParameters 에 my.telegram.org 에서 받은 api_id·api_hash 를 넣습니다.

봇을 만들 때도 TDLib 을 쓰나요?

알림·응대·그룹 관리 봇이라면 더 간단한 봇 API 가 맞습니다.

참고한 공식 문서

요약

한눈에 정리

  1. 1맡는 일

    통신 · 암호화 · 저장.

  2. 2쓰는 법

    send · receive · @extra.

  3. 3로그인

    상태별로 값 넣기.

이 글 공유하기

같은 문제를 겪는 친구에게 보내 주세요.

텔레그램
더보기

휴대폰으로 열기휴대폰 카메라로 비추면 이 글이 열려요.

최종 수정 2026-10-06

함께 보면 좋은 글

전체 보기 ›