面接質問と回答の解説 — ページ 49 / 52

Offer.ccの面接質問と回答解説の49ページ目を閲覧。思考プロセス、実装の詳細、深掘り質問、公開情報ソースを確認できます。

バックエンド難しい

安定したカーソルベースのページネーションAPIをどう設計するか?

並行書き込み環境下におけるページネーションのセマンティクスから始め、オフセット方式とカーソル方式を比較した上で、複合カーソル、対応するインデックス、双方向クエリ、スナップショットの境界、そして敵対的テストを導出します。

質問と回答を開く
データ難しい

データエンジニアリング面接:SCD Type 2ディメンションの設計

サロゲートキー、半開有効期間インターバル、冪等なロード、削除セマンティクス、遅延修正、および不変条件チェックを備えた、特定時点(point-in-time)で正しいSCD Type 2ディメンションを設計します。

質問と回答を開く
コーディング難しい

コーディング面接:有界 SPSC ロックフリーリングバッファの実装

固定容量の単一プロデューサー・単一コンシューマー(SPSC)リングバッファを実装し、インデックス、満杯/空の判定、メモリ順序付け、およびエッジテストについて解説します。

質問と回答を開く
システム設計難しい

システムデザイン面接:リアルタイム共同編集エディタの設計

即時ローカル編集、オフライン再接続、エフェメラルなカーソル、権限の取り消し、テスト可能なリカバリを処理しながら、CRDTの収束、ドキュメントルーム、永続更新ログ、ステートベクトル同期を中心に共同編集エディタを構築します。

質問と回答を開く
バックエンド難しい

低速なPostgreSQLクエリをどのように診断・最適化しますか?

ワークロードの実態、実行計画、カーディナリティ推定値に基づいて複合インデックスや部分インデックスを導出し、書き込み増幅やロールアウトのリスクと照らし合わせて読み取り性能の向上を検証します。

質問と回答を開く
データ難しい

データエンジニアリング面接:Change Data Capture(CDC)パイプラインの設計

PostgreSQL WAL、初期スナップショット、およびソース位置からギャップのないCDCパイプラインを導出し、at-least-once配信、削除、スキーマ進化、レプリケーションスロットのリスク、リプレイ、およびリコンシリエーション(データ照合)に対処します。

質問と回答を開く
コーディング難しい

動的累積和と重み付き選択のための Fenwick Tree(Binary Indexed Tree)の実装方法

インデックス付け、計算量、負の重みによる制限に対処しながら、コンパクトな単一配列構造で点更新、累積和・区間和、および重みによる順位選択を実装します。

質問と回答を開く
システム設計難しい

システム設計面接:集中ログ管理システムの設計

ローカルバッファリング、高耐久ストリーム、選択的インデックス作成、オブジェクトストレージアーカイブを中心に集中ログ基盤を設計し、ログストーム、ダウンストリームの停止、高カーディナリティフィールド、ノイジーネイバー(騒がしいテナント)に耐えられるようにします。

質問と回答を開く
バックエンド難しい

ホットキーの有効期限切れ時にキャッシュスタンピードを防ぐにはどうすればよいか?

ソフト有効期限(soft expiration)、リクエスト結合(request coalescing)、分散リースを活用し、ホットキーの失効、リフレッシャーのクラッシュ、キャッシュ障害、書き込み遅延に耐えうるキャッシュ読み取りパスを設計します。

質問と回答を開く
データ難しい

データエンジニアリング面接:Kafkaのホットパーティションをどのように診断し修正するか?

パーティションごとのラグとキーの偏り(key skew)からKafkaのホットパーティションを診断し、バックログの増加を算出した上で、スロットリング、安全なパーティション内並行処理、より適切なキー、および順序性を保証する安全なマイグレーションを選択します。

質問と回答を開く
コーディング難しい

スキップリストの実装と期待される O(log N) の挙動の説明方法

ランダムなレベルを持つ検索可能かつ変更可能な順序付き構造を構築し、期待計算量、エッジケース、メモリのトレードオフについて考察します。

質問と回答を開く
システム設計難しい

システム設計面接:クラウドファイルストレージおよび同期サービスの設計

再開可能なチャンクアップロード、不変なファイルバージョン、カーソルベースのデバイス同期、競合コピー、バージョン復元、安全なガベージコレクションを備えたクラウドドライブを設計します。

質問と回答を開く
バックエンド難しい

トランザクション分離レベルによるライトスキューの防止

オンコール当番表の不変条件をもとに Read Committed、Repeatable Read、Serializable の実際の挙動を導出し、シリアライザブルのリトライ、明示的ロック、単一行の条件付き更新を比較します。

質問と回答を開く
データ普通

A/BテストにおけるSample Ratio Mismatch(SRM)をどのように診断しますか?

カイ二乗検定を用いてSample Ratio Mismatchを確認し、一見有意に見える実験のリフトを信用する前に、割り当て、実行、ログ処理、および分析フィルターを追跡します。

質問と回答を開く
コーディング難しい

O(1)の重み付きサンプリングを実現するVoseのエイリアス法をどのように実装しますか?

更新、精度、検証を含め、静的な離散分布から定数時間でサンプリングを行うための確率テーブルとエイリアステーブルを事前計算します。

質問と回答を開く
システム設計難しい

システムデザイン面接:分散ロックサービスの設計

プロセスの停止、ネットワーク分断、応答ロスト、リーダー障害が発生しても安全性を維持できるように、強整合性な状態、リースの更新、フェンシングトークンを中心に分散ロックサービスを設計します。

質問と回答を開く
バックエンド難しい

冪等な注文作成APIの設計

並行リクエスト、レスポンス喪失、キーの有効期限切れ、下流への副作用に対応し、注文作成を安全にリトライできるようにするため、冪等性キーのスコープ、リクエストフィンガープリント、およびデータベースの一意性制約から設計を始めます。

質問と回答を開く
データ普通

SQL面接対策:カテゴリごとの売上上位3商品を取得する

注文明細を商品粒度に集計し、DENSE_RANKを使用して同額の売上タイを保持しつつ、ウィンドウ関数の評価順序、エッジケース、正確性、検証方法を解説します。

質問と回答を開く
コーディング難しい

ストリーミング頻度推定のためのCount-Min Sketchはどのように実装しますか?

2次元のカウンター配列と独立したハッシュを使用して、固定メモリ内でキーの頻度を推定します。これには、誤差限界、マージ、およびリセットの制約が含まれます。

質問と回答を開く
システム設計難しい

システム設計面接:大規模ウェブクローラーの設計

クロールバジェットからホスト単位でシャーディングされたURLフロンティアを導出し、robots.txt、Politeness(礼儀性)、重複排除、再クロール、リース復旧を、テスト可能なキャパシティと障害不変条件を用いて処理します。

質問と回答を開く
データ普通

本番環境でMLモデルをどのようにモニタリングするか?

配車サービスの到着予定時刻(ETA)予測回帰モデルを題材に、サービング健全性、データ品質、分布ドリフト、遅延ラベル品質を網羅する階層型モニタリングを構築し、各シグナルを実行可能なアラート、ロールバック、再学習の判断へとマッピングします。

質問と回答を開く
コーディング普通

HyperLogLogは大容量ストリームにおける異なり数をどのように推定できるか?

HyperLogLogのレジスタ更新、誤差補正、分散マージ境界を導出することで、固定メモリでストリーミングのカーディナリティを推定します。

質問と回答を開く
システム設計難しい

フィーチャーフラグシステムをどのように設計するか?

管理用コントロールプレーンとインプロセス評価を分離し、ロールアウト割り当て、古いデータの扱い、ガバナンス、障害復旧を明確に定義することで、低レイテンシなフィーチャーフラグプラットフォームを設計します。

質問と回答を開く
データ難しい

推薦システムをオフラインおよびオンラインでどのように評価するか?

時点確定ログデータ、ランキングおよび精度以外の指標、露出バイアス、無作為化オンライン実験からローンチ判断を組み立て、オフラインでの勝者がオンラインで敗北する理由を診断します。

質問と回答を開く