LAB NOTES– category –
-
LAB NOTES
生成AIはどう進化したのか|TransformerからAI Agentまでの技術史
生成AIの歴史を理解するとき、「GPT-3が登場した」「ChatGPTが流行した」「AI Agentが登場した」という製品年表だけを覚えても、技術の本質は見えてきません。 重要なのは、各段階で何ができるようになり、AIシステムの構造がどう変化したのかです。 2026... -
LAB NOTES
BOMデータを正規化する設計|親子関係・revision・再帰SQLの実務
BOM(Bill of Materials、部品表)は、単なる部品一覧ではありません。完成品の下に組立品があり、その下に部品があるという親子関係と、各階層で必要な数量を表す構造です。 Excelの見た目をそのまま一つのtableへ保存すると、同じ部品名が何度も現れ、re... -
LAB NOTES
データ連携のハッシュ設計|SHA-256・Content-Digest・JSON正規化
ファイルをAPIやクラウドストレージへ送れたとしても、受信したbyte列が送信時と同じとは限りません。文字コード、改行、圧縮、途中の変換、保存ミスによって内容が変わることがあります。 ハッシュ値を使うと、送信側と受信側が同じbyte列を持っているか... -
LAB NOTES
CSV連携を壊さない設計|UTF-8・BOM・改行・引用符・型変換
CSVはExcel、Python、データベース、CAD、部品表の間で使いやすい交換形式です。しかし、拡張子が.csvで同じでも、文字コード、区切り文字、改行、引用符、NULLの表現が異なれば別の形式として扱う必要があります。 「表計算ソフトで開けた」ことと、「同... -
LAB NOTES
差分同期でデータを欠落させない設計|watermark・checkpoint・削除伝播
データ連携を毎回の全件コピーから差分同期へ変えると、処理時間やAPI負荷を抑えられます。一方で、updated_at > 前回実行時刻だけを条件にすると、同時刻に更新された複数レコード、処理途中の失敗、遅れて確定した更新、削除済みデータを取りこぼすこ... -
LAB NOTES
サーバー間API連携のOAuth 2.0設計|Client Credentials・scope・token管理
サーバーから外部APIを呼び出す処理で、API keyを固定文字列として埋め込むと、権限の分離、期限管理、失効、監査が難しくなります。OAuth 2.0のClient Credentials Grantを使うと、利用者の操作を介さず、登録済みclientが自分の資格情報で短期間のaccess... -
LAB NOTES
APIスキーマを壊さず変更する設計|field追加・型変更・version移行の実務
APIは公開した後も変化します。新しいfieldを追加し、表現を改善し、古い項目を整理する必要があります。しかし、server側だけを見て「JSONを返せたから変更成功」と判断すると、既存client、CSV取込、保存済みpayload、CAD連携が突然動かなくなることがあ... -
LAB NOTES
APIエラーを機械処理できる設計|RFC 9457 Problem Detailsの実務
API連携で正常responseだけを設計し、エラー時は{"error":"失敗しました"}のような独自JSONを返すと、利用側はAPIごとに別の分岐を書かなければなりません。HTTP statusだけでも、入力のどこを直すべきか、同じrequestを再試行してよいか、問い合わせ時に... -
LAB NOTES
APIのページネーション設計|offsetとcursorで重複・欠落を防ぐ
APIから部品、図面、計測結果などを一覧取得するとき、全件を一度に返すと応答が大きくなり、DBとネットワークの負荷も増えます。そこで結果を複数回に分けるページネーションを使います。 しかし、page=2を追加するだけでは十分ではありません。取得中に... -
LAB NOTES
APIの上書き事故を防ぐETag設計|If-Match・412・楽観ロックの実務
APIで同じレコードを複数の利用者や処理が更新すると、先に保存された変更を、古いデータを持つ別の更新が消してしまうことがあります。これは「更新消失(lost update)」と呼ばれる競合です。 ETagとIf-Matchを使うと、クライアントが取得した版と、更新... -
LAB NOTES
Webhookを安全に受信する設計|署名検証・再送・冪等性の実務ルール
Webhookは、あるシステムで起きたイベントを別のシステムへHTTPで通知する仕組みです。定期的にAPIを巡回するポーリングを減らせますが、単にPOSTを受け取るだけでは安全な連携になりません。 受信側には、送信元の確認、改ざん検知、再送による二重処理の... -
LAB NOTES
APIのNULL・未指定・空文字を混同しない設計|JSON・PATCH・DB更新の実務ルール
API更新でnull、field未指定、空文字""、false、0を一括して扱うと、変更していない項目が消えることがあります。JSON、PATCH、DB、CSV、Pythonを通して、値の有無と更新操作を分離する設計を整理します。 まず5つの状態を分ける プロフィール更新を例にす...