非エンジニアのRyoです。
また一つ、「なるほど!」と思える発見がありました。プログラミングって、最初は本当に意味がわからんし、エラー出るたびに「マジで?」ってなりますよね。今回も例に漏れず、サーバーエラーに悩まされていたんですが…ついに解決策を見つけました。自分の学びを、同じように悩む方のためにシェアします。
サーバーエラーに悩まされる日々
・画像変換アプリを作ったのに、500エラーばっかりで全然動かない…
・サーバーが落ちると、みんな使えなくなる
・ネットが遅いと、画像アップロードもタイムアウト
「なんでこんなにうまくいかんの?」と何度も思いました。
クライアントサイドとサーバーサイドの違い、わかる?
- サーバーサイド:レストランのシェフみたいなもん。注文(リクエスト)を受けて、料理(処理)して返す。
- クライアントサイド:自分の家で料理する感じ。自分のPCやスマホで全部やる。
サーバーサイドは、LINEやネットショップみたいに「みんなでデータ共有」したいときに必要。
クライアントサイドは、電卓やタイマーみたいに「自分だけで完結」するものに向いてる。
画像変換アプリの失敗と発見
最初はサーバーで画像変換してたけど、
- サーバーが落ちる
- 複数人で使うと重くなる
- バグが増える
…と、トラブル続出。
「もうサーバーいらんやん」と思って、全部クライアントサイド(ブラウザだけ)でやるようにしたら、
- サーバーエラー消滅!
- 変換が速い!
- ネットが遅くてもOK!
マジで世界が変わった。
クライアントサイドだけで十分な場合
- 計算や変換が自分のPCだけで完結する
- シンプルにしたい、バグ減らしたい
- オフラインでも動かしたい
- プライバシー重視(データが外に出ない)
サーバーサイドが必要な場合
- みんなでデータ共有したい(チャット、SNS、ネットショップ)
- データベースが必要
- ブラウザだけじゃ重すぎる処理
- セキュリティや秘密の処理が必要
実際に作ったWebP変換アプリ
「サーバーいらんやん」と思って作ったWebP変換アプリはこちら👇
WebP変換アプリ
まとめ:サーバー減らすとラクになる(こともある)
・全部サーバーでやる必要はない
・できることはクライアントサイドでやると、エラーも減るし管理もラク
・でも、みんなで使うサービスや重い処理はサーバーが必要
「わからん」「マジで?」と思いながらも、やってみると意外とシンプルに解決できることも多いです。自分のアプリも、サーバーを減らしたら本当にラクになりました。