電気通信大学 / 情報理工学域
音楽技術記事プラットフォーム
音楽理論や作曲したオリジナル曲、ギターの演奏動画を投稿したいと思い、音楽に関する技術記事を投稿できるプラットフォームを作りました。マークダウンで記事を投稿でき、タグやSpotifyAPIから検索した曲を選択して紹介する機能も作りました。また、WebSocket通信を用いてリアルタイムチャットのできるコミュニティ機能も作成しました。 プレビュー環境URL:https://muslog-git-preview-southvillages-projects.vercel.app/ GitHub URL:https://github.com/kankankanp/Muslog 使用技術: Frontend:Next.js(TypeScript) Backend:Go Database:PostgreSQL Infrastructure / IaC:AWS, Terraform CI / CD:GitHub Actions Communication:RESTful API, WebSocket インフラ〜フロントエンドまで一度自力で開発してみたいと思い、AWS構築をTerraformによるIaCで行いました。また、AWS ECSへの自動デプロイなどのCI / CDもGitHub Actionsを使用して実現しています。(運用コストが高く、現在は運用停止中です) フロントエンドはFigmaを使用してデザイン案を構想し、Next.jsでのUI実装まで行いました。初めはAWS環境でホスティングにCloudFrontを使用していたため、Next.jsの強みであるSSR(サーバーサイドレンダリング)を使用できないという制約の中開発を進めていましたが、結局Lambda@Edge、OpenNext等を使用しSSRできるようなインフラ環境に変更しました。デザインの再現にはCodexやClaude CodeなどのAIエージェントを多用し、効率的な実装に務めました。 バックエンドはGolangのEchoフレームワークを用いて、クリーンアーキテクチャを中心としたディレクトリ構造でのAPI開発を行いました。クリーンアーキテクチャを実際にアプリケーションコードに落とし込む技術を学ぶ非常に良い経験となりました。 今後の展望: 現状のインフラ環境では、WebSocket通信用サーバーとRESTfulAPI用サーバーが1つのECSコンテナで稼働している状態であり、あまりスケーラブルでない構成です。 今後、本番運用を開始してから、仮にある程度のPV数を得ることができたら、記事投稿、コミュニティに加えて、他サービスを追加するとなった場合に備えて、現状のモノリシックアーキテクチャから、マイクロサービスへと再編成してみたいです。