【面接対策】ポーリングとは?中学生でもわかる例え話と理想的な回答例

通信プロトコル・API
博士

【ポーリング(読み方:ポーリング)】って、学校の先生がクラス全員に「宿題やった人!」って順番に聞いていくイメージです。毎回、聞かないと状況が分からないのがポーリング。まるで、古い携帯電話で定期的にメールボックスを確認するみたいですね!必要な情報を、定期的に確認しに行く通信方式のことです。
💡 面接でのベスト回答
想定質問:「ポーリングについて教えてください」

面接官:ポーリングについて説明してください。

私:ポーリングとは、クライアントがサーバーに対して定期的にデータの有無を確認する通信方式です。サーバーはクライアントからの要求に応じてデータを提供するか、データがないことを通知します。

以前のプロジェクトで、リアルタイムに近い株価情報の更新を必要とするWebアプリケーションを開発した際に、当初はWebSocketを使っていました。しかし、クライアント側のネットワーク環境が不安定な場合が多く、接続が頻繁に切断されるという問題が発生しました。そこで、ポーリングに変更しました。

ポーリングの頻度を調整することで、ネットワーク負荷を抑えつつ、比較的安定したデータ更新を実現できました

現役エンジニアによる深掘り解説

メリット

実装が比較的容易: クライアントとサーバー間の基本的なHTTPリクエスト/レスポンスの仕組みを利用するため、複雑なプロトコルを実装する必要がありません。

幅広い環境で利用可能: WebSocketなどの比較的新しい技術が利用できない古いブラウザやネットワーク環境でも動作します。

サーバー側の負荷分散がしやすい: 定期的なリクエストという性質上、サーバー側の負荷を予測しやすく、分散処理を行いやすいです。

デメリット

リアルタイム性が低い: データの更新頻度に依存するため、リアルタイム性が求められるアプリケーションには不向きです。

ネットワーク帯域の無駄遣い: データがない場合でも定期的にリクエストを送信するため、ネットワーク帯域を無駄に消費する可能性があります。

サーバー側の負荷が増加する可能性: クライアント数が多い場合、サーバー側へのリクエストが集中し、負荷が増加する可能性があります。

⚠️ 面接突破のワンポイント

  • ポーリングの仕組みを説明するだけでなく、なぜその方式を選択したのか、代替案と比較してどのようなメリット・デメリットがあったのかを具体的に説明できるように準備しましょう。
  • リアルタイム通信を実現する他の技術(WebSocket、Server-Sent Eventsなど)との違いを明確に説明できるようにしておきましょう。
タイトルとURLをコピーしました