管理人

SEとして働く「分かる君」がつ運営するサイトです。 ITの難しい用語や、仕事で感じた事などを中心に"わかりやすさ"を意識して記事にしています。少しでも共感や参考にしていただける人がいたら嬉しいです。

2024/6/12

【Java】Amazon S3からファイルをダウンロードする方法

はじめに Java SDK(AWS SDK for Java 1.11)でAmazon S3からファイルをダウンロードする方法を紹介します。 事前準備 Amazon S3を使うには「aws-java-sdk-s3」を「pom.xml」もしくは「build.gradle」に追加します。今回の例ではpom.xmlを使用します。 <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-s ...

2024/11/10

Amazon S3へファイルをアップロードする方法(Java SDK)

はじめに Java用のSDK(AWS SDK for Java 1.11)でAmazon S3にファイルをアップロードする方法を紹介します。 事前準備 Amazon S3を使うには、aws-java-sdk-s3をpom.xml もしくは build.gradleに追加します。※今回の例ではpom.xmlを使用します。 <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk ...

2020/8/19

【Amazon Cognito】IDプールの使い方(Java SDK)

IDプールとは Amazon Cognitoには、ユーザープールとIDプールが存在します。 ユーザープールでは、認証(ログイン)やユーザー情報、グループの管理などを行うことができます。 IDプールでは、ユーザーのアクセスコントール(S3など利用するAWSサービスを選べる)をすることができ、AWS 認証情報(アクセスキーやシークレットキー)を一時的に生成します。そして、生成されたAWS認証情報を使い、S3などの他のAWSサービスにアクセスすることができます。 本記事では、Java用のSDK(AWS SDK ...

2020/8/19

【Java】Amazon Cognitoのユーザープールを使用する方法

はじめに(前準備) Java用のSDK(AWS SDK for Java 1.11)でAmazon Cognitoのユーザープールを使用する方法を紹介します。 前準備として、AWS マネジメントコンソールからユーザープールを作成する必要があります。※本記事では、ユーザープールの作成は省略しています。 pom.xml まずはAWSのJDKを使う設定をします。pomの場合は、次の内容を追加してユーザープール用のSDKを使用できるようにします。 <dependency> <groupId&gt ...

2024/12/11

アドレス指定方式とは | 分かりやすく図解で解説

アドレス指定方式とは アドレス指定方式とは、CPUが命令を実行する際、対象となるデータの在りかを指定する方法のことです。 CPUが実行する命令は下記の図のように「命令部」と「オペランド部(アドレス部)」に分かれています。 ※命令はコンピュータが理解できる機械語(0と1で構成された2進数の文字列)形式。 命令部にはコンピュータへの命令が入り、オペランド部には対象データの在りかを示す情報が入ります。 このオペランド部には様々な指定の仕方があります。例えば 直接 値を格納したり、メモリのアドレスを格納したりと様 ...

2024/5/27

エンディアンとは(ビッグエンディアンとリトルエンディアン)

バイトオーダ(エンディアン)とは バイトオーダ(別名:エンディアン)とは、複数のバイトで構成されるデータを取り扱うときに、どのような順序で書き込むか(もしくは読み込むか)を表す順序のことです。 メモリ上にデータを記録する際や、バイト単位でデータのやり取りを行う際に使用します。 メモリは 1バイトごとにアドレスが割り当てられており、メモリの読み書きも1バイト単位で行われます。(下記表の通り、データは1バイト単位で管理されている。※データは16進数で表記) アドレス データ 1000 01 1001 02 1 ...

2022/12/25

Shift_JISとは

Shift_JIS Shift_JISってなに? Shift_JISとは、コンピュータ上で日本語を含む文字列を表現するために用いられる文字コードです。 文字コードとは、「0」と「1」の集まりしか理解できないコンピュータに「0」と「1」以外の文字を表現させるためのものです。 コンピュータが理解できる「0」と「1」の集まりと、文字の対応表を作り、コンピュータはその対応表を参照することで、様々な文字を表現しています。   Shift_JISは、1982年に日米のコンピュータ業界数社が共同で考案したとさ ...

2020/8/23

Spring BootでWebSocketを簡単に実装する方法

Spring BootでWebSocket(STOMPなし)の実装 pom.xml pom.xmlに「spring-boot-starter-websocket」を追加します。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> WebS ...

2022/5/13

ASCIIコード(アスキーコード)とは

ASCIIコード(アスキーコード) 文字コードとは コンピュータが扱う最小単位はビット(bit)と呼ばれる「0」と「1」の数値です。そして、ある程度 扱いやすいように、8ビットをひとまとまりにしたバイト(byte)という単位が、コンピュータでは主に用いられています。 このように、コンピュータは「0」と「1」の集まりしか理解できません。コンピュータには「A」という文字は理解できないのです。 そこで、コンピュータに「0」と「1」以外の文字を表現させるためのものが文字コードです。 文字コードは、コンピュータが理 ...

2024/5/23

Base64とは

Base64って何? Base64とは、64種類の文字(アルファベット「 a~z , A~Z 」と数字「 0~9 」、一部の記号「 + と / 」)と末尾の記号「 = 」を用いて一定の規則に基づきデータを変換するエンコード方式(データを他の形式に変換する際の方式)の一つです。 上記図はBase64の変換イメージです。 変換前のデータをBase64でエンコード(変換)すると、Base64の文字列に変換できます。そして、変換したBase64の文字列をデコード(元に戻す)すると、変換前のデータに戻すことができま ...

2024/5/23

バイナリデータとは

バイナリデータ(binary data) バイナリデータとは?テキストデータとの違い バイナリデータ(binary data)とは、コンピュータが理解しやすいデータ(2進数で表現されたデータ)であり、テキストデータ以外のデータのことです。 バイナリデータは、コンピュータが直接的に処理することができるようになっているため、人が読んでも理解することができません。それに対してテキストデータは、人が理解できる内容のデータです。 上記図は、バイナリデータ と テキストデータのイメージ図です。 バイナリデータって具体 ...

2024/5/27

コンポーネントとは

コンポーネント(component) コンポーネントってなに? コンポーネントは「部品」「成分」「構成要素」などの意味を持つ言葉です。 ITの分野では、ソフトウェアやシステムを構成する部品のことです。ソフトウェア開発では、機能を部品化して開発することがよくあります。 この部品化した「プログラム部品」のことを コンポーネントと呼びます。 コンポーネントは、特定の機能を単体で完結しているが、単体では使用せず、他のプログラムから呼び出したり、他のプログラムと連結したりして使用します。 プログラムをコンポーネント ...

2024/5/29

ライブラリとは

ライブラリ(library) ライブラリってなに? ライブラリ(library)とは、汎用性の高い複数のプログラムを他のプログラムから呼び出して利用できるように部品化したものです。 ライブラリ単体では、動作することはできず(実行ファイルではない)、他のプログラムに機能を提供するコードの集まりです。 上記はライブラリのイメージ図です。ライブラリの中には複数の機能(汎用性の高いプログラム)が入っており、ライブラリを使う側(上記例ではAシステム)は、その機能を呼び出すだけで簡単に使うことができます。 ライブラリ ...

2024/5/23

モジュールとは?ライブラリ、コンポーネントとの違い

モジュール(module) ソフトウェア開発の現場にいると「モジュール」という言葉をよく耳にします。「モジュール」「ライブラリ」「コンポーネント」など、当たり前のように使われている言葉です。 エンジニア同士では、当たり前のように使われている言葉ですが、実際は「モジュールって何?」と検索エンジンで調べたことがあるエンジニアも多いのではないでしょうか。 本記事では、モジュールについて紹介していきます。 モジュールって何? モジュールとは、部品を意味する言葉であり、部品単独でも動作することは可能だが、他の部品と ...

2024/5/23

APIとインタフェースの違い

APIとインタフェースの違いとは ソフトウェア開発に携わっているとよく耳にする言葉である「API」と「インタフェース」。設計書にも「API仕様書」と「インタフェース仕様書」があり、同じような意味の言葉で使用されています。 エンジニア同士では、当たり前のように使われている言葉ですが、実際は 「APIってどんな意味?」 「インタフェースってどんな意味?」 「APIとインフェースはどう違うの?」 と疑問を持ち、1度は検索エンジンで調べたことがある人も多いのではないでしょうか。 本記事では、そんな「API」と「イ ...

2024/12/10

APIとは | 分かりやすく図解で解説

API(Application Programming Interface) ソフトウェア開発に携わっていると「API」という言葉をよく耳にします。 「API」「インタフェース」「ライブラリ」「モジュール」「コンポーネント」など、ソフトウェア開発の現場では、当たり前のように使われている言葉です。 エンジニア同士では 当たり前のように使われている言葉ですが、実際は「APIってどんな意味?」と疑問に思い、検索エンジンで調べているエンジニアは沢山いるのではないでしょうか。 本記事では、そんな「API」について分 ...

2022/12/25

インタフェースとは

インタフェース(interface) インタフェースとは、ものごとの境界となる部分(接点)を表す言葉です。IF や I/Fと略されて表記されることもあります。 接点、境界面などの意味を持つ英単語であり、物と物を接続するために必要な部分をインタフェースと呼んでいます。 インタフェースは様々な物に使用される言葉であり、主に「ハードウェアインタフェース」「ソフトウェアインタフェース」「ユーザインタフェース」に分けられます。 ハードウェアインタフェース ハードウェアインタフェースとは、コンピュータなどの情報機器と ...

2022/12/25

ボトムアップテストとは

結合テストの種類 ソフトウェア開発では、各工程にあわせて様々な試験が存在します。 モジュール(機能)単体の動作を確認する「単体テスト」、そして 複数のモジュールを繋ぎ合わせて実施する「結合テスト」、最後に全体を確認する「システムテスト(総合テスト)」などがあります。   複数のモジュールを繋ぎ合わせて検証する「結合テスト」には、主に次のようなテスト手法があります。 トップダウンテスト ボトムアップテスト サンドイッチテスト(折衷テスト) ビッグバンテスト 結合テストは、複数のモジュールを繋ぎ合わ ...

2022/12/25

トップダウンテストとは

トップダウンテスト(top down test) トップダウンテストってなに? トップダウンテストとは、ソフトウェア開発のテスト手法の一つで、上位のモジュール(機能単体)から順に検証する手法です。 結合テストの工程でモジュール間のインタフェースを確認をするために実施します。 複数のモジュールで構成されているソフトウェアの場合、複数のモジュールを一気に繋ぎ合わせて検証すると、問題の発生箇所が特定しにくくなる可能性があります。そこで、すべてを一気に繋ぎ合わせるのではなく、少しずつ繋ぎ合わせて検証していきます。 ...

2022/12/25

「ブラックボックステスト」と「ホワイトボックステスト」の違い

「ブラックボックステスト」と「ホワイトボックステスト」の違い 「ブラックボックステスト」と「ホワイトボックステスト」って何? 「ブラックボックステスト」と「ホワイトボックステスト」は「単体テスト」で実施されるテストのことです。 ソフトウェア開発では、機能(モジュール)単体の検証を行う「単体テスト」、複数の機能(モジュール)を繋ぎ合わせて検証を行う「結合テスト」、そして システム全体の検証を行う「システムテスト(総合テスト)」が存在します。 ブラックボックステストとは ブラックボックステストとは、内部構造を ...