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

텔레그램 TL 스키마·레이어 읽는 법

텔레그램 API 스키마를 직접 읽는 법을 정리했습니다. TL 한 줄의 생성자 이름·번호·칸·형식, flags 로 표시하는 선택 칸과 true 형식, functions 구역과 Vector, 레이어 번호와 변경 기록 따라가기, TDLib 스키마와의 관계를 지어낸 예시로 안내합니다.

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

결론부터

  1. 1TL 한 줄 = 생성자 이름#번호 칸들 = 형식.
  2. 2flags:# 의 비트가 켜진 선택 칸만 차례로 읽는다.
  3. 3레이어마다 바뀐 점은 변경 기록에서 — 목록 번역 대신 읽는 법.
이 글의 목차
  1. 스키마는 API 의 '설계도 목록'
  2. 한 줄 읽기
  3. 선택 칸 — flags
  4. 목록의 두 구역과 Vector
  5. 레이어와 바뀐 점 따라가기
  6. 자주 묻는 질문
  7. 한눈에 정리

스키마는 API 의 '설계도 목록'

텔레그램 API 의 모든 자료 모양과 메서드는 TL(Type Language)이라는 짧은 표기로 한 줄씩 적혀 있습니다. 이 목록이 스키마입니다. 공식 스키마 쪽(core.telegram.org/schema)은 사람이 읽는 설명서가 아니라 이런 줄 수백 개의 목록이라, 읽는 법만 알면 메서드 목록을 따로 번역할 필요가 없습니다. 지금 공식 스키마의 판(레이어)은 225 입니다(이 글을 쓴 날 기준).

한 줄 읽기

아래는 설명을 위해 지어낸 줄입니다(실제 스키마에 없는 이름).

sampleNote#1a2b3c4d id:long text:string = Note;
부분뜻
sampleNote생성자 이름 — 소문자로 시작한다
#1a2b3c4d생성자 번호(32비트, 16진수) — 이진 데이터 맨 앞에 붙어 '이건 sampleNote 다'를 알린다
id:long text:string칸 이름과 칸의 형식
= Note이 생성자가 만드는 형식 — 대문자로 시작한다

한 형식에 생성자가 여럿일 수 있습니다. 예를 들어 '사진' 형식에 '사진 있음'과 '빈 사진' 생성자가 함께 있는 식이라, 받은 데이터는 생성자 번호를 보고 어느 쪽인지 가립니다.

선택 칸 — flags

sampleMessage#5e6f7a8b flags:# pinned:flags.0?true reply_to:flags.1?int text:string = Message;
  • flags:# — 어떤 선택 칸이 들어 있는지 비트로 알려 주는 숫자 칸.
  • reply_to:flags.1?int — flags 의 1번 비트가 켜져 있을 때만 이 칸이 있다.
  • pinned:flags.0?true — 형식이 true 인 칸은 값 없이 비트 자체가 '예/아니요'다.

읽을 때는 flags 를 먼저 보고, 켜진 비트의 칸만 차례로 읽습니다. 빠뜨리면 그 뒤 칸이 전부 밀려 해석이 깨집니다.

목록의 두 구역과 Vector

구역·표기뜻
---functions--- 위자료 모양(형식·생성자)
---functions--- 아래호출할 수 있는 메서드 — 줄 끝의 형식이 돌려받는 값
Vector<User>User 여러 개의 목록

레이어와 바뀐 점 따라가기

  • 스키마가 바뀔 때마다 레이어 번호가 하나씩 올라갑니다. 앱은 자기가 쓰는 레이어를 연결 때 밝힙니다(메서드 부르기).
  • 무엇이 바뀌었는지는 공식 '레이어 변경 기록'(core.telegram.org/api/layers)에서 봅니다. 기계가 읽는 JSON 판 스키마도 있어, 코드 생성기에 넣어 씁니다.
  • TDLib 은 자기 스키마(td_api.tl)가 따로 있습니다. 표기법은 같고, 이름과 구조는 TDLib 에 맞춰 더 쓰기 쉽게 정리돼 있습니다(TDLib 빌드).

자주 묻는 질문

텔레그램 스키마의 #숫자는 무엇인가요?

생성자 번호입니다. 이진 데이터 맨 앞에 붙어 어떤 생성자인지 알려 줍니다.

flags.1?int 는 무슨 뜻인가요?

flags 칸의 1번 비트가 켜져 있을 때만 그 int 칸이 있다는 뜻입니다.

---functions--- 는 무엇인가요?

그 위는 자료 모양, 그 아래는 호출할 수 있는 메서드입니다.

레이어는 어디서 확인하나요?

공식 스키마 쪽과 레이어 변경 기록에서 확인합니다. 이 글을 쓴 날 기준 225 입니다.

참고한 공식 문서

요약

한눈에 정리

  1. 1한 줄

    이름#번호 · 칸 · = 형식.

  2. 2flags

    켜진 비트의 칸만.

  3. 3레이어

    변경 기록 따라가기.

이 글 공유하기

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

텔레그램
더보기

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

최종 수정 2026-10-06

함께 보면 좋은 글

전체 보기 ›