본문 바로가기

개발 이야기

라이브러리 완성도에 따라 어떤 언어로 만드는지 정하는게 더 빠르네요.

728x90

텔레그램 봇 api 같은 제한된 기능의 api 가 아니라. 텔레그램 모든 기능을 쓰는 api 를 사용하려고 한참을 찾았습니다.

 

mtproto 로검색하니까 많은 언어로 된 mtproto 라이브러리들이 나오더군요. 

처음엔 만만한 nodejs 로 도전했습니다.

 

https://www.npmjs.com/package/@mtproto/core

 

처음엔 이걸로 개발했는데. 이상하게 가끔 메세지를 못받는 버그가 발생합니다.보름 정도 테스트 했는데. 

간혈적으로 메세지를 못받아 오더라고요. 무슨 에러가 난것도 아닙니다. 그냥 간혈적으로 메세지를 못받는 버그가 발생 하더라고요. 

 

디버깅 해서 잡으려고 별짓을 다 했는데. 이게 어쩌다가 한번 그러는 거라. 재현도 안되더라고요. 로직 다 빼고 기본 샘플만 돌려도 1주일에 한두번은 메세지 못받는 현상이 발생 했습니다.

 

https://github.com/xelaj/mtproto

 

두번째는 golang 으로 만들려고 위 라이브러리를 가져다 썼습니다. 

이건 인증부터 막히더군요. 

이틀 날렸습니다. 삽질 하다보니 어찌어찌 인증 문자 왔었는데. 두번째 시도할때 또다시 인증 안되는 오류가 나더군요. 

https://github.com/xelaj/mtproto/issues/65

개발자도 원인을 몰르는 듯해서 잡아보려고 했는데. 결국 포기 했습니다. 

 

 

세번째는 파이썬 으로 개발했습니다.

 

https://github.com/LonamiWebs/Telethon

 

해당 라이브러리의 별이 5천개가 넘어서 파이썬으로 시도 했습니다. 오늘 하루밖에 안지났지만 무난하게 돌아 가고 있습니다. 이제 보름 정도 지켜보면 될듯 합니다.

 

저 위 세개 라이브러리 의 기능은 다 동일 합니다. 텔레그램 의 복잡한 api 를 좀 더 편하게 사용하도록 만들어 주는건데. 라이브러리 완성도에 따라 그냥 언어를 바꿔서 개발 하는게 더 맘편하네요. 

 

다음엔 개발 언어를 먼저 고르지 말고 라이브 러리 완성도를 테스트 한뒤 적절히 타협하면서 개발 하는게 나을꺼 같네요.

 

 

그럼, 

    공유합니다.

 

728x90