はじめに
こんにちは、BBSakura Networks のシステム開発部モバイル開発グループの平山です。
普段は主にモバイルコアの開発、運用などを担当しております。
今回は新卒でありモバイルの知識が全くなかった私がどのようにモバイルコアの開発、運用業務に参加していったかについてご紹介させていただきたいと思います。
自己紹介
私は、2024年4月から社会人になった新卒です。6月までは親会社で研修を受けており、7月よりBBSakura Networksに入社しました。
大学時代は情報系を専攻していたものの、研究活動でC言語のコードを書いていて多少プログラミングができるだけで、ネットワークの知識やモバイルの知識は全くありませんでした。
モバイル開発グループに入ったきっかけ
私は入社後、各部署を回り、各部署の説明をいただく機会がありました。その中でモバイル開発グループの方の自己紹介の中で「好きなエディターはVim」という紹介があり、私は「Vim使えるのかっこいい!」「本物のエンジニアっぽい!」と思いました。そこからモバイル開発に興味を持ちました。そして元々ソフトウェア開発をしたいと思っていたのでモバイル開発グループを希望し配属されました。
勉強方法
モバイルコアの開発に必要な知識は多岐に渡り、正直何から勉強していいかわからない状態でした。そんな中先輩が紹介してくださったチュートリアルや本を用いて勉強を始めました。ここでは私がモバイル開発に参加するまでに、勉強に利用したものをご紹介したいと思います。
A Tour of Go に関しては学生時代C言語のコードを書いていたこともあり、構文がある程度似ていてさほど苦戦せずにチュートリアルを終えることができました。もちろんGo言語の全てを理解し習得しているとは思っていません。
Diameterプロトコルガイドと続・5G教科書は初めて聞く単語の連続で初めて読んだ時は全く理解できませんでした。読み始めても知らない単語が出てきて調べるの連続で読み進めるのに多くの時間を使ってしまいました。今も完全に理解しているとは言い難い状態です。
モバイルコア開発の苦労したところ
3GPP
3GPP(3rd Generation Partnership Project)とは、移動通信の標準化を目的とした国際的な組織です。1998年に設立され、携帯電話の技術規格を策定するために運営されています。特に以下の通信技術の標準化を主導しています。
モバイル通信技術の標準化
- 3G (第三世代移動通信)
- 4G LTE (Long Term Evolution)
- 5G (第五世代移動通信)
- 今後の通信技術(6Gなど)
技術仕様と標準の策定
- コアネットワーク(EPC, 5GC)
- 無線アクセス技術(RAN: Radio Access Network)
- IMS(IP Multimedia Subsystem)などの関連技術
グローバル統一規格の提供
各国や地域の通信事業者やメーカーが共通で利用できる規格を提供することで、世界中のモバイル通信の相互運用性を実現しています。
モバイルコアの開発をするためにはこの3GPPの仕様を読まなくてはなりません。日本語で書かれていても理解が難しい内容が英語で書かれているため自分の欲しい情報を探すのは苦労しました。
また3GPPの仕様を実装に落とし込むことにも苦労しました。仕様書を読んで実装するというのは初めてだったので、過去のコードを見ながら、自分が実装しようとしているところ同じ、似ているコードはないか探しながら実装しました。
Git
Gitの使い方にも大変苦労しました。チームで同じコードを共有しながら開発することも初めてだったので初めは戸惑いました。正直、Git の使い方を覚えるのが一番大変だったかもしれません。何度も先輩方に教えていただきながら、使い方を覚えていきました。
初めての開発
一通り勉強を終えたあと、初の仕事としてIDRの実装を行いました。IDRとはInsert Subscriber-Data Requestの略でDiameterプロトコルで使用されるメッセージの1つです。ネットワーク内で加入者データを更新または挿入する際に使用されるメッセージです。この仕事を聞いた時は、IDRという言葉を聞いたこともなく何のことなのかもわからず仕事を終えられるか不安でした。
まずは3GPPを読んでIDRとは何か調べる作業から始めました。上述したように3GPPを読んで理解するのは大変でした。完全に理解していない状態で、試行錯誤しながら実装を始めました。
実装を進める中で、次々と分からないことが出てきました。その度に先輩に助けていただきながら作業を進めました。何度も私の質問に丁寧に対応していただき、時間を割いてくださいました。ペアプロを行ったり、一緒に3GPPを読んだりと、多くのサポートをいただきました。先輩の助けがなければ、この仕事をやり遂げることはできなかったと思います。心から感謝しています。
まとめ
以上の経験を通してなんとかモバイルコアの開発や運用業務を行っています。まだまだ勉強していかなければいけないことはたくさんあると思っています。たくさん勉強して強いエンジニアになりたいと思っています!
この記事の大半は私の個人的な感想となっていますが、少しでもお役に立てれば幸いです。
最後に最後までお読みいただき、ありがとうございます。