☑️

KLab Server Side Camp #5 に参加してきた

2023/09/27に公開

今回、人生で初めてインターン(と呼ぶのか正しいのかはわからないけれど)を経験したので、ログとして残したいと思います。

参加したきっかけ

今回、KLab様のこのインターンに参加するきっかけは主に2つありました。

バックエンドを勉強しているので、サーバーサイド開発というものに興味があった

僕がよく遊んでいた「スクールアイドルフェスティバル」(以降「スクフェス」)というラブライブ!のゲームで聞き馴染みのある会社であったから

というのが主な参加理由でした。応募要項を見た時に、もしかしたら自分なら行けるかもということでその時は申し込んだ記憶があります。
書類選考と面接でしたが、自分は目立った経歴はないですが、選考を通過し、今回このインターンを受けることになりました。

今回のインターンでは、音ゲーの通信対戦機能の実装という名目で、職業体験していきました。

Day1

最初に朝会があり、その後講義が始まりました。講義の内容は今回の実装で使うファイルのディレクトリ構成、Github CodeSpacesの使い方、PythonのFastAPI、MySQLの基本的な解説、そしてハンズオン形式のAPIの実装でした。

自分は以前からハッカソン等出場していたのですが、APIをがっつり触ったことのある経験が乏しかったので、最初は非常に困惑して難しかったです。そして、1日目終盤からは、各自もくもく実装というところで、自分の手が止まり、1日目が終了しました。

Day2

2日目から、ゲームのコアな通信対戦部分の実装になっていくのですが、APIの仕様書からどのような実装を作らないといけないのかということに関して、本当に初めてだったので、最初は、「まず何からしないといけないんだ?」というところからだったので、非常に大変でした。

何もできないまま終わるのは嫌だったので、正直にメンターの方にサポートいただく旨を連絡し、一緒に考えながらコーディングをしていきました。

Day2では、部屋を建てる機能、作成した部屋を他の人に見えるようにリスト化する機能を実装しました。

メンターの方々に対話形式でいろいろ知恵をいただきながら実装したので、非常に勉強をしながらコーディングしたというイメージです。

Day3

この日ももくもく実装する日でした。
Day3では待機画面と、ゲーム開始のAPIを作成しました。
だんだん、アドバイスを受けながら、自分がどの情報をDBとやり取りすれば良いかというのがだんだん手を動かすうちにわかってくるようになりました。

難しい面は、Python部分でした。
音ゲーのことを考えながらコーディングしたことがなく、どのような機能を作ればいいのかというのは想像しながら書くことができなかったので、この部分に関しては、メンターの皆さんに頼りながら、またGithub Copilotに頼りながらコーディングを進めました。

Day4

Day4になると、いろんな人が基本的な実装が終了し、通信機能テストに移っていたので、僕も早めに終了するべく、冷静に考えながら実装していきました。

この日もほぼほぼもくもくDayではありましたが、実装していくうちに、いろいろ他のAPIにもエラーが発生しており、それをうまく取り除きつつ、テストを繰り返して、完成することができました。

実装した時に感じたことでしたが、テストコードを走らせることによって自身にミスがないかというのを確かめられるので、大事な機能だなと感じました。

Day5

この日はほぼ実装が終わって、午前中のわずかな時間しか実装の時間がなかったので、他の人のテストを手伝いました。
他の人は、自分より早く終わっている人が非常に多かったので、追加の機能の実装をしている人が多かったです。

その中でも、通信切断対策や0人の部屋を時間経過で削除するような機能を思いついて、しっかり実装まで落とし込んでいる人がいて、レベルが非常に高いのだなと感じました。

懇親会では送られたお菓子を食べながら座談会をしていました。
送られたお菓子が、成城石井のものが多く、普段あまり見慣れないものばかりで少し困惑しましたが、美味しいものが多く、非常に満足しました。

成果

成果としては、基本課題の8つのAPIの基本的な実装は全て完了し、全て正常に動作することが確認でき、他の参加者とともに、オンラインで通信対戦ができる状況にすることができました。ただ、他の参加者のように、他の機能の実装のところは時間足らずで実装しきれなかったですね。

ローカルではうまくいっていたのですが、他人と通信テスト時に、音ゲー終了後のスコア表示のところでHTTPエラーが出ていたので、参加者の方に知恵を借りながら最後修正し、それをしっかり反映させて、ほぼ完璧にできたかなと思います。

感想

今回の感想としては、様々な人に助けられたインターンだったなあと思いました。
自分はAPIの理解が浅いまま今回のインターンに挑戦したので、他の有識者の参加者だったり、メンターの皆さんに大きく助けてもらったという面が非常に多かったと思います。

5日間という時間は、いろいろ考えることが多く、手詰まりしたところも多かったですが、非常に勉強になったし、将来のことを考えることもできて、非常にいい時間でした。
業務内容も非常に楽しかったし、このような体験をさせていただいたKLab様には改めて感謝申し上げます。

修了証とネームカード

Discussion