mnagaaのメモ

技術的なことはこのブログで書きます

通信方式 ~vol.3~ (HTTP1.1)

これまでに、WebSocket, Socketなどについて整理してきたので、今回はHTTP(/1.1)について整理する。バージョン2以降は次の記事にします。 mnagaa.hatenablog.com HTTP HTTP(HyperText Transfer Protocol)は、ウェブ上でデータをやり取りするためのプロトコ…

通信方式 ~vol.2~ (Socket通信について)

前回の記事でWebSocketについての解説をしたが、先にSocket通信についての説明をしておくべきだと思ったので、今回はSocket通信について書く。 mnagaa.hatenablog.com そもそもソケットとは? ネットワーク通信におけるエンドポイントを定義する抽象的な概念…

通信方式 ~vol.1~ (WebSocket)

最近自分が作りたいものがあり、それに必要な技術などを調査している。調査したことの整理のために、何回か分けてアウトプットする。今回はWebSocketについて WebSocketの概要 クライアントとサーバー間で双方向通信をリアルタイムで行うためのプロトコル HT…

チームトポロジー、SRE、Platform Engineering

チームトポロジーとは? ソフトウェア開発およびIT組織におけるチーム構成と運用モデルのガイドライン ソフトウェア開発と運用において、効果的なチーム構成が成功に不可欠なものであるということが前提となっている チームの種類、責任、相互作用のパターン…

zodについて

Zod TypeScriptとReactアプリケーションでデータバリデーションと型安全性を確保するためのライブラリ Zodはスキーマベースのバリデーションライブラリで、定義されたスキーマに従ってデータを検証し、型推論もサポートする zod.dev スキーマの定義 Zodを使…

golangci-lintとRenovate

たまにはGo関係のことも書くかということで書く。 golangci-lintについて github.com golangci-lintを使って、CIでコードスタイルや静的解析を行うことで、コード品質を高めている。これにより、プロジェクト全体のコードの一貫性と品質が向上する。 CIにはG…

データストア #2 ~Redis~

【導入】Redis (Remote Dictionary Server) 高速なインメモリデータストア 用途・ユースケース キャッシュ メッセージブローカー セッション管理 リアルタイム分析 ランキングシステム 特徴 文字列、リスト、セット、ソートセット、ハッシュ、ビットマップ、…

データストア #1 ~インメモリキャッシュ序章~

前書き トラフィックが多い広告サービス運用経験から、経験をまとめるためにインメモリキャッシュについて書く。 この記事は、概論的な内容である。 インメモリキャッシュ 高速アクセスを提供するためにメモリ内にデータを保存する仕組み。 ディスクI/Oを伴…

データベース #3 ~データ格納~

DBMS(データファイル・インデックスファイル) データファイルとインデックスファイルは、DBMS(データベース管理システム)の重要な構成要素であり、データの効率的な格納と高速な検索を実現するために使用される。 データファイル 役割 データの格納: デ…

データベース #2 ~行/列志向とか圧縮とかの周辺~

行/列志向とか圧縮とかその辺の話 列指向データベース(Columnar Database)と行指向データベース(Row-Oriented Database)について書いていく。 とりあえず、列?行?という感じな人もいると思うが、どういうまとまりでデータを保存するか?というところの…

データベース #1 ~基礎編~

データベースについて 場合によっての分類 場合によっては、以下のように分類されることがある。昨今はOLTPもOLAPのように動作タイプを変更できるようにもなっているので、詳しくはDBごとの更新を確認してほしい。 1. OLTP(Online Transaction Processing)…

ソフトウェア原理原則

ソフトウェア開発は難しい ソフトウェア開発は難しい。後から新機能が追加されるのは当たりまえ。ユーザー数が増えるのは当たり前。 それを理解した上で、開発を優れたソフトウェアを作り続ける。 次のことを頭に入れておく。知らなくても良い。少し意識する…