Sky株式会社のブログ - TECH PLAY

TECH PLAY

Sky株式会社

Sky株式会社 の技術ブログ

691

AI駆動開発、特に「仕様駆動開発(Spec Driven Development)」の実践的なアプローチを、1つの機能開発を例に解説します。AIの挙動を正確に制御するため、プロジェクトの憲章となる`AGENT.md`を作成。その後、複数のAI(Copilot/Claude/Gemini)に仕様書作成とクロスレビューをさせ、設計の密度を高める手法を紹介。この「設計の密度」が、AIによる実装の品質や手戻りの少なさに直結することを、具体的なTipsと共に明らかにします。
SDV(Software-Defined Vehicle)時代における自動車の品質保証として、サイバーセキュリティ監査の重要性を解説します。国際法規(UN-R155/156)で義務化された背景、プロセス監査と製品監査で確認される内容、基盤となるISO/SAE 21434などの規格、推奨される資格について紹介。TARA(脅威分析)を起点とし、セキュリティ要求を設計段階から組み込むなど、監査に耐えうる製品開発の5つの重要な観点を説明します。
WebRTCをテーマにした連載の最終回として、運用フェーズで重要となるパフォーマンス品質の測定と監視手法を解説します。WebRTCが提供する getStats() APIを用いた統計的分析と、Chromeのデバッグ機能 webrtc-internals によるリアルタイム監視の2つの方法を紹介。特に画面共有アプリケーションで重要となるフレームレート、解像度、CPU負荷などの観点や、確認すべき具体的なStats項目、 clumsy を用いたネットワーク劣化テストの実践的な確認方法にも触れます。
業務で利用される便利なフリーソフトウェアの裏に潜む、ライセンスやセキュリティ上のリスクについて解説します。非公式サイトからのダウンロードや、意図しない外部通信機能の搭載といった具体的な危険性を指摘。SKYSEA Client Viewの「Webアクセスログ」や「想定外TCP通信ログ」などの機能を活用し、フリーソフトウェアの導入や利用状況を管理・監視することで、これらのリスクを低減する方法を提案します。
インフラエンジニア、特にオンプレミス経験者に向けて、Infrastructure as Code (IaC)がもたらす大きなメリットを解説します。IaCは単なるコード化技術ではなく、「技術継承」「品質向上」「ドキュメント問題の解決」を実現する強力な武器です。レビュー文化の醸成や“動く設計書”による運用の効率化など、チームの資産として技術を継承し、ビジネス価値を高める方法を紹介。最初のツールとしてTerraformを推奨する理由も説明します。
Webシステム開発におけるバグの温床となりがちなデータの「型」のズレを防ぐ設計思想、「End-to-End Type Safety(E2E型安全)」について解説します。単一の真実のソース(SSoT)や境界での実行時検証といった基本思想から、TypeScript環境でtRPCとZodを用いた具体的な実装例までを紹介。システム全体で「型=契約」を守ることで、開発体験と品質を同時に高めるアプローチを説明します。
Webシステム開発におけるバグの温床となりがちなデータの「型」のズレを防ぐ設計思想、「End-to-End Type Safety(E2E型安全)」について解説します。単一の真実のソース(SSoT)や境界での実行時検証といった基本思想から、TypeScript環境でtRPCとZodを用いた具体的な実装例までを紹介。システム全体で「型=契約」を守ることで、開発体験と品質を同時に高めるアプローチを説明します。
Linuxのセキュリティを強化する仕組み「SELinux(Security-Enhanced Linux)」について解説します。サーバーやコンテナのセキュリティ強化、アプリケーションの分離といった活用シーンを紹介し、`sestatus`や`setenforce`コマンドを使った状態確認・モード変更の具体的な方法を説明します。また、SELinuxが有効な場合にアプリケーションの動作に与える影響と、ポリシーを適切に設定・調整して問題を解決するチューニング方法についても触れます。
複数ステップの処理を自律的に行うことで注目される生成AIエージェントについて、LangChainのフレームワーク「LangGraph」を用いた実装初めの一歩を解説します。LangGraphは処理をグラフで可視化でき、挙動が予測しやすい点が特徴です。本記事では、これを使って「シンプルなタスク管理AI」を構築する手順を、Pythonのサンプルコードと共に具体的に紹介し、エージェント開発の基本を学びます。
データベースでNULL値を扱う際に問題となる「3値論理」について解説します。従来の真偽(True/False)に未知(Unknown)が加わることで、SQLクエリがエンジニアの想定外の挙動を引き起こすことがあります。PostgreSQLの具体的な例を用い、NULL許容列に対する比較処理で発生する問題と、`IS NULL`や`COALESCE`関数を使った正しいデータ取得方法を紹介し、NULL値の適切な扱い方の重要性を説明します。
ソフトウェア開発における品質向上のため、不具合の構造化分析とリスク視点による改善手法の一例を紹介します。不具合の構造化、テスト進捗の可視化、リスクベース視点の導入という3つの柱を立て、収集・分類から原因分析、改善施策立案までのプロセスを解説。KPI設定や可視化レポートの例も交え、定量的データに基づいた再現性の高い品質改善サイクルの確立を目指します。
チーム内の技術者のスキルを可視化する「スキルマップ」の重要性について解説します。スキルマップを作成することで、チームとして補強が必要なスキル領域や、特定の技術者に依存しているリスクを把握できます。これにより、組織的に整合の取れた目標設定が可能となり、チーム外への組織活動報告にも活用できます。効果的な運用のため、必要最小限の項目に絞り、継続的に改善していくことが推奨されます。
2025年11月18日に行われたAWS CloudFormationの2つの重要なアップデート、「変更セット作成時の事前検証」と「ドリフト対応変更セットによる設定復元」について解説します。事前検証により、リソース名の競合などをデプロイ前に検知し、開発サイクルを短縮できます。また、ドリフト対応変更セットにより、手動での暫定対応などで発生した設定のドリフトを安全に検出し、元の状態に復元することが可能になりました。
RAGが関連性の低い情報から誤った回答を生成する課題に対し、情報の階層構造を活用した「階層型RAG」を解説します。この手法では、文書の概要をまとめた上位レベルと詳細なデータを持つ下位レベルの2段階で検索を行います。まず上位レベルで関連ドキュメントを絞り込み、次にその範囲内で根拠情報を探すことで、データ編集の手間を省きつつ、より的確な情報を見つけ出し、RAGの回答精度を向上させます。
ゼロからの開発で欠かせない「外部ライブラリ」と「ファイル構造」の理解に焦点を当て、Vue.jsプロジェクト作成の手順に沿って解説します。Vue.jsとNode.jsの役割の違い、npm、Vite、Vue CLIといった主要なツールについて説明し、Viteで作成されたプロジェクトの基本的なファイル構成とその役割を具体的に示します。開発の土台となる知識を固めることの重要性を強調します。
AIやIoTの増加に伴い、多様化する組み込み機器開発において、カスタマイズ性の高いLinuxの活用が増えています。本記事では、特定のハードウェアに最適化されたLinuxディストリビューションを効率的に構築するための業界標準ツールセット「Yoctoプロジェクト」について解説します。その主な特徴や、開発環境を構築する際の基本的な流れを紹介します。
ネットワークにループ接続が発生した際に起こる「ブロードキャストストーム」について解説します。ブロードキャスト通信の基本的な仕組みから、ループによってフレームが増殖し、帯域やCPUリソースを圧迫してネットワーク障害に至るメカニズムを説明。また、意図的にループを構成し、STP(スパニングツリープロトコル)で論理的にループを防ぐ構成や、ループ検知・防止機能付きハブの活用といった対策についても紹介します。
AWS CloudFormation(CFn)において、既存のCFnスタックを別の既存スタックにインポートし、親子関係にする方法をAWS CLIを用いて解説します。CFnテンプレートの編集から、インポート用のファイル作成、変更セットの作成・実行、そしてステータス確認まで、具体的な手順をサンプルコード付きで紹介する内容です。
日本語の文章を単語単位で解析する「形態素解析」について、JavaScriptライブラリ「Kuromoji」を使った方法を解説。サンプルコードを用いて、特定の品詞(名詞)を抽出し、単語の出現頻度を集計する具体的な手順を紹介します。
PC向けCPUの二大巨頭IntelとAMD、そして新勢力Armの特徴を徹底比較。それぞれのアーキテクチャ(CISC/RISC)の設計思想の違いから、得意な処理、代表ブランド、そして現代における進化までを分かりやすく解説します。