Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LINEのおうむ返しbot作ってみた

 LINEのおうむ返しbot作ってみた

Yuto Takamune

December 11, 2021
Tweet

More Decks by Yuto Takamune

Other Decks in Programming

Transcript

  1. - 人間です - 会津大学学部一年 - 中三からプログラミング始めて高一からいろいろおしごとしてます - LINE Developer Communityとかでコミュニティ活動してます

    - 学生エンジニアコミュニティ「すごくなりたいがくせいぐるーぷ( SGG)」運営 - 会津大学プロダクト開発コミュニティ「 ASCs」代表 - FEもBEもインフラ(クラウドからオンプレまで)もだいたい全部やるけど、主に BE をやってます(器用貧乏) - 最近はずっとGo書いてるけどそろそろRustやりたい - 興味分野は認証/アイデンティティ管理 - 好きな仕様書はDecentralized Identifiers (DIDs) v1.0(W3C) - 最近の悩み: オフラインのインターンに行きたい(夏に行った Yahooはオンライン だった)  自己紹介 LINEのおうむ返し botを作ってみた https://shinbunbun.info @shinbunbun_
  2. - 自宅にVPNサーバ立てた話 - 寮のNATを頑張って越えた話 - Gentoo Linuxとたわむれた話 - W3Cの仕様書を読みながら、 Web

    Authentication APIの認証サーバをフルスクラッチ実装した話 最近キモいLTしすぎでは問題 LINEのおうむ返し botを作ってみた
  3. - 言語: C言語 - 大学の授業でせっかく C言語を勉強したので、 C言語で実装してみました! - socket.hを使ってソケット通信を実装 -

    LINEのWebhookサーバはhttps対応する必要があるので、 OpenSSLのライブラリを使って SSL/TLSの コネクションも実装 - サーバ証明書はLet's Encrypt - サーバはAWSのLightsailを使用 - CodepipelineでCDを組もうと思ったけど、そこまでのシステムじゃなかったので VSCodeの Remote Developmentを使ってSSHで開発した 技術構成 LINEのおうむ返し botを作ってみた
  4. - メモリまわりで無限にバグる - 変数の初期化方法が悪かったせいで、前のリクエストのデータが変数内に残ったままになっているというバグが発生 した
 - mallocを使って動的メモリ確保をし、最後に明示的にfreeで解放するという処理を書いたが、mallocは定数倍遅 いらしいのでそのうち高速化したい
 - サンプルが少ない

    - 単純にsocket通信を実装しているサンプルはたくさんあるが、TLS実装しているサンプルがかなり少なくて大変だった
 - 数少ないサンプルやOpenSSLの公式ドキュメント、ライブラリのソースコードをよみながらなんとか実装した
 - 徹夜だめ - 別のLTのネタにしようと思って1晩で徹夜して作ったので、バグや汚い実装がかなり多い 
 - ある程度バグフィックスやリファクタリングはしたが、まだ結構やばいコードが残ってるのでどうにかしたい 苦労した点 LINEのおうむ返し botを作ってみた
  5. - ASCs(Aizu Student Creators)は2021/09に発足した会津大学のプロダクト開発コミュニティ - みんなでチーム開発したりハッカソンにでたりすることで開発技術を向上させることが目的 - 1月か2月に部内(or 学内)ハッカソンを開催する予定 -

    協賛(協賛賞、懇親会スポンサーなど)募集中なので、協力してくださる企業様がいらっしゃいましたら是 非ご連絡ください! ASCsについて LINEのおうむ返し botを作ってみた