sone_s3508 wrote a new post, ClickHouseで構築する高速分析基盤:OLAPワークロードの最適解 6か月 1週間前
なぜ今ClickHouseなのか大量のデータを高速に分析したい——この要求は年々高まる一方だ。筆者は過去にBigQuery、Redshift、Prestoなどさまざまな分析基盤を構築・運用してきたが、ClickHouseは特にコストパフォーマンスとクエリ速度の面で際立った選択肢となっている。ClickHouseはYandex社が開発したオープンソースの列指向データベースだ。OLAPワークロードに特化して設計されており、数十億行[…]
sone_s3508 wrote a new post, CSS Container Queriesで実現するコンポーネントベースのレスポンシブ 6か月 2週間前
メディアクエリの限界とContainer Queriesの登場フロントエンド開発者と[…]
sone_s3508 wrote a new post, 強化学習の基礎:Q学習からDQNまでをPythonで実装する 6か月 3週間前
強化学習とは何か強化学習(Reinforcement Learning)は、エージェントが環境と相互作用[…]
sone_s3508 wrote a new post, Server Componentsの深層理解:RSCストリーミングの仕組みと活用 6か月 3週間前
React Server Componentsの本質とはReact Server Component[…]
sone_s3508 wrote a new post, モバイルアプリのセキュリティ対策:証明書ピンニングとデータ暗号化 7か月前
モバイルアプリ特有のセキュリティリスクモバイルアプリケーションは、Webアプリケーションとは異なるセキュリティ上の課題を抱えています。端末がユーザーの手元にあるため、中間者攻撃、リバースエンジニアリング、ローカルデータの漏洩といったリスクに直面します。特に金融系アプリやヘルスケアアプリなど、機密性の高いデータを扱う場合は、堅牢なセキュリティ対策が不可欠です。本記事では、モバイルアプリセキュリティの中でも特に重要な「証明書ピンニ[…]
sone_s3508 wrote a new post, APIセキュリティの設計原則:認証・認可・レート制限の実装 7か月 1週間前
APIセキュリティが重要な理由近年、APIを標的としたサイバー攻撃は急増しています。OWASP API Security Top 10によると、認証の不備、認可の欠陥、レート制限の不足が上位に挙げられており、これらは多くのインシデントの直接的な原因となっています。本記事で[…]
sone_s3508 wrote a new post, Vite 6で始める高速フロントエンド開発環境の構築 7か月 1週間前
Vite[…]
sone_s3508 wrote a new post, SwiftUIのナビゲーション設計:NavigationStackの実践パターン 7か月 2週間前
NavigationStackが解決する課題iOS 16で導入されたNavig[…]
sone_s3508 wrote a new post, モバイルアプリのオフラインファースト設計:ローカルDBとSync戦略 7か月 3週間前
なぜオフラインファーストが重要なのかモバイルアプリの利用シーンは、常に安定したネットワーク接続があるとは限りません。地下鉄での移動中、山間部での作業、海外旅行中のローミング節約。あるいは単純にサーバーが一時的にダウンしている場面もあります。オフラインファースト設計とは、ネットワーク接続がない状態でもアプリが正常に動作し、接続が復帰した際にデータを同期する設計思想です。筆者がフィールドワーカー向けの業務アプリを開発した際、この設[…]
sone_s3508 wrote a new post, SurrealDBで始めるマルチモデルデータベース:SQL・グラフ・ドキュメントの統合 7か月 3週間前
マルチモデルデータベースとは従来のデータベース選定では、リレーショナルデータにはPostgreSQL、ドキュメントストアにはMongoDB、グラフデータにはNeo4jといった具合に、データモデルごとに異なるデータベースを採用するのが一般的でした。しかし、複数のデータベースを運用するオーバーヘッドは無視できません。スキーマの同期、データの整合性維持、インフラコスト、そして学習コスト。これらの課題を解決しようとするのがマルチモデル[…]
sone_s3508 wrote a new post, Kotlin Multiplatformの現状と展望:共有ロジックの設計パターン 8か月前
Kotlin[…]
sone_s3508 wrote a new post, データベースシャーディングの設計原則:水平分割の戦略と実装 8か月 1週間前
データベースシャーディングとは何かアプリケーションの成長に伴い、単一のデータベースサーバーでは処理しきれないデータ量やトラフィックに直面する場面が増えてきます。そこで登場するのがシャーディング(水平分割)という手法です。シャーディングとは、データを複数のデータベースインスタンスに分散配置することで、個々のサーバーにかかる負荷を軽減し、システム全体のスケーラビリティを確保する設計パターンです。筆者はこれまで複数のプロジェクトでシ[…]
sone_s3508 wrote a new post, SwiftUIとCombineで実現するリアクティブプログラミング入門 8か月 1週間前
SwiftUIとCombineがiOS開発を変えたAppleが2019年に発表したSwiftUIとCombineは、iOSアプリ開発のパラダイムを根本的に変えました。従来のUIKitによる命令的UIプログラミングから、SwiftUIの宣言的UIプログラミングへ。そしてコールバックやデリゲートパターンが中心だった非同期処理から、Combineによるリアクティブストリーム処理へ。この2つのフレームワークを組み合わせることで、より直[…]
sone_s3508 wrote a new post, WebSocketとServer-Sent Events:リアルタイム通信技術の選択指針 8か月 2週間前
リアルタイム通信が当たり前の時代へチャットアプリ、株価のライブ更新、SNSの通知、共同編集ツール。現代のWebアプリケーションではリアルタイム通信が当たり前になっています。従来のHTTPリクエスト・レスポンスモデルでは、クライアントが能動的にサーバーに問い合わせない限りデータを取得できませんが、リアルタイム通信技術を使えば、サーバー側からクライアントにデータをプッシュできます。リアルタイム通信の代表的な技術としてWebSock[…]
sone_s3508 wrote a new post, クラウドコスト管理の実践:FinOpsフレームワーク導入ガイド 8か月 3週間前
クラウドコスト問題は「技術」ではなく「文化」の問題クラウドの請求書を見て驚いた経験があるエンジニアは少なくないでしょう。オンプレミスからクラウドへの移行が進む中、多くの企業がクラウドコストの急膨張という課題に直面しています。従量課金制というクラウドの特性上、適切に管理しなければコストは際限なく増加します。FinOps(Financial Operations)は、この課題に対する体系的なアプローチを提供するフレームワークです。[…]
sone_s3508 wrote a new post, モバイルアプリのCI/CD:Fastlaneで自動化するビルドとリリース 8か月 3週間前
モバイルアプリのCI/CDが求められる背景モバイルアプリの開発では、ビルド、テスト、署名、ストアへのアップロードといった一連のリリース作業が複雑で時間がかかります。Webアプリケーションと異なり、コード署名やProvisioning Profileの管理、App Store ConnectやGoogle Play Consoleとの連携など、モバイル特有のハードルが存在します。こうした煩雑な作業を自動化するツールとして、Fas[…]
sone_s3508 wrote a new post, エンジニア採用面接の設計:技術力を正しく評価するための質問設計 8か月 4週間前
なぜ採用面接の「質問設計」が重要なのかエンジニア採用において、技術力を正しく評価することは組織の成長に直結する最重要課題の一つです。しかし、多くの企業では面接官の経験や勘に頼った属人的な面接が行われており、結果として採用のミスマッチが頻発しています。筆者はこれまで100人以上のエンジニア採用面接に関わってきましたが、「質問の設計」を体系的に行うようになってから、入社後のパフォーマンス予測精度が大幅に向上しました。本記事では、そ[…]
sone_s3508 wrote a new post, モバイルアプリのA/Bテスト戦略:Firebase Remote Configの活用 9か月前
モバイルアプリにおけるA/Bテストの重要性Webアプリケーションと比べて、モバイルアプリのA/Bテストには特有の難しさがあります。アプリのリリースにはストア審査が必要でして、ユーザーが必ず最新版にアップデートしてくれるとは限りません。そのため、サーバーサイドで動的にUIや機能を切り替える仕組みが不可欠です。Firebase Remote Configは、Googleが提供するこの課題への解答です。アプリを再デプロイすることなく[…]
sone_s3508 wrote a new post, SQLアンチパターン:やりがちなDB設計の落とし穴と対策 9か月前
なぜDB設計のアンチパターンは繰り返されるのかデータベース設計は、アプリケーション開発の中で最も修正コストが高い領域の1つです。テーブル設計の誤りは後から発覚することが多く、データ移行を伴う修正は大きなリスクを伴います。筆者は10年以上のキャリアの中で、同じようなアンチパターンが異なるプロジェクトで繰り返し発生するのを目撃してきました。本記事では、特に頻出するSQLアンチパターンを取り上げ、具体的なコード例とともに問題点と解決[…]
sone_s3508 wrote a new post, 暗号技術の最新動向:ポスト量子暗号への移行準備ガイド 9か月 1週間前
量子コンピュータが暗号を破る日に備える量子コンピュータの実用化が近づくにつれ、現在広く使われているRSAや楕円曲線暗号が無力化されるリスクが現実味を帯びてきました。2024年、NISTはポスト量子暗号(PQC)の標準化を正式に完了し、業界全体が移行準備を加速させています。「まだ先の話だろう」と考えているエンジニアも多いかもしれませんが、暗号の移行には数年単位の時間がかかります。今から準備を始めることが重要です。なぜ今、ポスト量[…]