## 概要
航空機が上空で渋滞を起こさないようにするための航空管制システムです。新しいルート、出発時間、到着時間を航空機に提示し、航空機の情報やルートを一分ごとに更新します。
## プロジェクトでの自分の担当
バックエンド及びフロントエンドを担当していてバックエンドがメインでした。
## 使用技術
Java, springboot, JavaScript, Oracle Database
## 苦労した点
新規開発だったので、まずモックアップの作成から着手しました。その担当が自分一人で、1からサーバーと画面間の非同期によるメッセージのやり取りまで実現しなければなりませんでした。そのため技術やフレームワークの選定が難しかったです。WebSocket, AJAX, SSEなどの選択肢があり、またそれぞれの知識も身につける必要がありました。
## 苦労した点の解決
プロジェクトの要件に合った技術やフレームワークを選定するために、事前のリサーチを徹底しました。また、実績のある技術やコミュニティサポートが充実している技術を選ぶことで、問題発生時の対処が容易になりました。
## 詰まった課題
メッセージブローカーとしてActiveMQを採用した際に直面しました。ActiveMQでは、ワイルドカードが直接的にサポートされていないため、一度に複数のトピックにメッセージを送信することできませんでした。
## 課題に対しての取組み
代替メッセージブローカーの検討もしましたが、アプリケーション側で、ワイルドカードに相当する機能を模倣するカスタムロジックを実装することで対応しました。具体的には複数のトピックをリストで管理しました。メッセージを送信する際には、そのトピックリストを参照して、メッセージを送信するロジックを実装し対応しました。