0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LLM コーディング性能テスト問題

0
Posted at

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前提
  • クライアントの不正操作を想定
  • データ破損を防ぐ設計

要求

  1. システム構成図(文章で可)
  2. フロント・バックエンドの責務分離
  3. データフローの説明
  4. ボトルネックと対策

問題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代替も検討
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?