こんにちは。韓国でバックエンドエンジニアをしています。
少し前に、東京の終電を検索できるサイト(https://shuden.tokyo) を作りました。作っている間にいろいろあったので、シリーズ
で書いてみようと思います。1回目は「そもそも、なんで作ったの?」という話です。
きっかけは東京旅行でした
何年か前、東京に旅行で行ったときのことです。夜の便だったので、宿に着いた頃にはもう遅い時間。しかも費用をケチって、渋谷
や新宿からだいぶ離れたエリアに宿を取っていたので、バックパックを背負って、Google
マップだけを頼りにしばらく迷いました。
旅行中、ずっと同じところが地味に不便でした。夜に出歩くたびに「そろそろ帰らないとマズいかな?」とソワソワするんです。Google マップを開けば「今出れば何時に着く」みたいなのは出る。でも、知りたいのはそこじゃないんですよね。
僕が知りたかったのは、これです。「自分、あと何時まで遊べるんだ?」
終電って、その夜の門限みたいなものじゃないですか。なのに、その門限が何時なのかをパッと見せてくれるものが、意外と無かっ
たんです。だったら終電の時刻だけスッと教えてくれるものがあればいいな、と思いました。
ちょうど、公開データがありました
あとで調べたら、東京には ODPT という公共交通のオープンデータがあったんです。これを見て「あ、これなら作れるかも」と。
スタックは普通に Java と Spring にしました。一番慣れているので。新しい言語を勉強する時間を使うより、終電の経路計算とか
サーバー運用のほうに頭を使いたかったんです。(僕は SRE
まわりに興味があって、何を作るにも「ちゃんと動くか」より「落ちないか」を気にするタイプです。)
コードは Claude Code をかなり使いました。これは正直に書いておくべきかなと。とはいえ AI
が書いたコードをそのまま置いたわけではなくて、直して、壊れるところを塞いで、遅いところに手を入れるのが僕の仕事でした。
結局「落ちたら自分の責任」ですからね。
ほとんど初めてで、ちょっと緊張しました
AWS にサーバーを立てるのも、Cloudflare
をつなぐのも、ドメインを買うのも、全部初めて。ドメインの支払いボタンを押すとき、なぜか指がためらいました。
でも一番ドキドキしたのは別のことです。日本にいる誰かが、僕のサイトに初めて入ってくる瞬間。それが本当に来るのかな、と思
っていました。🌏
簡単ではなさそうでした
始める前から、引っかかることがいくつかありました。
まず僕は韓国に住んでいます。東京で実際に乗ってみて「あ、ここ間違ってる」と気づくことができません。それから、いざ公開し
てみるとボットのトラフィックが想像以上で。本物の人間と変なリクエストを見分けるのもひと仕事でした。何より、僕は日本語も
話せないし日本の地下鉄もよく知りません。だから結果が出ても「これで合ってるのか?」を自分の勘では確信できなかったんです。
こういうのをどう乗り越えたかが、このシリーズで書きたいことです。
これから書く予定のもの
- 終電をどう計算したか(JR データが無くて苦労した話も)
- ボットだらけのトラフィックから本物の人を選り分けた話
- 2GB 1台で耐えるコスト・性能の話
実際に作ったサイトはこちらです → https://shuden.tokyo
つたないですが、よろしくお願いします。フィードバックはいつでも歓迎です。間違いなどあれば、気軽に教えていただけると嬉し
いです。