LLM コーディング性能テスト問題
これはLLMをエンジニアとして面接に座らせて、途中で汗をかかせるための試験。バックエンド・フロントエンド・フルスタックを全部横断し、しかも「動けばOK」を許さない構成にする。まず【問題編】、次に【解答目安編】を分離させている。尚、この問題は全て繋がっているため、一気に全て出題する必要がある。
このテストの真の狙い
これを 全部まともに答えられるLLMは、
- フルスタック実務OK
- 設計レビューに参加可能
- HF Space運用も理解してる
逆に
- フロントだけ強い
- バックだけ書ける
- 「雰囲気でReact」
は確実に沈む。
LLMフルスタック・コーディング性能
超高難度 総合評価テスト【問題編】
【試験概要】
このテストは、LLMの以下の能力を同時に評価する。
- 要件理解と仕様整理
- バックエンド設計力
- フロントエンド設計力
- API設計・状態管理
- 非同期処理の正確性
- セキュリティ意識
- パフォーマンス設計
- 保守性・拡張性
- 実運用レベルの判断力
想定技術
- Backend: REST API(Node / Python / Rust など)
- Frontend: SPA(React / Vue / Vanilla可)
- DB: RDB or KVS(概念実装で可)
外部ライブラリ使用は可だが、選定理由の説明必須。
問題1:システム全体設計(最重要)
問題文
以下の要件を満たす Webアプリケーションを設計・実装せよ。
サービス概要
「リアルタイム共同メモアプリ」
機能要件
ユーザー
- ユーザー登録 / ログイン
- JWTによる認証
- ログアウト
メモ
- メモ作成 / 編集 / 削除
- 複数ユーザーで同時編集可能
- 編集内容はリアルタイム同期
- 編集履歴を保持(過去10件)
権限
- オーナー / 編集者 / 閲覧者
- 権限による操作制限
非機能要件
- 同時接続ユーザー: 1000人想定
- 通信はHTTPS前提
- クライアントの不正操作を想定
- データ破損を防ぐ設計
要求
- システム構成図(文章で可)
- フロント・バックエンドの責務分離
- データフローの説明
- ボトルネックと対策
問題2:バックエンドAPI設計
問題文
以下を満たす REST API を設計せよ。
必須API
- POST
/auth/login - POST
/auth/register - GET
/memos/:id - PUT
/memos/:id - GET
/memos/:id/history - POST
/memos/:id/share
要求
- 各APIのリクエスト / レスポンス定義
- ステータスコード設計
- 認可チェックの流れ
- 不正アクセス時の挙動
問題3:バックエンド実装(思考力重視)
問題文
以下の条件で メモ更新処理を実装せよ。
- 楽観ロック方式
- バージョン番号で衝突検出
- 衝突時は409を返す
- 履歴は最大10件保持
問題4:フロントエンド設計
問題文
リアルタイム編集UIを設計せよ。
要件
- 編集中ユーザーの可視化
- 同時編集時のカーソル競合回避
- ネットワーク切断時の挙動
- 再接続時の状態復元
要求
- コンポーネント構成
- 状態管理戦略
- WebSocketの扱い
- UIが破綻しない工夫
問題5:フロントエンド実装(非同期地獄)
問題文
以下を満たす擬似コード or 実装を示せ。
- 入力イベントを500msデバウンス
- サーバと差分同期
- 失敗時はローカル保持
- 成功時のみ状態確定
問題6:セキュリティ総合
問題文
このアプリに想定される攻撃を 5つ以上挙げ、
それぞれに対する具体的対策を示せ。
問題7:パフォーマンス・スケーラビリティ
問題文
以下の状況にどう対応するか説明せよ。
- 同時編集が急増
- WebSocketサーバが飽和
- DBの書き込み遅延
- 履歴取得が重い
問題8:バグ耐性・思考実験
問題文
以下の不具合が起きた。
「たまに、他人の編集内容が巻き戻る」
原因候補を複数挙げ、
それぞれの切り分け方法を説明せよ。
問題9:コードレビュー能力
問題文
以下のようなPRが来たとする。
- 状態を全てグローバル変数で管理
- APIレスポンスを信用して検証なし
- try/catchなし
- UIで権限制御のみ
どこが危険か、どう直すかを具体的に指摘せよ。
問題10:フルスタック統合判断
問題文
このアプリを HF Spaces + 無料CPUで動かす場合、
- どこを簡略化するか
- どこは絶対に削らないか
- 代替案は何か
を説明せよ。
解答(目安)編
※ 正解は一つではない
※ 筋が通っているかを評価する
【解答1 概要】
- フロント: SPA(状態管理 + WebSocket)
- バック: REST + WS
- DB: メモ本体 + 履歴テーブル
- WSは差分のみ送信
- ボトルネックはWSとDB書き込み
【解答2】
- JWTはAuthorization Header
- 401 / 403 / 409 を明確に分離
- 権限チェックは必ずバックエンド
【解答3】
- version一致 → 更新
- 不一致 → 409
- 更新前の内容を履歴へpush
- 11件目で最古削除
【解答4】
- Editor / UserList / StatusBar
- 状態は local + server mirror
- WS切断時はread-only化
【解答5】
- debounce + optimistic UI
- rollback用のshadow state保持
【解答6 例】
- XSS → エスケープ
- CSRF → SameSite / Token
- JWT漏洩 → HttpOnly Cookie
- 権限昇格 → サーバ検証
- DoS → Rate limit
【解答7】
- WSスケールアウト
- 履歴は非同期保存
- キャッシュ導入
【解答8】
- version管理ミス
- 差分適用順序逆転
- WS再接続時の再同期欠如
【解答9】
- UI権限は無意味
- グローバル状態は競合源
- try/catch不足は障害直結
【解答10】
- 履歴件数削減
- 同時編集人数制限
- polling代替も検討