NCDC テックブログのフィード
https://zenn.dev/p/ncdc
NCDC株式会社( https://ncdc.co.jp/ )のテックブログです。 主にエンジニアチームのメンバーが投稿します。 募集中のエンジニアのポジションや、採用している技術スタックの紹介などはこちら( https://github.com/ncdcdev/recruitm
フィード

生成AIのストリーミングは、なぜ1回のAPIコールで複数回値が取れるのか
NCDC テックブログのフィード
モチベーションChatGPTやClaudeを使っていると、文字がポロポロと表示されます。あれを見てふと気になりました。あの動き、裏で何度もAPIを叩いているのだろうか?調べてみると答えはNoでした。HTTPリクエストは1回だけで、レスポンスが分割されて少しずつ届くのが「ストリーミング」です。本記事では、ストリーミングが通信レベル・コードレベルでどう動いているかを整理してみます。Amazon Bedrock(Claude)のPython SDKを使いますが、仕組み自体はOpenAI APIなど他のサービスでも同じです。 非ストリーミングまず、ストリーミングを使わない場合で...
4日前

PostgreSQL の JSONB を NoSQL と比べながら使ってみた
1
NCDC テックブログのフィード
PostgreSQL に JSONB という型があるらしいと聞いて、どんなものか気になったので試してみました。せっかくなので MongoDB と同じクエリを書き比べてパフォーマンスも計測しています。 まず JSONB ってなに?PostgreSQL には JSON を格納する型が 2 つあります。型中身特徴JSONテキストをそのまま保存読み出すたびにパースJSONBバイナリに変換して保存読み出し時のパース不要・インデックス対応JSONB は書き込み時に一度だけパースして、バイナリ形式で保存します。その分書き込みはわずかに遅いですが、検...
4日前

GitHub Code QualityのCode coverage機能を試す
NCDC テックブログのフィード
はじめにGitHubのネイティブな機能にCode coverageが追加されました。https://github.blog/changelog/2026-05-26-code-coverage-in-pull-requests-is-now-in-public-preview/つまり、プルリクエスト時にテストのカバレッジを示してくれる機能ですね。早速試してみます!!本機能は、GitHub TeamまたはEnterprise Cloudのみで利用可能です(FreeやProプランは非対応) 試してみる Code Qualityを有効化する今回のCode cover...
5日前

サイドバーデザインで考える奥行知覚
NCDC テックブログのフィード
サイドバーとメインエリア、どっちが手前?サイドバーのデザインとして、次の画像のように2カラムの横並びの場合を考えます。サイドバーとメインエリア、どちらが手前に見えますでしょうか?人によるかもしれませんが、色がはっきりしているサイドバーのほうが手前に見えるように思えます。 メインエリアがサイドバーに入り込む少しだけデザインを変更して、サイドバー上の選択された項目に、メインエリアの背景色が入り込むようにします。この場合、メインエリアが手前に見えてきませんでしょうか? サイドバーが浮くさらに変更して、サイドバーがメインエリアに浮いているデザインにしてみます。この...
6日前

SMS送信の仕組みと2段階認証で使われる理由
NCDC テックブログのフィード
はじめにSMSは、電話番号を指定してメッセージを送る技術です。Short Message Serviceの略称となります。昨今はアカウントにおけるセキュリティ強化のため、2段階認証(MFA)が導入されているサービスも多くなっています。SMSは、2段階認証においてもよく用いられている方法です。この記事では、SMSが送信できる仕組みについて取り上げます。また、SMSがなぜ2段階認証で用いられているのかを記述していきます。 どのように送信されるのかSMSの送受信に関わるのは3者です。1つ目は送信サービス、2つ目はSMSC、3つ目は送信先の電話番号を持つ受信デバイスです。...
7日前

PostgreSQLのjsonb型で空値を検索する
NCDC テックブログのフィード
業務でpostgresのjsonb型を利用した検索機能を作成するにあたって、引っかかったところをまとめておきます。 想定しているデータ下記のようなjsonb型の列を持つテーブルに対して検索処理を行うパターンを想定します。概ね構造は一致していますが、keyがnullやundefined、空の配列が混在しています。CREATE TABLE book ( id serial PRIMARY KEY, json_data jsonb);INSERT INTO book (json_data)VALUES ( '{ "title": "人間...
15日前

画像のリサイズ関数の裏側では何が起きている?~補間アルゴリズムの違いを知ろう~
NCDC テックブログのフィード
普段何気なく使っていた画像リサイズ系のライブラリ関数。option指定できる"補間アルゴリズム"の違いを意識できておらず、要件に対してテスト結果が引っかかることがありました。「意識せずデフォルト設定のままで画像リサイズ等の加工処理を実行すると、UXやサーバーコスト、学習・推論精度などに影響を及ぼす可能性がある」ってことを理解して適切に使い分けれるようになりましょう。(自戒) 前提・背景ライブラリによる画像データのリサイズ処理は、内部的には"補間アルゴリズム"が動いています。「ライブラリ関数の内部的にいい感じに対応してくれる」ことはありがたいが、「知ってて任せるのと、知らずに...
16日前

潜在拡散モデルの仕組み
NCDC テックブログのフィード
はじめに2026年現在の画像生成モデルは、潜在拡散モデルをベースに進化を続けています。この記事では、潜在拡散モデルの仕組みを、内部で使われている3つのAIモデルごとに解説します。なお、数式は含んでおりませんが、一部数学用語を用いています。CLIP拡散モデル変分オートエンコーダ データ形式モデルの説明に入る前に、AIモデルが扱うデータ形式について取り上げます。 ベクトルベクトルとは、簡単に言うと数値データです。次元ごとに数値が保持されています。例えば、3次元空間の場合は(1, 2, 3)のように、3つの値が保持されています。AIモデルが扱うデータは、基本...
20日前

RAGのRetrieve戦略 — Adaptive RAGの変遷
NCDC テックブログのフィード
Adaptive RAGとはAdaptive RAG(または Adaptive Retrieval)は、retrieve するタイミング・回数・戦略をクエリやモデル状態に応じて動的に変えるRAG手法群を指す総称です。素朴なSingle-step RAGが抱える構造的な問題に対応するための手法です。Skill-RAG という論文で「検索がうまくいかなかった時に、失敗の原因を見分けて対処を切り替える」という新しいRAGのretrieve戦略が提案されていて、そもそも今までどんな手法があったのかと気になり、SKR / FLARE / DRAGIN / Self-RAG / CRAG ...
22日前

1時間で料理バトルAIエージェントを作ってみた
NCDC テックブログのフィード
AIエージェントがどういう仕組みで動いているのか勉強したかったので、作ってみました。GPTsやDifyを使えばサッと作れるらしいのですが、今回は仕組みを理解したかったのでスクラッチ(LangGraph)で作りました。 完成物最終的に、AI同士の料理バトルAIエージェント(エンタメ)を作ることができました。所要時間としては、要件定義 → 設計 → 実装までトータルで1時間ほどです。主にGeminiとCursorに動いてもらいました。ユーザーが食材を複数入力し議論開始すると、錬金術師(Alchemist)と会計士(Accountant)がレシピに関する意見を出します。錬金術師は...
22日前

Claude CodeにKiro CLIを使わせてみた
NCDC テックブログのフィード
Kiroといえば仕様駆動開発が有名だと思いますが、この記事ではそのような話はしません。ご了承ください。 では、なんの記事か?単純にClaude Codeでアプリ開発をするときに実装部分をKiroに任せてみたよ。そのためのSkillを作ったよ。という話になります。(任せたのは設計ではなく実装です。)Geminiに書かせた扉絵実装をKiroに実装を任せるために作ったスキルはこちらのリポジトリに置きました。https://github.com/k-ibaraki/kiro-delegate-skill なんでKiroにコーディングをさせてみたか?主な理由は、以下です。最...
25日前

【DB設計】ユニークと思いがちだけどユニークじゃないかもしれないもの
NCDC テックブログのフィード
はじめにSQLアンチパターンの「IDリクワイアド」の章を読んだ後、私は疑似キー警察をしていました。具体的には、プロジェクト内のDB設計で自然キーを使えそうなのに疑似キーを使っている箇所がないかを探して直そうとしていました。ただ、本当に主キーとして自然キーを使用してよいか迷うことがありました。それは自然キーだと思っていた列が、ビジネスの変化や実務上の実態によってユニーク性を保証しないことがあるからです。また、とあるカンファレンスでt-wadaさんにデータモデリングの重要性について教えていただいたことが、この記事を書くきっかけになりました。質問に対して丁寧に回答してくださり、...
1ヶ月前

Google Colab MCPで出来ること
NCDC テックブログのフィード
1ヶ月くらい前にColabのMCPが出ていた。https://github.com/googlecolab/colab-mcpcolabはサクッと試したいときに使うのでMCPあったらもっと手軽なのになぁと思っていました。早速 Claude Code から叩いてみます。セットアップは Claude Code なら以下だけです( uv が必要、登録後はセッション再起動)。claude mcp add colab-mcp --scope local -- uvx git+https://github.com/googlecolab/colab-mcp Colab MCPでできるこ...
1ヶ月前

仕様駆動開発でOpenSpecを使ってみた
NCDC テックブログのフィード
はじめにClaudeCodeを使って開発していると、こんな悩みが出てきました。「AIが自分の意図と違う実装を始めた…」「セッションが切れたら前回の決定をAIが忘れた」「コードはあるけど、なぜこう実装したのかが後からわからない」こういった問題を解決するアプローチとして、仕様駆動開発を最近会社のチーム活動で行なっており、その中でOpenSpecというものを知り試してみました。 OpenSpecとはOpenSpecは、AIコーディングアシスタントのための仕様駆動開発フレームワークです。一言でいうと、AIにコードを書かせる前に仕様を固める仕組みを提供してくれるツールです...
1ヶ月前

生成AIの正しい障害修正がキッカケで、あなたは顧客の信頼を失うかもしれない
NCDC テックブログのフィード
はじめに生成AIの登場により、コーディングだけでなく障害調査の効率も劇的に改善されました。スタックトレースを貼り付けるだけで原因の仮説が返ってきます。ログを渡せばパターンを読み解いてくれます。以前なら数時間かかっていた調査が、数十分で終わるケースも珍しくありません。しかし、最近は現場で気になる傾向が増えているように思えます。本番障害対応において、生成AIの提案に従った「正しすぎる修正」が、かえって悪影響を生んでいる ケースです。この問題の厄介な点は、生成AIが本質的に正しい提案をするからこそ、発生してしまうという点にあります。 何が起きているか:現場の一例先日、あるDB処...
1ヶ月前

ピクセル・解像度・画素密度(ppi)はどう違うのか?
NCDC テックブログのフィード
はじめにこの記事では、PCディスプレイにおけるピクセル・解像度・画素密度(ppi)の違いについて記述します。印刷物で使われるdpi・Andoridアプリで使われるdpなどについては含めていないため、ご注意ください。 ピクセルピクセルとは、四角形に1つのカラーコードが割り当てられたものです。「画素」とも呼ばれます。単位は「px」です。以下は1pxの四角形です。デジタル画像は列数×行数の大きさのピクセル数を保持します。例えば、20px × 10px の画像は次のとおりとなります。1ピクセルごとに線を入れています。ピクセルが横に20列、縦に10列並んでいます。デジタ...
1ヶ月前

Bonsai を Bankai してわかったこと:1-bit LLM はチューニングできる?
NCDC テックブログのフィード
TL;DR1-bit LLM(Bonsai)を 1-bit のままチューニングする方法はないのか?ビット反転で重みを変える Bankai という手法を見つけたので、自分の環境で 4 タスク試してみた共通パターンのある客観的分類では効いた(検証セットで +2〜4 問改善)個人の好みの学習には完全に失敗した(0 問改善)ビット反転は「新しい能力を作る」のではなく「既存の回路を強化する」手法だった Bonsai と Bankai Bonsai: 1-bit LLM近頃 Qwen 3.5 や Gemma-4 などのローカル LLM が急速に性能を伸ばしていますよね。私...
1ヶ月前

管理者目線でGitHub Copilotの方が優れていること
NCDC テックブログのフィード
はじめにこの記事では、GitHub Copilotが組織として導入・管理しやすい理由を、主にClaude Codeと比較しながら、管理者の目線で説明します。はじめに白状しておくと、私は現在GitHub Copilotを使っていません。ClaudeのTeamプランでClaude Codeが使えるようになったとき、1日で社内稟議を通して即導入しました。そのままClaudeに移行して、自分の分のGitHub Copilotは解約しています。会社全体としては両方使える状態にしつつ、個人としてはClaude Codeに完全移行した形です。それでも、組織として開発者にAIコーディング支援ツ...
1ヶ月前

いまエンジニアを目指すならコーディングから始めるべきか? ― AI時代の採用現場から思うこと
NCDC テックブログのフィード
はじめにエンジニアを目指すなら、まず何から勉強すればいいのか。悩んでいる方も多いのではないでしょうか。多くの方がプログラミングから始めようとするかもしれませんが、今のAI時代に本当に必要でしょうか?少し立ち止まって考えてみても良いかもしれません。私の個人的な意見としては、今の時代はコーディング能力は必ずしも優先すべき能力ではないと考えています。もちろん、できるに越したことはありません。しかし学習時間には限りがあり、何を優先して学ぶかは戦略的に考える必要があります。そして、これからのエンジニアには、コーディングより先に身につけるべき能力があると感じています。エンジニアを採用す...
2ヶ月前

use_figmaをつかってFigmaのリファクタをさせてみた
NCDC テックブログのフィード
Figmaファイルのリファクタ、やらなきゃいけないのはわかっているけど後回しにしがちという人は多いと思います。バリアブルが未定義、コンポーネント化されていないオブジェクトが散在、色やスペーシングがベタ打ち。こういうカオスな状態のファイルを人力で整理するのは、地味に工数がかかる割に新しいものが生まれるわけでもなく、なかなか着手しづらい作業です。今回は、このリファクタ作業をclaudeにuse_figmaで操作させる。かつ、実務レベルでどこまで使えるのかを検証しました。(ちょうど地獄のようなデータがあったので……)結論から言うと、工程によって「十分使える」ものと「まだ人の手が要る」もの...
2ヶ月前