セキュリティ対策室のrhykwと、EC事業部プロダクトチームのyukyan、どすこいです。3月11日に弊社の福岡オフィスで開催された Fukuoka.go #21 に登壇しました。
今回はなんと10周年記念の開催とのことです。おめでとうございます!そんなめでたい会に、福岡の胡麻サバに思いを馳せつつ登壇しました。本記事では当日の様子をレポートします。
どすこい
登壇: Go Modulesの仕組み Bundler(Ruby)との比較を添えて
Go Modulesによる依存モジュールのバージョンを決定する仕組みと、これとRubyのBundlerとの比較を紹介しました。 本発表では、GoのMVS(Minimal Version Selection)の簡単な解説をしたのちに、Bundlerとの比較を添えて理解を深めることを目的としました。 Go Conference 2024のNobishiiさんによる試してわかるGo ModulesとMinimal Version Selectionも勉強になったので、詳しく知りたい方はこちらも参考にしてください。 この発表の事前準備と発表の補足を通して、Go ModulesについてもBundlerについても一層深く知りたいなと思ったので、また機会を作って発表します!
印象に残ったセッション
udzuraさんの「Goとエーアイでサービスのプロトタイプを作った話」が印象に残りました。ペパボでも社内ハッカソン(2023年の記事、成果物の記事)があるため、参考になるところがあるかなぁと考えながら聴きました。 GoでGeminiを使う際の公式SDKが充実していることとそのコードや実装の例を解説していただいたことで、Geminiを使った開発の経験がなかった自分でも、同じようにGoで開発したいと思いました。 特に、紹介していただいたような動画をアップロードするアプリケーションに関しては、記憶長が長いGeminiが他のLLMと比較して有利だと思ったので、実際に手を動かして試してみます!
感想
Chorome拡張から機械学習、セキュリティまで、Goに関連する多様なトピックが発表されており、幅広く学べました。初めてのGoのコミュニティで緊張していましたが、特に発表後はワイワイと技術的な最近の話をできて、とても楽しかったです。 また、OSSをたくさん作っている方や、気になる技術をどんどん深ぼっている方が多く、自分もそのようになりたいと刺激を受けました。 次回はもっと深い技術の話や、自分の作ったものの話をしたいです!
yukyan
登壇: Goで作るChrome Extensions
GoでChrome Extensionsのロジックを書く方法を紹介する発表をしました。WebAssemblyとNative Messagingの2つの方法と、実際に使ってみた実例を紹介しています。
Native Messagingは、Chrome Extensionsがネイティブアプリケーションとメッセージを交換できる機能のことです。お互いに、標準入力ストリームと標準出力ストリームを使ってメッセージをやり取りできます。今回はGoでChrome Extensionsのロジックを書く一例として紹介しましたが、書いていて他にもいろいろ応用できそうだなと感じました。
もし「どうやってChrome拡張機能からGoのロジックを呼び出すの?」と気になったら、発表資料を読んでみてください。
印象に残ったセッション
Kizukuさんの「WebTransportのパッケージを作った話」が印象に残りました。 WebTransportというプロトコル自体を今回初めて知ったので、HTTPの歴史も含め興味深く聞かせていただききました。
WebTransportは、TCPベースのWebSocketと比較して、データ送信の信頼性の選択が可能になり、より柔軟にパケット通信が行えるようになるそうです。自分はあまり馴染みのない技術なのですが、高画質な配信や、VRライブ配信などで役に立ちそうだなと感じました。また、開発中のライブラリがないなら自分で作ってしまえという心構えの話は、私も大事にしたいなと思いました。
Go x WebTransportのパッケージの公開を楽しみにしています!
感想
初めてのFukuoka.goだったのではじめは緊張していました。しかし会場の雰囲気が和やかで、おつまみやお酒をお供にしながらのイベントだったので、登壇時には場も自分もあったまり、楽しく発表をすることができました。また、福岡のGoエンジニアの方との交流もできてよかったです。学生の方から、ベテランの方まで同じテーブルを囲んでGoやプログラミングの話ができたのはすごくよい経験でした。
次回も機会が合えばぜひ参加させていただきたいですし、そのほかのGoのイベントにも積極的に登壇していこうと刺激を受けました!
rhykw
登壇: セキュリティっぽい話
発表では、このところ問題になっているオープンソースソフトウェア(OSS)へのマルウェア混入について取り上げ、その実態と対策についてお話しました。
具体的には、実際にマルウェアが混入されたOSSの事例を紹介し、問題のあるコードがどのような特徴を持つのかを解説しました。また、マルウェアを検出するためのツールとしてgosecの利用を検討したことを紹介したり、AST(抽象構文木)を使ったコード解析の可能性についても触れました。
今回の発表を通して、OSSを利用する上でセキュリティを意識することの重要性を改めて感じました。
印象に残ったセッション
mrtc0くんの「Go で in-app WAF を作る話」が印象に残りました。 ウェブアプリケーション自体にWAF(Web Application Firewall)機能を持たせるWaffleの紹介があり、"in-app WAF (Web Application Firewall)"や"RASP (Runtime Application Self Protection)"の利点が私にも理解できるセッションでした。 特に従来のWAFと異なり、コンテキスト認識による正確な検出が行えることで誤検知問題を解消していることなど興味深い内容が多かったです。
なお、Waffleでは主要なライブラリをラップすることでWAF機能を実装しています。 ロギングなど同じようにライブラリをラップしたいケースとの組み合わせがどうなるのか、といった質問が会場から出るなど、他の参加者にとっても関心の高いセッションだったのではないかと思います。
おわりに
今回は、ペパボのエンジニア4人が Fukuoka.go #21 で登壇し、Goに関する発表を行いました。東京からの参加メンバーも含め、福岡のGoコミュニティの皆さんと交流できる貴重な機会となりました。また、発表者以外にもペパボのエンジニアが参加しており、Goを通じたつながりの広がりを実感しました。こうしたコミュニティイベントを通じて、これからも技術的な学びや交流を深めていければと思います。
今回のイベントを主催してくださった方々、そして会場内でコミュニケーションを取ってくださった方々、ありがとうございました。今後もペパボはGoやっていき、のっていきです!