作記録

記憶代わり

2020-01-01から1年間の記事一覧

【MyBatis】 Invalid bound statement(not found)のエラーの解決

version OpenJDK 11.0.9 Spring Boot 2.3.4.RELEASE Gradle 6.6.1 MyBatis Spring-Boot-Starter 2.1.4 発生したエラー概要 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): sample-project.infrastracture.datasource.sa…

SDKMANでJavaのversionを切り替えた後、gradle.build でNoClassDefFoundErrorが起こるようになった。

解決の結論 defaultを切り替えていた。 useを使って切り替わるのはConsole内のみだった。 元のversionに切り替えたいときにsdk default java 元のversion とすることで問題が解決した。 経緯 元のJavaのversionが 11.0.9.hs-adpt だった。 別のJavaプロジェ…

オブジェクトをまとめるオブジェクトについて

2021/08/05更新 この記事コンテキストでは、1個以上のオブジェクトをインスタンス変数に持つオブジェクトを便宜的に集約という表現をする。 集約の分類 下記のように分類すると良い気がしている。 ①プログラムがビジネスルールの計算・判断に利用するオブジ…

git logのalias設定

~/.gitconfigファイルに下記のaliasを定義 [alias] lg= log --graph --pretty=format:'%C(yellow)%h %C(cyan ul)%an%C(reset) %C(green)[%cd] %C(auto)%s %d' --date=format:'%Y/%m/%d %H:%M:%S'

【RDRA2.0】全体像について

結論 最終的な全体像では、ビジネスルール、情報、状態がハブとなってユースケースに繋がる。 全体像を作るまでの手順 システム価値レイヤーの中身をモデリングする。 システム外部環境レイヤーの中身をモデリングする。 システム境界レイヤーの中身をモデリ…

【RDRA2.0】システムレイヤーについて

結論 システムレイヤーで、システムで扱う情報とその状態をモデリングする。 情報はユースケースで抽出される。 また、状態は情報から抽出される。 参考文献 RDRA2.0

【RDRA2.0】システム境界レイヤーについて

結論 システム境界レイヤーで、システム外部の動作とシステムの繋ぎ目をモデリングする。 流れ ビジネスユースケース図でモデリングした細分化された動作(ビジネスユースケース)1つにつき1つのユースケース複合図を作成する。 ①細分化された動作(ビジネ…

【AWS】CloudWatch Logsを利用してログを確認する手順

AWS

概要 EC2インスタンス内に出力されたログをCloudWatch Logsの画面から確認する手順を記録します。 目的 下記画像のように、CloudWatch Logs画面でEC2内のログを見る事が出来るようにする事。 手順 IAMを利用して、CloudWatch Logsによりログを見たいEC2(以…

n 対 n のテーブル問題

DB

n対nのテーブルの問題 n対nのテーブルの問題は、主キー(Primary key)が重複してしまう事です。 テーブルの n対n についての登録後のテーブルの具体例に記載の通り、n 対 n のテーブルはプライマリキーが重複しています。 解決法 上記の問題の解決法は、中…

テーブルの n 対 n について

n対nの例 ●概要図 上記の例がn対nのテーブルの関連である。 ●前提 社員は複数の支店に所属できる。 ●社員テーブルから見た支店テーブル 社員テーブルが1つのレコードを登録した場合、社員ID(とその他の属性)が登録される。 前提の通り社員は複数の支店に…

テーブルの 1対n について

DB

関連(Relationship)とは 関連(Relationship)とは、1つのテーブルのPrimary Keyが他のテーブルのカラムになっている事を指す。 関連の種類 関連には、1対1、 1対n、n対n の関連がある。 1対1になる場合は、そのテーブルは1つに出来る可能性が高い。 1対…

正規化(第1正規形から第3正規形)について

DB

正規化の目的 正規化の目的は、データの冗長性を排除すること。 データの冗長性を排除することにより、データの一貫性が保たれる。 例えば、Aテーブルの名前カラムに田中というデータが記録されており、Bテーブルの名前カラムに田中というデータが記録されて…

主キー(primary key)とは

DB

主キー(primary key)とは 主キー(primary key)とは、1つのカラム(列)または2つ以上のカラム(列)の組み合わせのこと。 主キーを指定すると、1行 かつ 一意のレコードが特定できるようにしなければならない。 主キーは、Nullが含まれてはならない。…

【Nginx】Nginxを起動する手順

本記事より下記の記事の方が分かりやすいかも jtnsaku.hatenablog.com 以下、一応本記事 Nginxを起動する手順 AWSのEC2により、Amazon Linux2 OS上での操作を想定しています。 Nginxをビルドする為に必要なライブラリをインストールする。 ① GCC Cコンパイラ…

リバースプロキシ

Nginxにおけるリバースプロキシとは リバースプロキシとは、返却の代理サーバーの事である。 リバースプロキシによるリクエスト、レスポンスの手順は下記の通りである。 クライアントが、Nginxなどのサーバー(以下、「リバースプロキシ」と言う。)にリクエ…

【AWS】WEBサーバーの冗長化の概要

AWS

概要図 AWSを利用したWEBサーバーの冗長化手順 【AWS】ネットワークの全体概要の構築手順を参考にして、作成済みのVPC内の使用していないAvailabilityZoneにパブリックサブネットを作成する。 例: ap-northeast-1c また、サブネットのIPv4 アドレスの範囲を…

【AWS】CloudFrontについて

概要図 CloudFrontを利用したCDN(Content Delivery Network)の構築手順 AWS Certificate Managerを利用して、ドメインとサブドメインのSSL証明書を発行する。 例: j-t-n.com, *.j-t-n.com Route53のCNAMEレコードに確認する為の値を追加する。 CloudFront…

【AWS】DBサーバーの概要

概要図 下記の概要図の Public subnet とは、【AWS】ネットワークの全体概要の概要図で示している Public subnet を示しております。 RDSを利用したDBサーバーの構築手順 RDSの下記項目をそれぞれ作成する。 サブネットグループ...冗長化するなどの目的で複…

【AWS】DNSとRoute53について

AWS

DNS概要図 DNSとRoute53について Route53は、上記の概要図の j-t-n.jp DNS Server のサービスを提供します。

【AWS】WEBサーバーの概要

概要図 下記の概要図の Public subnet とは、【AWS】ネットワークの全体概要の概要図で示している Public subnet を示しております。 EC2を利用したWEBサーバーの構築手順 EC2を作成します。 その際に、自動割り当てパブリックIPを有効にします。 その際に、…

【AWS】ネットワークの全体概要

AWS

概要図 僕が認識しているAWSネットワークを構築する際の基本となる概要図は下記です。 AWSを利用したネットワークの構築手順 利用したいリージョンを選択します。 VPCを作成します。 その際にプライベートIPv4 アドレスの範囲を割り当てます。 例: 10.0.0.0/…

AWSアカウントを作成後、最初にやった方が良い事

請求の設定 作成したアカウントのクレデンシャルを利用してログインする。 ヘッダーメニューでアカウント名を押下しマイ請求ダッシュボードに飛ぶ。 ナビゲーションメニューの設定項目からBillingの設定を選択する。 下記の請求設定にチェックを入れる。 E …

【Kotlin】Collections系の型をMap型に変換する

概要 プロパティや表などを表現する際に、Map型で表現すると便利だと思います。 Collections系の型をMap型に変換する際によく利用するメソッドが associate メソッドです。 associate 既にListなどのCollection系のオブジェクトが存在する際に、そのList型の…

Spring Frameworkを利用したPOST HTTP Requestの実装例

本記事で利用する技術のVersion Open JDK 11.0.9 Spring Framework Boot 2.5.3 Spring Boot Starter Web 2.5.3 Spring Boot Starter Validation 2.5.3 Spring Boot Starter Thymeleaf 2.5.3 実装例 1. Controller @Controller @RequestMapping("/group") pub…

Thymeleaf fragmentについて

fragmentの設定 HTMLの属性に th: fragment="fragment name" という形式で記述する。 右辺には任意の fragment name を記述する。 下記は、fragment name を header にとして記述した例である。 header.html <div th:fragment="header"> <nav class="navbar" role="navigation" aria-label="main navigation"> <h1 class="navbar-brand"> さんぷろ </h1> </nav> </div> flagmentの呼…

システムに変更を加える際に大変な事とその解決策

結論 僕はシステムに変更を加える際に大変な事として下記の2つを認識しています。 変更を加えるべき全ての実装箇所の特定 変更を加えた場合に発生する他の機能への影響の収縮 1番目の解決策 ビジネスルールをドメインオブジェクトに表現し、実装する システ…

クラスについて

定義 僕はクラスを下記のように定義しています。 クラスとは、データとそのデータを使った操作を閉じ込める機能。 僕の定義するクラスの機能とは外れた使い方が下記のような使い方です。 ●●TableRecord...テーブルのレコードの内容をクラスに羅列しただけの…

値オブジェクトについて

汎用的な値オブジェクトについて typeに属する汎用的な値オブジェクトはロジックを1箇所にまとめられて便利だと思いました。 (例)Date型やAmount型など typeに属する汎用的な値オブジェクトとして作るのは、おおよそロジックに変更がないと分かりきったも…

PORT番号について

定義 僕はポートを下記のように認識しています。 ポートとは、コンピュータのプログラムを一意にする番号を指す。 IPアドレスを住所に例えるのであれば、ポートは住所上に存在するマンションの部屋番号に例えられる。 PORT確認 sudo lsof -i -n -P 上記コマ…

コトを記録するテーブルについて

結論 僕は、基本的にコトを記録するテーブルを作るようにするテーブル設計を凄く良いと思っています。 なぜなら関心事が分離されるようになり、分かりやすくなると思うからです。 一方、コトや状態や情報が一緒にテーブルを作ってしまう設計は良くないと思っ…