텔레그램 봇 쉽게 만들기. 텔레그램 봇으로 할 수 있는 일들.
요 근래까지 진행하던 프로젝트가 거의 끝이 났습니다.
이에 따라 아우스빌더와 다음 프로젝트는 무엇을 하고 싶은지? 어떤 걸 만들어보고 싶은지
함께 상의를 하였고, 텔레그램 봇이라는 것을 이용해서, 현재 진행하고 있는 프로젝트와 연결하는 건
어떤가 하는 프로젝트를 구상했습니다.
그럼 이러한 텔레그램 봇이란 어떤 것인지 알아봅시다.
목차
- 텔레그램 봇이라는 것은 어떤 것일까?
- 텔레그램은 봇은 어떻게 작동할까?
- 어떤 언어 프로그램을 사용해야 할까?
- 마치며
텔레그램 봇이라는 것은 어떤 것일까?
이는 텔레그램에서 지원하고 있는 로봇으로 사용자가 직접 자유롭게 필요에 따른 기능을 추가하여
사용하는 것이 가능합니다.
이러한 봇으로 할 수 있는 일들은 사실 무궁무진합니다.
개발자가 혹은 사용자가 어떻게 코딩을 하느냐에 따라 말이죠.
예를 들면 알림을 보낸다던지, 유저가 쉽게 정보를 찾을 수 있게 도와줄 수 있으며,
유튜브 비디오를 쉽게 공유하게 만들 수 있으며, 게임도 만들 수 있습니다.
데이터베이스와 연결해 언제든지 정보를 주고받고 업데이트 삭제도 할 수 있죠.
봇은 일반 채팅창처럼 유저는 봇과 상호작용 할 수 있으며, 이에 따라 유동적인 상호작용이 가능합니다.
봇을 어떻게 만드는지는 여러 동영상들이 존재하고 글을 읽는 것보다
영상을 참고하시는 편이 나으실 것이라 판단하여 봇 생성 방법은 따로 알려드리지 않겠습니다.
텔레그램 봇은 어떻게 동작할까?
Botfather를 이용해서 봇을 생성하셨다면,
API Key라는 것을 받게 되는데 이는 잘 간직하셔야 합니다.
아무에게도 보여주지 마세요 :)
처음 채팅창에 무엇을 입력하더라도 아무런 응답을 받지 못할 것입니다.
하지만 브라우저에 api.telegram.org/bot 다음에 이어서 API key를 입력한 뒤 마지막에
/getUpdates를 입력하시면 JSON으로 데이터가 표시될 텐데, 사용자가 입력한 모든 값이
이곳에 JSON의 형태로 나타납니다.
확인하고 싶으시다면, 텔레그램 봇에 어떠한 값을 입력하신 뒤, 브라우저를 업데이트하시면
입력하신 값이 text라는 값의 형태로 나타날 것입니다.
이렇게 말씀드리면 어떻게 입력하셔야 하는지 난감하실 수 있어 예시를 보여드리겠습니다.
api.telegram.org/bot192312:ACOWKDJwjcoasldkw_dwcl/getUpdates
이렇게 붉은 부분에 API Key를 입력하시면 됩니다.
봇은 기본적으로 사용자의 입력을 텔레그램이 받으며 그 뒤 봇에게 전달합니다.
그 뒤 봇은 이에 알맞은 작업을 수행 한 뒤 다시 텔레그램에게 전달하고 마지막으로
텔레그램은 사용자에게 전달합니다.
전혀 어렵지 않습니다. 또한 Webhook이라는 것을 자주 이용하게 됩니다.
Webhook 이는 실제 라이브 서버에만 이용 가능합니다! 로컬은 사용할 수 없습니다.
웹 훅 지정 또한 전혀 어렵지 않습니다.
api.telegram.org/bot192312:ACOWKDJwjcoasldkw_dwcl/setWebhook_url=자신의 url
이렇게 쉽게 브라우저에 입력하시면 지정 가능합니다.
당연히 붉은 부분은 자신의 API Key를 "자신의 url" 부분은 자신이 사용하는 라이브 서버의
도메인 주소를 입력하시면 됩니다.
이 웹 훅을 지정하시고 그 경로에 알맞은 코드를 작성한 파일이 있다면, 사용자의 입력이
이곳을 통해 실제로 봇을 컨트롤할 수 있습니다.
어려우신가요?
차근차근 다시 짧게 요약해드리겠습니다.
- Botfather를 통해 봇을 생성한다.
- 봇이 생성되면 API Key를 지급받는다.
- 브라우저에 api.telegram.org/bot192312:ACOWKDJwjcoasldkw_dwcl/getUpdates
이와 같이 입력한다.(당연히 붉은 부분은 사용자의 API KEy입니다.) - 사용자가 입력한 값이 JSON의 형태로 나타난다.
- 봇을 자유자재로 컨트롤하려면 Webhook이라는 것을 지정해줘야 한다.
- api.telegram.org/bot192312:ACOWKDJwjcoasldkw_dwcl/setWebhook_url=자신의 url
이렇게 붉은 부분은 아까와 동일하게 자신의 API Key를 "자신의 url"이라고 되어있는 부분은
자신이 사용하는 라이브 서버의 도메인을 입력한다.
(서버는 실제 운용되는 주소여야 한다. 로컬은 되지 않는다.) - 자신의 서버 주소에 봇을 컨트롤하는 코드를 가진 파일이 존재해야 하며,
그 뒤부터는 자유롭게 봇을 사용 가능하다.
이렇게 짧게 설명드릴 수 있을 것 같습니다.
3. 어떤 언어 프로그램을 사용해야 할까?
일단 저는 PHP를 이용하였습니다.
그 이유는 제가 회사로부터 제공받은 서버이기에 자유롭게 업데이트하고 변경하기 불가능합니다.
그로 인해 현재 가장 적합한 언어는 PHP였습니다.
(예전에 서버 생각 안 하고 Express로 실컷 다 만들고, 서버에 Node.js를 설치할 수 있는 권한이 없어,
끝내 모든 코드를 PHP로 다시 만든 적이 있었습니다.)
하지만 가장 자주 사용되는 언어는 당연히 파이썬이지 않을까 싶습니다.
예전에 파이썬을 한번 언급했듯이, 파이썬은 정말 많은 분야에서 이용 가능하고,
비교적 다른 언어에 비해 배우기 쉽다는 장점이 있습니다.
텔레그램 봇을 만들어 보고 싶으시다면 파이썬으로 작성하시는 것을 추천드립니다.
유튜브나 구글에 영상, 자료도 많고 튜토리얼도 많기 때문에 따라 하기도 쉽습니다.
PHP 언어에 관해서는 제가 또 따로 간략한 게시글을 작성하려고 합니다.
4. 마치며
오늘인 이렇게 짧게나마 텔레그램 봇에 관해 알아보았습니다.
아무래도 글로만 설명하려니 부족하거나 이해하기 힘든 부분도 많네요.
언제든지 궁금하신 점이 있다면 댓글에 남겨주세요!!
가능한 한 확인하는 대로 빠르게 답을 드리도록 노력하겠습니다.
텔레그램 봇으로 할 수 있는 일들은 정말 무궁무진합니다.
일반적인 대화 형태부터, 버튼을 만들어 좀 더 쉽고 좋은 UX를 제공 가능합니다.
또한 생성하고 코드를 작성하는 것도 비교적 다른 프로젝트에 비하면 훨씬 더
쉬울 것입니다.
백엔드만 건드리면 되기에 백엔드를 공부하시는 분들께도 좋지 않을까 싶습니다.
또한 이러한 봇을 만든 뒤 친구들과 나누어 자신들 만의 무언가를 만들고 나눌 수도
있을 것입니다.
좀 더 자세한 정보는 당연히 텔레그램 공식 홈페이지를 이용하실 수 있습니다.
혹은 유튜브도 좋습니다.
이번 기회에 파이썬도 배우고 친구들과 같이 사용 가능 한 봇도 생성해보시는 것은
어떤가요??
항상 시작이 가장 힘듭니다. 그 시작을 생각으로 만드느냐, 행동으로 만드느냐는
여러분의 결정일 것입니다.
항상 건강하시고 도전하시기 바랍니다.
완벽한 준비란 없다, 완벽한 준비란 영원히 시작하지 않는 것과 같다.
Es gibt keine perfekte Vorbereitung.
Perfekte Vorbereitung ist das Gleiche, wie nie anzufangen
'[Developer] 초보 개발자' 카테고리의 다른 글
자바스크립트 동기? 비동기? 초보 개발자 공부 (5) | 2021.08.23 |
---|---|
인터페이스란? 추상클래스란? 초보개발자 (0) | 2021.04.17 |
타입스크립트란? Typescript란? 타입스크립트 배우기. (16) | 2021.02.28 |
프로그래밍 실력을 한층 높여 줄 개발 3대 원칙! KISS 란? DRY란? YAGNI 란? (13) | 2021.02.21 |
초보 개발자 쿠키와 세션의 차이 (14) | 2021.01.30 |