• エンジニアブログ

2024.07.23

JJUG CCC 2024 Springに参加しました

AC事業推進部の小山です。

6/16(日)東京都新宿区で開催された「JJUG CCC 2024 Spring」に参加してきました。 このイベントは、日本Javaユーザーグループ(JJUG)が、毎年春と秋に開催しているクロスコミュニティーカンファレンス(CCC)です。 Java関連の技術や事例に関するセッションが多数行われ、国内外のJava技術者が集まります。

様々なイベントがそうだったように、JJUG CCCもコロナ禍に伴いオンラインで開催されていた時期がありました。 そのような時は、田舎に住むエンジニアとしては、移動時間がかからなくて助かると思いながら、オンラインで視聴していました。 最後に現地で参加したのは、JJUG CCC 2018 Fall(2018/12/15開催)でしたので、今回は、5年半ぶりの現地参加となりました。

ということで、早朝に起床して始発に乗り東京まで出張してきました。 それでは印象に残ったセッションの内容を紹介していきます。

InvokeDynamic, Under the Hood

Java in the Boxで有名な櫻庭さんとYujiSoftwareさんが、まるで芸人さんかのように楽しいトークを交えながら、 JavaのバイトコードのinvokeDynamicについて説明していました。 invokeDynamicは、略してインディー(indy)と呼ぶそうで、セッションのBGMはインディ・ジョーンズの曲でした。

invokeDynamicは、Javaバイトコードの命令の1つで、後から追加された唯一の命令だそうです。 櫻庭さんからは、追加された経緯の説明があり、 YujiSoftwareさんからは、invokeDynamicの動作について説明がありました。

invokeDynamicは、実行時にメソッド呼び出しを動的に解決する働きがあり、 これはすなわち、コンパイル時にやるようなことを実行時に行えるので、 最適な処理を生成しやすいということになります。 セッション内では、文字列結合処理について、Java9からinvokeDynamicを使うようになり、 Java8より効率的な処理が行われる具体例を説明していました。

Webアプリケーションセキュリティの基礎とSpring Bootでの実装

Java界やSpring界で有名な多田さんのセッションです。 SQLインジェクション対策、XSS対策、CORS対策、CookieとHttpSession、セッションID固定化対策、CSRF対策 について、そのメカニズムやSpring Bootでの実装方法を解説していました。

各種攻撃手法を知り、フレームワークが備えている機能を正しく用いて、万全の対策をしたWebアプリケーションを実装しようと改めて思いました。 また、私がWebアプリケーションの開発を始めた頃とは異なり、必要なセキュリティ用基本機能がフレームワークに備わっているため、 苦労して自前でそれらを実装しなくても済むようになっています。 あまり古い時代と比較しても、差があって当然と思われるかもしれませんが、フレームワークの進化を感じました。

Javaエコシステムの最新動向

本番環境で使用されているJavaのバージョンや、JDKベンダー、ヒープサイズ、ロギングフレームワーク、データベース等 開発者が気になる最新のJavaエコシステムのレポートデータを New Relic株式会社の Shun Shoさんが紹介してくれました。

このセッションの中で私が最も注目したデータは、論理プロセッサ(コア)の数です。 最近の傾向としては、コア数4つ以下で稼働しているアプリケーションが最も多く、また増加傾向にあるということです。 その背景としては、クラウド環境では、コンテナをデプロイすることが多いといった説明がされていました。

そこで思い出したのがマイクロサービスという言葉です。 JJUG CCC 2018 Fallでは、マイクロサービスに関係するセッションが4つもありましたが、今回は1つもありません。 コンテナ技術の進歩により、マイクロサービスは、より使いやすくなり、そして普及し、 CCCのセッションで語るまでもないところまで来たのだと感じました。

2024年 AIを利用したJava開発の最新情報

ご存知の方も多いであろうマイクロソフトの寺田さんのセッションです。予想通り会場は満員となっていました。 セッション開始直前に、雑談的に挙手制のアンケートを実施し、その結果によって話す内容の味付けを調整するという 寺田さん方式は流石だなと感心しました。

セッション内では昨今のAIの目覚ましい進化を紹介していました。 1年前と比較し、コストは1/12、スピードは6倍になっているそうです。 また、Azure AI Studioについても実際の画面を見せつつ紹介していました。 Javaの話題はやや少なかったように思います。

日々進化するAIの最新情報を紹介してもらい、もしかすると、今はまだ副操縦士といった立場で私たちの仕事を手伝ってくれていますが、 そのうち機長とか師匠的な存在となり、仕事の指示をしてくれたり、出来の悪いアウトプットは上手に指導・訂正してくれたり... といった世界が来るのかもしれないと思いました。

全体まとめ

5年半ぶりに現地参加したJJUG CCCを一日楽しんできました。 スピーカーのみなさん、スタッフのみなさん 本当にありがとうございました。 セッション終了後は、恒例の交流会がありましたが、日帰り出張のため欠席して帰路につきました。 2007年に結成し、すぐにメンバーになったJJUGですが、 最近では、会員数は1万人を超える程になり、また、Java Community ProcessのExecutive Committee(EC)にも選出されました。 ECは、Javaの新仕様を承認する等、Java技術の将来に大きな影響を与える重要な役割を担っています。

少し大袈裟な言い方になりますが、 こんな私(=5年半ぶりにCCC参加)でも、Javaの仕様策定に関わっているJJUGのメンバーの一員という誇りを持って これからもJavaをやっていこうと思います。