2022-05-01から1ヶ月間の記事一覧

セキュリティとアルゴリズム

データ通信時の4つの問題 暗号化 ハイブリット暗号方式 メッセージ認証コード デジタル署名 デジタル証明書 参考 データ通信時の4つの問題 インターネット上でのデータ通信時に起こりうる代表的な問題として下記の4種類がある。 項目 説明 対策 盗聴 伝送路…

RDBMS:関数、述語、CASE式

関数 算術関数 文字列関数 日付関数 変換関数 述語 LIKE述語:文字列の部分一致検索 BETWEEN述語:範囲検索 IS NULL, IS NOT NULL:NULLか非NULLかの判定 IN述語:ORの便利な省略形 EXISTS 述語 CASE式 参考 関数 関数には大きく下記の関数がある。 関数名 …

RDBMS:ビューとサブクエリ

ビューとテーブル ビューの旨味 ビューを使う ビューを作る ビューを実行する ビューを削除する サブクエリ スカラ・サブクエリ 相関サブクエリ 参考 ビューとテーブル テーブルを作る(CREATE TABLE)、検索する(SELECT)、更新する(INSERT,DELETE,UPDATE)を学…

C++:コンストラクタのパターン

要約 解説 参考 要約 オブジェクトのコンストラクタの書き方には2パターンある。 メンバ初期化子で書く コンストラクタ本体の中に書く 両者の違いは、 メンバ初期化子で行うオブジェクト生成が初期化であり、コンストラクタ本体の中に書くものは代入と言う点…

RDBMS:データの更新

INSERT:データの登録 データを登録する 他のテーブルからデータをコピー DELETE:データの削除 テーブルデータを全部削除 テーブルデータを指定して削除 UPDATE:データの更新 全行の値を更新する 条件を指定して更新する トランザクション トランザクション…

RDBMS:検索結果の集約と並び替え

集約関数 COUNT:テーブルのレコード数(行数)を数える SUM:合計値を求める AVG:平均値を求める MAX,MIN:最大値・最小値を求める 重複値を除外して集約関数を用いる GROUP BY:グループに分ける HAVING:集約結果に条件を指定する ORDER BY:並び替え 参考 下記…

RDBMS:SELECT文を理解する

SELECT文の基本 全ての列を出力 特定の列を出力 列に別名をつける 重複行を省く コメント 行を選択する 算術演算 比較演算 NULLで分ける 論理演算子 参考 SELECT文の基本 下記のようなテーブルからデータを選択したい時に使用するのが、SELECT文。 全ての列…

データベースとSQL

データベースの構成 テーブルの構成 SQLの概要 参考 データベースの構成 RDBMS(Relational DataBase Management System)のシステム構成は、一般的にクライアント/サーバ型になっている。データベースに読み書きにするために、クライアントはサーバに対してSQ…

PostgreSQLをコンテナで立てる

PostgreSQLの環境構築 Docker Engine インストール(Debian 向け) Docker Composeを入れる コンテナを立てる PostgreSQLの環境構築 ゼロからはじめるデータベース操作を進めるためにPostgreSQLの環境構築を進めた。本の中ではWindowsの説明があったけど、せ…

nginxで複数サーバを稼働する

nginxの設定ファイルにserverディレクティブを複数立ててあげる。それぞれに設定を書いてあげればよい。 server { listen 443 ssl; server_name goruchan.net; ssl_certificate ***/fullchain.pem; # managed by Certbot ssl_certificate_key ***/privkey.pe…

サーバ証明書の種類

証明書は、サイトを証明するための認証方法の違いによって種類が異なり、3種類ある。 暗号強度に関しては違いはない。 名称 認証方法 費用 DV ドメイン所有のみ証明 0〜数万円 OV ドメイン所有、会社実在性を証明 数万円〜 EV ドメイン所有、会社実在性、電…

Let’s Encryptでサーバ証明書を作って、nginxのサイトをHTTPS対応する

snapdのインストール Let’s Encryptを使うにはACME プロトコルというルールを使用するソフトウェアを使う。Certbot という ACME クライアントを使うことを公式では推奨している。このCertbotを使うためにsnapdをインストールする。 Installing snap on Debia…

サーバ証明書を理解する

サーバ証明書はどんな時に使うのか? HTTP通信とHTTPS通信の違い なぜサーバ証明書が必要? サーバ証明書発行の流れ 参考 サーバ証明書はどんな時に使うのか? サーバ証明書は、HTTPS通信に対応したサイトにする際に必要になる。HTTPS通信は下記のようなサー…

githubでcommit間差分用URLを作る

課題修正時に、commitを複数回やってレビューしてもらう場合、みてもらった時からの差分の見せ方がなんとかならないかなーと思っていたのだけど、やはりありました。 例えば下記のようなcommitAをレビューしてもらい、いくつか修正を行いcommitEで再度レビュ…

アーリーリターン

リーダブルコードに書かれているが、アーリーリターンの美味しさは下記。 メソッドの途中でリターンすることで読むコード数を減らせる 7.5節 関数から早く返す ネストを浅くできる 7.7節 ネストを浅くする 指摘を受けた部分は下記のところ。 def run_wc(file…

オレオレ証明書でnginxのサイトをHttps対応する

オレオレ証明書を発行する nginxの設定ファイルを変更する 参考 オレオレ証明書を発行する 証明書発行の流れは下記のような感じ。 オレオレ証明書では、認証局でやることを自分でやることから『オレオレ』証明書と言われる。 オレオレ証明書の発行の流れは下…

さくらVPSに独自ドメインを設定する

お名前.comでドメインを取得する お名前.comで取得したドメインのネームサーバを切り替える さくらのDNSに登録する 参考 全体的な作業手順のイメージは下記のような感じ。 お名前.comでドメインを取得する https://www.onamae.com/ にアクセスして、好きなド…

nginxで個人ページを公開する

Beginner’s Guideを読んでいてなんとなく感じたのは、設定ファイルにも種類があるっぽいと感じた。 nginxは、設定ファイルに記述されたディレクティブによって制御されるモジュールで構成されてる。ディレクティブは2種類に分けられる。 種類 説明 シンプル…