見出し画像

サーバーサイドで3ヶ月間お世話になりました〜インターンシップレポート

こんにちは。REALITYのサーバーサイドでインターンシップをしている名無しと申します。2023年の10月から12月までインターンシップでお世話になったので、今回はインターンシップレポートを書こうと思います。

REALITYに興味をもった・インターンシップに参加したきっかけ


なりたい自分で、生きていく。

このVisionに共感した。これにつきます。
私は小さい時から障害を抱えていて、音声でのコミュニケーションが取りづらいなと感じる場面が多々ありました。そんな中、私は高校生の時に、障害をもった人がVR技術を使ってリハビリを行っているニュースをみたのがきっかけで、自身の障害を克服するためにエンジニアになりたいと思うようになりました。大学に進学してからはプログラミングを勉強して症状を検知する技術を研究しつつ、この技術をどうやって活かすのかを考えていました。
新型コロナウイルス感染症が流行しコミュニケーションがビデオ会議などが主流になりつつある中で、VR技術やライブ配信のアプリにも出会いました。

......そう、REALITYにも。

REALITYはアバターを使って様々な人が、楽しそうに配信しているのが印象的でした。

これだ!

そう思い、将来はライブ配信アプリやVR空間を作っている会社でエンジニアをやるんだ!と思いながら、研究を進めつつ、気づいたら大学院に進学......
なんとなく東京のWEBサービスを作っている会社に行こうかなと思っていた自分。グリーという会社の説明会を聞いて、

グリーってREALITY作ってるんだ!

と思った私は、グリーの人事との面談・エンジニアとの面接を通じて、REALITYのインターンシップに参加する機会をいただきました。
というのが、REALITYでインターンシップに参加することになったきっかけです。

インターンシップでやったこと

主にインターンシップでは、サーバーサイドと社内ツールの両方のタスクに取り組みました。サーバーサイドエンジニアとしてのインターンシップでしたが、実際にはREALITYの運用をサポートするための社内ツールの開発にも携わることができました。
また、サーバーサイドで使われているGo言語にとどまらず、TypeScript言語やGCP・AWSのインフラの知識など、幅広い知識を生かして取り組むことができました。

サーバーサイド

サーバーサイドでは、REALITYアプリの裏側で動作しているキャッシュサーバーをAkamaiからRedisに移行したり、CDNで使われているドメインの変更を行いました。
直接目に見える変化(UIが変わったなど)ではありませんが、REALITYアプリがこれからもたくさんの人に使われるためには必要な修正だと思います。

社内ツール

社内ツールでは過去に行われたイベントのフィルタリング機能を追加したり、配信に合わせたコメントのリプレイ機能の実装を行いました。3ヶ月間の中で特に取り組んだのは、コメントのリプレイ機能なので、さらに詳しく説明していこうと思います。

コメントリプレイ機能とは

コメントリプレイ機能とは、社内のツールから確認できる配信詳細のページに、配信中のコメントを表示するというものです。

REALITYには運用をサポートするための社内ツールがあります


REALITYではアプリを開発する人、アプリ内のイベントやアバター衣装の企画を考え、実施する人、アプリで受けた通報に対処する人など、役割が分かれています。
今回はアプリ内の通報を受けてその対処を行う人が、配信内容とコメントをすぐに確認できるように機能の実装を行いました。

REALITYでは通報を受けると、通報された内容を元に、配信やコメントの確認を行います

何をやったのか

主にやったのは以下の内容です

  • 取得するログの構造の変更

  • 配信詳細の画面の右側にコメント表示欄を作る

  • 特定の時間帯のコメントを表示するように、適度にデータを取得しつつ、表示を変えていく

機能の実装に関しては、コメントのリプレイ機能を作って欲しいという要望と、UIのイメージ以外に指定されたものはなく、追加で必要だと感じた機能の提案や、コメントを取得するロジックに関しては要望を出してくださった方や同じサーバーチームの方と相談しながら、機能の実現に向けて話を進めてきました。

実際に作った画面。配信アーカイブを聴きながら、その時点で流れているコメントを確認できるようになりました

気をつけていたこと

3ヶ月のインターンシップで気をつけていたことです

何を考えているのか共有すること

可能な限り今考えていることをメッセージで残していました

Slackのスクショ。発言にもリアクションしてくれるところが好きです

REALITYではリモートワークをされている方もいるので、Slackでは今何をやっているのか、何を完了して次どれに取り掛かるのかなど、逐一メッセージを残し、進捗が把握できるようにしていました。

感想

ここまでの3ヶ月のインターンシップで学んだことは以下の通りです

  • ライブ配信アプリのプラットフォーム開発に携わることができた

    • ライブ配信アプリの裏で動いているソースコードやインフラ構成を直に拝見することができました。

    • サーバーサイドエンジニアのインターンシップでありながら社内ツールの開発にも携わることができたのは、REALITYの裏側を知るという意味でも非常に重要なことだと感じました。

    • 単に開発を行うだけではなく、REALITYの現状や今後どうしていきたいのかなど、ミーティングを通じて、その内側にある思いを直接聞けたというのは大きかったです。

  • Monorepoを活用した開発の体験を得られた

    • インターンシップ期間中にREALITYのソースコードはmonorepo構成になりました。monorepoでの開発体験は、monorepoを導入するまでに行っていたリポジトリの同期の複雑さを減らすことになり、検証環境へのデプロイも楽になったと感じました。

    • また、monorepo以外にGo言語を使用したAPIサーバーのアーキテクチャについても学ぶものがあり、今後の個人開発やチーム開発のプロジェクトでも採用していきたいと感じました。

3ヶ月間ありがとうございました!