<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ビズドットオンライン</title>
	<atom:link href="https://it-biz.online/feed/" rel="self" type="application/rss+xml" />
	<link>https://it-biz.online</link>
	<description></description>
	<lastBuildDate>Thu, 07 May 2026 10:54:07 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://it-biz.online/wp-content/uploads/2019/10/cropped-4a332f05ade4ac7bb3c46c472cb5eac8-32x32.png</url>
	<title>ビズドットオンライン</title>
	<link>https://it-biz.online</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【JavaScript】Promiseとは？then・catch・finallyの使い方を初心者向けに解説</title>
		<link>https://it-biz.online/web-design/js/javascript-promise/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Thu, 07 May 2026 10:54:05 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10771</guid>

					<description><![CDATA[JavaScriptのPromiseとは何か、非同期処理との関係、then・catch・finally、async/awaitとの違いを初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p>JavaScriptのPromiseとは、<strong><span class="marker-under">すぐには終わらない処理の結果を、あとで受け取るための仕組み</span></strong>です。</p>



<p>たとえば、サーバーからデータを取得する処理は、クリックした瞬間に結果が返ってくるとは限りません。通信には時間がかかりますし、失敗することもあります。</p>



<p>Promiseを使うと、そのような非同期処理に対して「成功したらこの処理」「失敗したらこの処理」「最後にこの処理」という形で、後続の処理を整理できます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>Promiseは「値そのもの」ではありません。まだ終わっていない処理の結果を、あとで受け取るための箱のようなものです。</p>
  </div>
</div>



<p>この記事では、Promiseとは何か、<code>then</code>・<code>catch</code>・<code>finally</code>の使い方、<code>fetch</code>や<code>async/await</code>との関係を初心者向けに順番に解説します。</p>



<h2 class="wp-block-heading">まず結論：Promiseは非同期処理の結果をあとで受け取る仕組み</h2>



<p>Promiseを最初に理解するときは、次のように考えると分かりやすいです。</p>



<pre class="wp-block-code"><code>非同期処理を始める
  ↓
Promiseが返る
  ↓
成功したら then
失敗したら catch
最後に finally</code></pre>



<p>Promiseは、処理が終わる前に「将来の結果を表すオブジェクト」として返されます。MDNでも、Promiseは非同期処理の最終的な完了または失敗と、その結果の値を表すオブジェクトとして説明されています。</p>



<p>つまり、Promiseは「通信結果そのもの」ではなく、<strong>通信結果をあとで受け取るための窓口</strong>です。</p>



<h2 class="wp-block-heading">Promiseが必要になる理由</h2>



<p>JavaScriptでは、ブラウザ操作や通信処理など、すぐに終わらない処理がよく出てきます。代表例は、APIからデータを取得する<code>fetch</code>です。</p>



<p>もし通信が終わるまで画面全体が止まってしまうと、ユーザーは何も操作できません。そのためJavaScriptでは、時間がかかる処理を待っている間も、他の処理を進められるように非同期処理を使います。</p>



<p>ただし、非同期処理には問題があります。結果がいつ返るか分からないため、普通の変数代入の感覚で書くと、まだ結果がない状態を読んでしまいます。</p>



<p>そこでPromiseを使い、結果が返ってきたあとに実行する処理を登録します。</p>



<h2 class="wp-block-heading">Promiseの3つの状態</h2>



<p>Promiseには、処理の進み具合を表す状態があります。最初は細かい仕様名よりも、次の3つを押さえれば十分です。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>状態</th><th>意味</th><th>初心者向けの見方</th></tr></thead><tbody><tr><td>pending</td><td>まだ結果が出ていない</td><td>処理中</td></tr><tr><td>fulfilled</td><td>成功して結果が得られた</td><td>成功した</td></tr><tr><td>rejected</td><td>失敗して理由が返った</td><td>失敗した</td></tr></tbody></table></div></figure>



<p>Promiseは最初は<code>pending</code>です。その後、成功すれば<code>fulfilled</code>、失敗すれば<code>rejected</code>になります。</p>



<p>この図では、Promiseを「非同期処理の結果をあとで受け取る流れ」として見てください。<code>then</code>は成功、<code>catch</code>は失敗、<code>finally</code>は最後の後片付けに対応します。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/javascript-promise-flow-v2.png" alt="JavaScriptのPromiseが非同期処理の結果をthen、catch、finallyへ渡す流れを示す図"/><figcaption class="wp-element-caption">Promiseは、まだ終わっていない処理の結果を後から受け取るための約束として見ると理解しやすくなります。</figcaption></figure>



<h2 class="wp-block-heading">then・catch・finallyの基本</h2>



<p>Promiseでよく使うのは、<code>then</code>・<code>catch</code>・<code>finally</code>の3つです。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>メソッド</th><th>使う場面</th><th>ざっくりした意味</th></tr></thead><tbody><tr><td><code>then()</code></td><td>成功したとき</td><td>結果を受け取って次の処理をする</td></tr><tr><td><code>catch()</code></td><td>失敗したとき</td><td>エラーを受け取って処理する</td></tr><tr><td><code>finally()</code></td><td>成功・失敗に関係なく最後</td><td>後片付けをする</td></tr></tbody></table></div></figure>



<p>一番シンプルな形は次の通りです。</p>



<pre class="wp-block-code"><code>fetch(&quot;https://example.com/api/users&quot;)
  .then((response) =&gt; response.json())
  .then((users) =&gt; {
    console.log(users);
  })
  .catch((error) =&gt; {
    console.error(&quot;取得に失敗しました&quot;, error);
  })
  .finally(() =&gt; {
    console.log(&quot;処理が終わりました&quot;);
  });</code></pre>



<p><code>then</code>は成功した結果を次へ渡します。<code>catch</code>は途中で失敗したときに呼ばれます。<code>finally</code>は、成功しても失敗しても最後に実行されます。</p>



<h2 class="wp-block-heading">Promiseチェーンとは？</h2>



<p>Promiseでは、<code>then</code>をつなげて処理を順番に書けます。このつながりをPromiseチェーンと呼ぶことがあります。</p>



<p>次の例では、最初の<code>then</code>でレスポンスをJSONに変換し、次の<code>then</code>で変換後のデータを使っています。</p>



<pre class="wp-block-code"><code>fetch(&quot;/users.json&quot;)
  .then((response) =&gt; response.json())
  .then((users) =&gt; users.filter((user) =&gt; user.active))
  .then((activeUsers) =&gt; {
    console.log(activeUsers);
  })
  .catch((error) =&gt; {
    console.error(error);
  });</code></pre>



<p>ポイントは、<strong><span class="marker-under">前のthenで返した値が、次のthenへ渡される</span></strong>ことです。</p>



<p>配列の<code>filter</code>や<code>map</code>があやふやな場合は、<a href="https://it-biz.online/web-design/map-filter-reduce/">map・filter・reduceの違い</a>も参考になります。</p>



<h2 class="wp-block-heading">fetch APIとPromiseの関係</h2>



<p><code>fetch</code>は、HTTP通信を行うためのWeb APIです。そして<code>fetch()</code>を呼び出すとPromiseが返ります。</p>



<p>そのため、fetchのコードではPromiseの理解がほぼ必須になります。</p>



<pre class="wp-block-code"><code>const promise = fetch(&quot;/api/users&quot;);

console.log(promise); // Promiseが入っている</code></pre>



<p>この時点で得られるのは、ユーザー一覧そのものではありません。通信結果をあとで受け取るためのPromiseです。</p>



<p><code>fetch</code>のGET・POSTの基本は、<a href="https://it-biz.online/web-design/fetch-api/">fetch APIとは？</a>で詳しく解説しています。</p>



<h2 class="wp-block-heading">async/awaitとの違い</h2>



<p><code>async/await</code>は、Promiseをより自然な順番で書くための構文です。Promiseと別物というより、Promiseを読みやすく扱うための書き方です。</p>



<p>Promiseチェーンで書くと次のようになります。</p>



<pre class="wp-block-code"><code>fetch(&quot;/api/users&quot;)
  .then((response) =&gt; response.json())
  .then((users) =&gt; console.log(users))
  .catch((error) =&gt; console.error(error));</code></pre>



<p>同じ処理を<code>async/await</code>で書くと、次のようになります。</p>



<pre class="wp-block-code"><code>async function loadUsers() {
  try {
    const response = await fetch(&quot;/api/users&quot;);
    const users = await response.json();
    console.log(users);
  } catch (error) {
    console.error(error);
  }
}</code></pre>



<p><code>await</code>はPromiseの完了を待ち、その結果を取り出します。async/awaitの基本は、<a href="https://it-biz.online/web-design/async-await/">async/awaitとは？</a>の記事で解説しています。</p>



<h2 class="wp-block-heading">初心者がつまずきやすいポイント</h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>まずこう理解する</th></tr></thead><tbody><tr><td>Promiseを値そのものだと思う</td><td>Promiseは将来の結果を表すオブジェクト</td></tr><tr><td>thenの中でreturnしない</td><td>次のthenへ渡す値がなくなる</td></tr><tr><td>catchを書かない</td><td>失敗時の動きが追いにくくなる</td></tr><tr><td>async/awaitならPromise不要と思う</td><td>async/awaitの裏側でもPromiseを扱っている</td></tr></tbody></table></div></figure>



<p>特に多いのは、<code>then</code>の中で値を返し忘れることです。次の処理に値を渡したい場合は、<code>return</code>を意識しましょう。</p>



<h2 class="wp-block-heading">Promiseをどんな場面で使うのか</h2>



<p>Promiseは、次のような非同期処理でよく使われます。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>APIからデータを取得する</li>
  <li>一定時間後に処理する</li>
  <li>ファイルや画像の読み込みを待つ</li>
  <li>複数の非同期処理を順番に実行する</li>
  <li>複数の非同期処理をまとめて待つ</li>
</ul>



<p>ただし、最初から<code>Promise.all</code>や<code>Promise.race</code>などをすべて覚える必要はありません。まずは<code>then</code>・<code>catch</code>・<code>finally</code>と、async/awaitとの関係を押さえましょう。</p>



<h2 class="wp-block-heading">関連して読みたい記事</h2>



<ul class="wp-block-list">
  <li><a href="https://it-biz.online/web-design/callback-function/">JavaScriptのコールバック関数とは？</a></li>
  <li><a href="https://it-biz.online/web-design/fetch-api/">fetch APIとは？GETとPOSTの使い方</a></li>
  <li><a href="https://it-biz.online/web-design/async-await/">async/awaitとは？Promiseとの違い</a></li>
  <li><a href="https://it-biz.online/web-design/javascript-scope/">JavaScriptのスコープとは？</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p>JavaScriptのPromiseは、非同期処理の結果をあとで受け取るための仕組みです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li><code>then</code>は成功時の処理を書く</li>
  <li><code>catch</code>は失敗時の処理を書く</li>
  <li><code>finally</code>は最後の後片付けを書く</li>
  <li><code>async/await</code>はPromiseを読みやすく扱う構文</li>
</ul>



<p>Promiseを理解すると、<code>fetch</code>や<code>async/await</code>のコードがかなり読みやすくなります。最初は「まだ終わっていない処理の結果を、あとで受け取る約束」と考えれば十分です。</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【TypeScript】typeとは？型エイリアスとinterfaceの違いを初心者向けに解説</title>
		<link>https://it-biz.online/web-design/typescript/typescript-type-alias/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Thu, 07 May 2026 10:53:40 +0000</pubDate>
				<category><![CDATA[TypeScript]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10774</guid>

					<description><![CDATA[TypeScriptのtypeとは何か、型エイリアスの基本、union型での使い方、interfaceとの違いと使い分けを初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p>TypeScriptの<code>type</code>とは、<strong><span class="marker-under">型に名前を付けて、何度も使いやすくするための書き方</span></strong>です。正式には型エイリアスと呼ばれます。</p>



<p>たとえば、ユーザー情報を表す型を毎回<code>{ id: number; name: string }</code>と書くのは読みにくくなります。そこで<code>type User = ...</code>のように名前を付けます。</p>



<p>初心者が迷いやすいのは、<code>type</code>と<code>interface</code>の違いです。どちらもオブジェクトの形を表せますが、得意な使いどころが少し違います。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>最初は「typeは型に名前を付ける」「interfaceはオブジェクトの形を宣言する」と分けて考えると理解しやすいです。</p>
  </div>
</div>



<p>この記事では、TypeScriptの<code>type</code>とは何か、基本構文、union型での使い方、<code>interface</code>との違い、実務での使い分けを初心者向けに解説します。</p>



<h2 class="wp-block-heading">まず結論：typeは型に名前を付ける書き方</h2>



<p><code>type</code>は、型に別名を付けるために使います。TypeScript公式ドキュメントでも、type aliasは任意の型に名前を付けるものとして説明されています。</p>



<pre class="wp-block-code"><code>type User = {
  id: number;
  name: string;
};

const user: User = {
  id: 1,
  name: &quot;Sato&quot;,
};</code></pre>



<p>この例では、<code>{ id: number; name: string }</code>というオブジェクトの型に、<code>User</code>という名前を付けています。</p>



<p>一度名前を付けると、変数、関数の引数、戻り値などで同じ型を使い回せます。</p>



<h2 class="wp-block-heading">typeが必要になる理由</h2>



<p>TypeScriptでは、型を直接書くこともできます。</p>



<pre class="wp-block-code"><code>function printUser(user: { id: number; name: string }) {
  console.log(user.name);
}</code></pre>



<p>短いコードならこれでも問題ありません。しかし、同じ型を何度も書くと、コードが長くなり、修正漏れも起きやすくなります。</p>



<p><code>type</code>を使うと、型の意味が名前で分かるようになります。</p>



<pre class="wp-block-code"><code>type User = {
  id: number;
  name: string;
};

function printUser(user: User) {
  console.log(user.name);
}</code></pre>



<p>このように、<strong><span class="marker-under">typeはコードを短くするためだけでなく、型の意味を名前で伝えるため</span></strong>に使います。</p>



<h2 class="wp-block-heading">typeの基本構文</h2>



<p><code>type</code>の基本構文は次の通りです。</p>



<pre class="wp-block-code"><code>type 型名 = 型;</code></pre>



<p>オブジェクト型に名前を付ける場合は、次のように書きます。</p>



<pre class="wp-block-code"><code>type Product = {
  id: number;
  name: string;
  price: number;
};</code></pre>



<p>関数の引数や戻り値にも使えます。</p>



<pre class="wp-block-code"><code>function formatProduct(product: Product): string {
  return `${product.name}: ${product.price}円`;
}</code></pre>



<p>TypeScriptの型注釈や関数の基本がまだ曖昧な場合は、<a href="https://it-biz.online/web-design/typescript-start/">TypeScript超入門</a>や<a href="https://it-biz.online/web-design/typescript-function/">TypeScriptの関数宣言/関数式</a>を先に読むと理解しやすくなります。</p>



<h2 class="wp-block-heading">typeはunion型にも名前を付けられる</h2>



<p><code>type</code>の大きな特徴は、オブジェクト型だけでなく、union型にも名前を付けられることです。</p>



<pre class="wp-block-code"><code>type ID = number | string;

function findUser(id: ID) {
  console.log(id);
}</code></pre>



<p><code>number | string</code>は、「数値または文字列」という意味です。このような型をunion型と呼びます。</p>



<p>毎回<code>number | string</code>と書く代わりに<code>ID</code>と名付けることで、「これはIDとして扱う値だ」と読み取りやすくなります。</p>



<p>この図では、<code>type</code>を「型そのものを作る魔法」ではなく、<strong>型に名前を付けて使いやすくする入口</strong>として見てください。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/typescript-type-alias-flow-v2.png" alt="TypeScriptのtypeがオブジェクト型やユニオン型に名前を付けinterfaceと使い分けられることを示す図"/><figcaption class="wp-element-caption">typeは型に名前を付ける書き方です。interfaceと似ていますが、union型などにも名前を付けられる点が重要です。</figcaption></figure>



<h2 class="wp-block-heading">interfaceとの違い</h2>



<p><code>type</code>と<code>interface</code>は、どちらもオブジェクトの形を表せます。</p>



<pre class="wp-block-code"><code>type UserType = {
  id: number;
  name: string;
};

interface UserInterface {
  id: number;
  name: string;
}</code></pre>



<p>この例だけを見ると、ほとんど同じに見えます。実際、単純なオブジェクト型であれば、どちらでも表せます。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>観点</th><th>type</th><th>interface</th></tr></thead><tbody><tr><td>オブジェクト型</td><td>表せる</td><td>表せる</td></tr><tr><td>union型</td><td>表せる</td><td>基本的には表せない</td></tr><tr><td>tuple型</td><td>表せる</td><td>向いていない</td></tr><tr><td>後から同じ名前で拡張</td><td>できない</td><td>できる</td></tr><tr><td>クラスのimplements</td><td>使える場合がある</td><td>よく使われる</td></tr></tbody></table></div></figure>



<p>TypeScript公式ドキュメントでも、ほとんどの<code>interface</code>の機能は<code>type</code>でも使える一方、<code>interface</code>は後から拡張できる点が大きな違いとして説明されています。</p>



<p>すでに<a href="https://it-biz.online/web-design/interface/">TypeScriptのinterface</a>を読んでいる場合は、この記事と合わせて見ると使い分けが整理しやすくなります。</p>



<h2 class="wp-block-heading">typeを使うとよい場面</h2>



<p><code>type</code>は、次のような場面で特に便利です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>union型に名前を付けたい</li>
  <li>tuple型に名前を付けたい</li>
  <li>関数型に名前を付けたい</li>
  <li>複数の型を組み合わせたい</li>
  <li>APIレスポンスの型を読みやすく整理したい</li>
</ul>



<p>たとえば、状態を文字列で表す場合は<code>type</code>が分かりやすいです。</p>



<pre class="wp-block-code"><code>type Status = &quot;loading&quot; | &quot;success&quot; | &quot;error&quot;;

function render(status: Status) {
  if (status === &quot;loading&quot;) {
    return &quot;読み込み中&quot;;
  }
  if (status === &quot;success&quot;) {
    return &quot;成功&quot;;
  }
  return &quot;エラー&quot;;
}</code></pre>



<p>このように書くと、<code>status</code>には決められた文字列だけを渡せます。入力ミスにも気づきやすくなります。</p>



<h2 class="wp-block-heading">interfaceを使うとよい場面</h2>



<p>一方、<code>interface</code>は、オブジェクトの形を中心に扱う場面でよく使われます。</p>



<ul class="wp-block-list is-style-icon-list-comment has-list-style">
  <li>クラスに実装させる契約を表したい</li>
  <li>オブジェクトの構造を外部に公開したい</li>
  <li>ライブラリや拡張前提の型を定義したい</li>
  <li>同じ名前のinterfaceを後から拡張したい</li>
</ul>



<p>たとえば、クラスが持つべきメソッドを表す場合は<code>interface</code>が読みやすいことがあります。</p>



<pre class="wp-block-code"><code>interface Repository {
  findById(id: string): Promise&lt;User&gt;;
  save(user: User): void;
}</code></pre>



<p>ただし、これは絶対ルールではありません。プロジェクトごとのコーディング規約がある場合は、それに従うのが実務では重要です。</p>



<h2 class="wp-block-heading">初心者がつまずきやすいポイント</h2>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>まずこう理解する</th></tr></thead><tbody><tr><td>typeは新しい型を作る？</td><td>別名を付けているだけ。別の実体が増えるわけではない</td></tr><tr><td>interfaceと完全に同じ？</td><td>似ているが、union型や拡張方法が違う</td></tr><tr><td>全部typeでよい？</td><td>規約や拡張前提によってinterfaceが向く場面もある</td></tr><tr><td>実行時にも残る？</td><td>TypeScriptの型情報なので、基本的にJavaScript実行時には残らない</td></tr></tbody></table></div></figure>



<p>特に重要なのは、<strong><span class="marker-under">typeは実行時の値ではなく、開発中にコードを安全に読むための型情報</span></strong>だという点です。</p>



<h2 class="wp-block-heading">実務での使い分けの目安</h2>



<p>迷ったときは、次のように考えると整理しやすくなります。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>使いたいもの</th><th>おすすめ</th><th>理由</th></tr></thead><tbody><tr><td>union型</td><td><code>type</code></td><td><code>"a" | "b"</code>のような型に名前を付けられる</td></tr><tr><td>tuple型</td><td><code>type</code></td><td>配列の位置ごとの型を表しやすい</td></tr><tr><td>単純なデータの形</td><td>どちらでもよい</td><td>プロジェクト規約に合わせる</td></tr><tr><td>拡張される契約</td><td><code>interface</code></td><td>後から拡張しやすい</td></tr></tbody></table></div></figure>



<p>初心者のうちは、まず<code>type</code>でunion型、<code>interface</code>でオブジェクトの契約、と覚えると混乱しにくくなります。</p>



<h2 class="wp-block-heading">関連して読みたい記事</h2>



<ul class="wp-block-list">
  <li><a href="https://it-biz.online/web-design/typescript-start/">TypeScript超入門</a></li>
  <li><a href="https://it-biz.online/web-design/typescript-abc/">TypeScript入門</a></li>
  <li><a href="https://it-biz.online/web-design/interface/">TypeScriptのinterfaceとは？</a></li>
  <li><a href="https://it-biz.online/web-design/variavle-type/">TypeScriptの変数と基本的な型</a></li>
  <li><a href="https://it-biz.online/web-design/typescript-function/">TypeScriptの関数宣言/関数式</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p>TypeScriptの<code>type</code>は、型に名前を付けるための書き方です。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>同じ型を何度も書かずに済む</li>
  <li>型の意味を名前で伝えられる</li>
  <li>union型やtuple型にも名前を付けられる</li>
  <li>interfaceとは拡張方法や得意分野が違う</li>
</ul>



<p>最初は、<code>type ID = number | string</code>のような短い例から始めると理解しやすくなります。慣れてきたら、APIレスポンスや画面状態の型にも使ってみましょう。</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Dockerとは？コンテナ・イメージ・仮想マシンとの違いを初心者向けに解説</title>
		<link>https://it-biz.online/it-skills/docker-container/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Thu, 07 May 2026 10:53:15 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10777</guid>

					<description><![CDATA[Dockerとは何か、コンテナ・イメージ・Dockerfileの関係、仮想マシンとの違い、開発現場で使う理由を初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p>Dockerとは、<strong><span class="marker-under">アプリを動かすための環境をコンテナとしてまとめ、どこでも同じように動かしやすくするための仕組み</span></strong>です。</p>



<p>たとえば、ある人のPCでは動くのに、別の人のPCでは動かない、という問題があります。Node.jsやPython、データベース、ライブラリのバージョンが違うと、同じコードでも動きが変わることがあります。</p>



<p>Dockerを使うと、アプリに必要な実行環境をイメージとしてまとめ、コンテナとして起動できます。これにより、開発環境、テスト環境、本番環境の差を小さくしやすくなります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>Dockerは「軽い仮想マシン」と説明されることがありますが、厳密には仮想マシンそのものではありません。まずはコンテナを動かす仕組みとして理解しましょう。</p>
  </div>
</div>



<p>この記事では、Dockerとは何か、コンテナ・イメージ・Dockerfileの関係、仮想マシンとの違い、開発現場で使う理由を初心者向けに解説します。</p>



<h2 class="wp-block-heading">まず結論：Dockerはアプリの実行環境をまとめて扱う仕組み</h2>



<p>Dockerを最初に理解するときは、次の流れで考えると分かりやすいです。</p>



<pre class="wp-block-code"><code>Dockerfileを書く
  ↓
Dockerイメージを作る
  ↓
イメージからコンテナを起動する
  ↓
アプリが決められた環境で動く</code></pre>



<p>Docker公式ドキュメントでも、Dockerはコンテナと呼ばれる分離された環境でアプリケーションをパッケージ化し、実行できるプラットフォームとして説明されています。</p>



<p>初心者のうちは、Dockerを<strong>「環境ごとアプリを動かしやすくする道具」</strong>として理解すれば十分です。</p>



<h2 class="wp-block-heading">Dockerが必要になる理由</h2>



<p>開発では、コードだけでなく実行環境も重要です。アプリが動くには、プログラミング言語の実行環境、ライブラリ、設定ファイル、OS上のツール、データベースなどが関係します。</p>



<p>これらが人によって違うと、次のような問題が起きます。</p>



<ul class="wp-block-list is-style-icon-list-comment has-list-style">
  <li>自分のPCでは動くが、他の人のPCでは動かない</li>
  <li>本番環境だけエラーになる</li>
  <li>環境構築の手順が長く、新人が詰まりやすい</li>
  <li>古いプロジェクトと新しいプロジェクトで必要なバージョンが衝突する</li>
</ul>



<p>Dockerは、このような環境差を小さくするために使われます。環境構築の手順をファイルとして残し、同じイメージから同じようなコンテナを起動できるようにします。</p>



<p>サーバーの基本がまだ曖昧な場合は、先に<a href="https://it-biz.online/it-skills/server-abc/">サーバーとは何か？</a>を読むと、Dockerがどこで役立つかイメージしやすくなります。</p>



<h2 class="wp-block-heading">コンテナとは何か</h2>



<p>コンテナとは、アプリとその実行に必要なものを、他の環境から分けて動かすための単位です。</p>



<p>Docker公式の入門ドキュメントでは、コンテナはアプリの各部品ごとに分離されたプロセスとして説明されています。重要なのは、コンテナがホストOS全体を丸ごと複製するわけではない点です。</p>



<p>コンテナは、必要なファイルや設定を持ちながら、ホストや他のコンテナへの影響を小さくしてアプリを動かします。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>用語</th><th>ざっくりした意味</th></tr></thead><tbody><tr><td>コンテナ</td><td>アプリが実際に動いている分離された実行環境</td></tr><tr><td>ホスト</td><td>Dockerを動かしているPCやサーバー</td></tr><tr><td>プロセス</td><td>OS上で動いているプログラムの実体</td></tr></tbody></table></div></figure>



<h2 class="wp-block-heading">イメージとは何か</h2>



<p>Dockerイメージとは、コンテナを起動するためのテンプレートです。Docker公式ドキュメントでも、イメージはコンテナを作るための読み取り専用テンプレートとして説明されています。</p>



<p>たとえば、Node.jsアプリを動かすなら、Node.jsの実行環境、アプリのコード、必要なライブラリ、起動コマンドなどをイメージにまとめます。</p>



<p>イメージとコンテナの違いは、次のように考えると分かりやすいです。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>用語</th><th>たとえ</th><th>Dockerでの意味</th></tr></thead><tbody><tr><td>イメージ</td><td>型・設計図</td><td>コンテナを作る元になるテンプレート</td></tr><tr><td>コンテナ</td><td>実体・実行中のもの</td><td>イメージから起動された実行環境</td></tr></tbody></table></div></figure>



<p>この図では、Dockerfile、イメージ、コンテナの関係を左から右へ見てください。Dockerを理解するときは、まずこの3つを分けることが重要です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/docker-container-flow-v2.png" alt="DockerではDockerfileからイメージを作りコンテナとして実行する流れを示す図"/><figcaption class="wp-element-caption">Dockerは、イメージをもとにコンテナを起動して、同じ環境でアプリを動かしやすくする仕組みです。</figcaption></figure>



<h2 class="wp-block-heading">Dockerfileとは何か</h2>



<p>Dockerfileとは、Dockerイメージを作るための手順を書いたファイルです。</p>



<p>たとえば、次のような内容を書きます。</p>



<pre class="wp-block-code"><code>FROM node:22
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD [&quot;npm&quot;, &quot;start&quot;]</code></pre>



<p>この例では、Node.jsのイメージを土台にして、作業ディレクトリを作り、依存ライブラリをインストールし、最後にアプリを起動しています。</p>



<p>Dockerfileがあると、環境構築の手順を口頭や手順書だけでなく、実行できる形で残せます。</p>



<h2 class="wp-block-heading">Dockerでよく出てくるコマンドの流れ</h2>



<p>Dockerを学び始めると、<code>build</code>、<code>run</code>、<code>ps</code>、<code>stop</code>などのコマンドが出てきます。最初はすべてを暗記するより、何を操作しているのかを分けて考えることが大切です。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>コマンド</th><th>何をするか</th><th>見ている対象</th></tr></thead><tbody><tr><td><code>docker build</code></td><td>Dockerfileからイメージを作る</td><td>イメージ</td></tr><tr><td><code>docker run</code></td><td>イメージからコンテナを起動する</td><td>コンテナ</td></tr><tr><td><code>docker ps</code></td><td>動いているコンテナを確認する</td><td>コンテナ</td></tr><tr><td><code>docker stop</code></td><td>コンテナを停止する</td><td>コンテナ</td></tr></tbody></table></div></figure>



<p>ここでも中心になるのは、イメージとコンテナの違いです。<code>build</code>はテンプレートを作る操作、<code>run</code>はそのテンプレートから実体を起動する操作、と見ると混乱しにくくなります。</p>



<p>また、実務では複数のコンテナをまとめて起動するためにDocker Composeを使うこともあります。ただし、初心者の最初の理解では、まず1つのDockerfileから1つのイメージを作り、1つのコンテナを起動する流れを押さえるのが先です。</p>



<h2 class="wp-block-heading">仮想マシンとの違い</h2>



<p>Dockerコンテナと仮想マシンは、どちらも環境を分けるために使われます。ただし仕組みは違います。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>観点</th><th>Dockerコンテナ</th><th>仮想マシン</th></tr></thead><tbody><tr><td>OS</td><td>ホストOSのカーネルを共有する</td><td>ゲストOSを持つ</td></tr><tr><td>起動</td><td>比較的速い</td><td>コンテナより重くなりやすい</td></tr><tr><td>分離</td><td>プロセス単位の分離が中心</td><td>OS単位で分離する</td></tr><tr><td>用途</td><td>アプリ実行環境の統一に向く</td><td>OSごとの検証や強い分離に向く</td></tr></tbody></table></div></figure>



<p>Docker公式ドキュメントでも、仮想マシンはカーネルやドライバを含むOS全体を持つ一方、コンテナは必要なファイルを持つ分離されたプロセスとして説明されています。</p>



<p>そのため、Dockerは仮想マシンより軽く扱えることが多いですが、すべての用途で仮想マシンの代わりになるわけではありません。</p>



<h2 class="wp-block-heading">Dockerを使うメリット</h2>



<p>Dockerを使う主なメリットは次の通りです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>環境構築を再現しやすい</li>
  <li>開発者ごとの差を小さくできる</li>
  <li>CI/CDで同じ環境を使いやすい</li>
  <li>アプリと依存関係をまとめて扱いやすい</li>
  <li>古い環境と新しい環境を分けやすい</li>
</ul>



<p>特にCI/CDでは、テストやビルドを毎回同じ環境で実行しやすくなります。CI/CDの基本は、<a href="https://it-biz.online/it-skills/github-actions/">GitHub Actionsとは？</a>や<a href="https://it-biz.online/it-skills/build/">ビルドとは？</a>と一緒に見ると理解がつながります。</p>



<h2 class="wp-block-heading">Dockerを使うときの注意点</h2>



<p>Dockerは便利ですが、使えば自動的にすべてが解決するわけではありません。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>注意点</th><th>理由</th></tr></thead><tbody><tr><td>本番運用には設計が必要</td><td>ログ、監視、バックアップ、ネットワークを考える必要がある</td></tr><tr><td>イメージが大きくなりすぎることがある</td><td>不要なファイルを含めると配布や起動が重くなる</td></tr><tr><td>セキュリティ更新が必要</td><td>土台となるイメージやライブラリの脆弱性に注意する</td></tr><tr><td>永続データの扱いが必要</td><td>コンテナを消すと中の変更も消えることがある</td></tr></tbody></table></div></figure>



<p>初心者のうちは、まずローカル開発環境で小さく使い、イメージとコンテナの違いを実際に確認するのがおすすめです。</p>



<h2 class="wp-block-heading">関連して読みたい記事</h2>



<ul class="wp-block-list">
  <li><a href="https://it-biz.online/it-skills/server-abc/">サーバーとは何か？</a></li>
  <li><a href="https://it-biz.online/lifehack/virtual-private-server/">VPSとは？</a></li>
  <li><a href="https://it-biz.online/it-skills/build/">ビルドとは？</a></li>
  <li><a href="https://it-biz.online/it-skills/github-actions/">GitHub Actionsとは？</a></li>
  <li><a href="https://it-biz.online/it-skills/web_api/">APIとは？Web APIとの違い</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p>Dockerは、アプリを動かすための環境をコンテナとしてまとめ、どこでも同じように動かしやすくするための仕組みです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>Dockerfileはイメージを作る手順</li>
  <li>イメージはコンテナを起動するテンプレート</li>
  <li>コンテナは実際に動いている実行環境</li>
  <li>仮想マシンとは仕組みが違う</li>
  <li>環境差を減らし、開発やCI/CDを進めやすくする</li>
</ul>



<p>最初から本番運用まで理解する必要はありません。まずは、Dockerfile、イメージ、コンテナの3つを分けて考えるところから始めましょう。</p>

]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【IT用語解説】CI/CDとは？初心者向けに1からわかりやすく解説</title>
		<link>https://it-biz.online/it-skills/ci-cd/</link>
					<comments>https://it-biz.online/it-skills/ci-cd/#respond</comments>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Thu, 07 May 2026 01:11:29 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10763</guid>

					<description><![CDATA[CI/CDとは何か、CIとCDの違い、ビルド・テスト・デプロイとの関係、GitHub Actionsとのつながりを初心者向けに解説します。]]></description>
										<content:encoded><![CDATA[
<p>CI/CDとは、ひとことで言うと、<strong><span class="marker-under">コードの変更を自動で確認し、安全に届けるための流れ</span></strong>です。</p>



<p>たとえば、開発者がGitHubにコードをpushしたとします。そのたびに、人が手作業でビルドして、テストして、問題がなければデプロイの準備をするのは大変です。そこで使われる考え方がCI/CDです。CI/CDでは、コード変更をきっかけに、ビルド、テスト、成果物作成、デプロイ準備などを自動で実行します。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>CI/CDはツール名ではありません。GitHub ActionsやJenkinsなどは、CI/CDを実現するための道具です。</p>
  </div>
</div>



<p>この記事では、CI/CDとは何か、CIとCDの違い、ビルド・テスト・デプロイとの関係、GitHub Actionsとのつながりを初心者向けに解説します。</p>



<h2 class="wp-block-heading">まず結論：CI/CDは変更を安全に届けるための流れ</h2>



<p>CI/CDを最初に理解するときは、次のように考えると分かりやすいです。</p>



<pre class="wp-block-code"><code>コードを変更する
  ↓
自動でビルドする
  ↓
自動でテストする
  ↓
問題がなければ、届けられる状態にする</code></pre>



<p>この一連の流れをまとめてCI/CDと呼びます。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>用語</th><th>読み方</th><th>ざっくりした意味</th></tr></thead><tbody><tr><td>CI</td><td>Continuous Integration</td><td>変更をこまめに取り込み、自動で確認すること</td></tr><tr><td>CD</td><td>Continuous Delivery / Continuous Deployment</td><td>確認済みの変更を、利用者へ届けられる状態にすること</td></tr></tbody></table></div></figure>



<p>日本語では、CIは「継続的インテグレーション」、CDは「継続的デリバリー」または「継続的デプロイメント」と呼ばれます。</p>



<p>難しく見えますが、初心者のうちは<strong>「変更したコードを、毎回きちんと確認して、届けやすくする仕組み」</strong>と理解すれば十分です。</p>



<h2 class="wp-block-heading">CIとは？変更をこまめに取り込み、自動で確認すること</h2>



<p>CIは、Continuous Integrationの略です。直訳すると「継続的インテグレーション」です。</p>



<p>インテグレーションとは、複数の変更を1つに統合することです。チーム開発では、複数人がそれぞれコードを変更します。その変更を長期間ため込むと、あとでまとめたときに問題が起きやすくなります。</p>



<p>CIでは、コードの変更をこまめに取り込み、そのたびに自動で確認します。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>ビルドできるか</li>



<li>テストが通るか</li>



<li>基本的なチェックに失敗していないか</li>
</ul>



<p>つまりCIの目的は、<strong><span class="marker-under">問題を早く見つけること</span></strong>です。</p>



<p>ビルドの意味が曖昧な場合は、先に<a href="https://it-biz.online/it-skills/build/">ビルドとは？</a>を読むと理解しやすくなります。コンパイルとの違いは、<a href="https://it-biz.online/it-skills/compile/">コンパイルとは？</a>で整理しています。</p>



<h2 class="wp-block-heading">CDとは？確認済みの変更を届けられる状態にすること</h2>



<p>CDは、文脈によって2つの意味で使われます。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>用語</th><th>意味</th><th>ポイント</th></tr></thead><tbody><tr><td>Continuous Delivery</td><td>継続的デリバリー</td><td>いつでもリリースできる状態まで自動化する</td></tr><tr><td>Continuous Deployment</td><td>継続的デプロイメント</td><td>テストに通った変更を本番環境などへ自動で反映する</td></tr></tbody></table></div></figure>



<p>初心者がまず押さえるべきなのは、<strong>CDは「確認済みの変更を届ける段階」</strong>だということです。</p>



<p>ただし、すべての現場で本番環境への反映まで完全自動化しているわけではありません。最後の公開判断は人が行い、そこまでのビルドやテスト、リリース準備を自動化する構成もよくあります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>「CD」とだけ書かれている場合は、継続的デリバリーなのか、継続的デプロイメントなのかを文脈で確認しましょう。</p>
  </div>
</div>



<h2 class="wp-block-heading">CI/CDの全体像を図で整理する</h2>



<p>CI/CDは、コード変更からリリース準備までをつなぐパイプラインとして考えると理解しやすくなります。</p>



<p>次の図では、<strong><span class="marker-under">CIは「壊れていないか確認する場所」、CDは「届けられる状態にする場所」</span></strong>として見てください。CI/CDをツール名として覚えるより、この流れで見る方が実務の会話を理解しやすくなります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/ci-cd-flow-v2.png" alt="CI/CDではコード変更を起点にCIで確認しCDで届けられる状態へ進むことを示す図"/><figcaption class="wp-element-caption">CIは確認、CDは届ける準備として見ると、CI/CDの役割を分けて理解できます。</figcaption></figure>



<p>パイプラインとは、複数の処理を順番につないだ流れのことです。CI/CDパイプラインでは、たとえば次のような処理が順番に動きます。</p>



<ul class="wp-block-list is-style-icon-list-comment has-list-style">
<li>コードがpushされる</li>



<li>依存ライブラリを準備する</li>



<li>ビルドする</li>



<li>自動テストを実行する</li>



<li>成果物を作る</li>



<li>必要に応じてデプロイする</li>
</ul>



<p>重要なのは、CI/CDが「一度設定したら何でも勝手にうまくいく魔法」ではないことです。どのチェックを実行するか、失敗したときに止めるか、誰が最終確認するかは、プロジェクトごとに設計します。</p>



<h2 class="wp-block-heading">CI/CDでは何が自動化されるのか</h2>



<p>CI/CDで自動化される代表的な処理を整理します。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>処理</th><th>何をするか</th><th>なぜ必要か</th></tr></thead><tbody><tr><td>ビルド</td><td>プログラムを実行・配布できる形にする</td><td>変更後も成果物を作れるか確認するため</td></tr><tr><td>テスト</td><td>自動テストを実行する</td><td>変更で既存機能が壊れていないか確認するため</td></tr><tr><td>静的解析</td><td>コードの書き方や潜在的な問題をチェックする</td><td>人の目だけでは見落としやすい問題を早く見つけるため</td></tr><tr><td>成果物作成</td><td>jar、zip、Dockerイメージなどを作る</td><td>配布やデプロイに使う材料を作るため</td></tr><tr><td>デプロイ</td><td>アプリを環境へ反映する</td><td>利用者が変更後のアプリを使えるようにするため</td></tr></tbody></table></div></figure>



<p>すべてのプロジェクトで、これらを全部自動化する必要があるわけではありません。最初は「pushしたらテストだけ自動で動く」でもCIの第一歩です。</p>



<h2 class="wp-block-heading">GitHub ActionsとCI/CDの関係</h2>



<p>GitHub Actionsは、GitHub上でワークフローを自動実行できる仕組みです。CI/CDそのものではなく、CI/CDを実現するためのツールの1つです。</p>



<p>たとえば、GitHubにpushされたらテストを実行する、pull requestが作られたらビルドする、といった処理を自動化できます。</p>



<pre class="wp-block-code"><code>name: ci

on:
  push:
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm install
      - run: npm test</code></pre>



<p>この例では、pushやpull requestをきっかけに、依存ライブラリのインストールとテストを実行しています。実際の設定はプロジェクトによって変わりますが、考え方は同じです。</p>



<p>GitHub Actionsの基本は、<a href="https://it-biz.online/it-skills/github-actions/">GitHub Actionsとは？</a>の記事で解説しています。Gitの変更単位であるコミットについては、<a href="https://it-biz.online/it-skills/git-commit/">Gitのコミットとは何か？</a>もあわせて読むと理解しやすくなります。</p>



<h2 class="wp-block-heading">CI/CDを使うメリット</h2>



<p>CI/CDを使うメリットは、単に作業が楽になることだけではありません。開発の品質とスピードを両方支えるために使われます。</p>



<ul class="wp-block-list is-style-icon-list-thumb-up has-list-style">
<li>問題を早く見つけられる</li>



<li>手作業によるミスを減らせる</li>



<li>チーム全員が同じ確認手順を使える</li>



<li>リリース前の不安を小さくできる</li>



<li>小さな変更をこまめに届けやすくなる</li>
</ul>



<p>特に大きいのは、<strong><span class="marker-under">問題を「あとでまとめて見つける」のではなく、「変更した直後に見つける」</span></strong>点です。</p>



<p>テストの考え方を押さえたい場合は、<a href="https://it-biz.online/it-skills/7rules-testing/">システムテストの７原則</a>や、<a href="https://it-biz.online/it-skills/testing/">ホワイトボックステストとブラックボックステストの違い</a>も参考になります。</p>



<h2 class="wp-block-heading">手作業リリースとの違い</h2>



<p>CI/CDを導入する前は、ビルドやテスト、デプロイ準備を人が手順書に沿って実行することがあります。もちろん手作業がすべて悪いわけではありませんが、毎回同じ確認を人が行うと、漏れや手順違いが起きやすくなります。</p>



<p>この比較図で見てほしいのは、CI/CDが単に「作業を楽にする仕組み」ではない点です。重要なのは、<strong><span class="marker-under">確認を人の記憶や手順から、毎回同じように動く仕組みへ移すこと</span></strong>です。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/05/ci-cd-manual-vs-auto-v2.png" alt="CI/CDは確認を人の手順からパイプラインへ移す考え方であることを示す比較図"/><figcaption class="wp-element-caption">CI/CDでは、確認の手順をパイプライン化することで、確認漏れや担当者ごとの差を減らしやすくなります。</figcaption></figure>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>観点</th><th>手作業中心</th><th>CI/CD</th></tr></thead><tbody><tr><td>確認タイミング</td><td>リリース前にまとめて確認しがち</td><td>変更ごとに確認しやすい</td></tr><tr><td>手順</td><td>担当者の作業に依存しやすい</td><td>設定された手順で毎回動く</td></tr><tr><td>失敗の発見</td><td>遅くなることがある</td><td>早く気づきやすい</td></tr><tr><td>改善</td><td>手順書更新が中心</td><td>パイプライン設定を改善する</td></tr></tbody></table></div></figure>



<p>ただし、CI/CDを入れれば品質が自動的に上がるわけではありません。意味のあるテストやチェックを用意し、その結果をチームが見て改善していくことが重要です。</p>



<h2 class="wp-block-heading">初心者がつまずきやすいポイント</h2>



<p>CI/CDで初心者がつまずきやすいポイントを整理します。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>まずこう理解する</th></tr></thead><tbody><tr><td>CI/CDはGitHub Actionsのこと？</td><td>CI/CDは考え方。GitHub Actionsは実現するためのツール</td></tr><tr><td>CIとCDの境目が分からない</td><td>CIは確認、CDは届ける準備・反映と考える</td></tr><tr><td>CDは必ず本番自動反映？</td><td>必ずではない。最後に人が承認する運用もある</td></tr><tr><td>テストがないとCIはできない？</td><td>最初はビルド確認や簡単なチェックから始められる</td></tr><tr><td>CI/CDを入れればバグはなくなる？</td><td>なくならない。早く気づくための仕組みと考える</td></tr></tbody></table></div></figure>



<p>特に大事なのは、CI/CDを「自動化ツールの設定」とだけ考えないことです。CI/CDの本質は、<strong>変更を小さく確認し、問題を早く見つけ、届けるまでの流れを安定させること</strong>です。</p>



<h2 class="wp-block-heading">関連して読みたい記事</h2>



<p>CI/CDは、Git、ビルド、テスト、構成管理とつながっている用語です。次の記事もあわせて読むと理解が深まります。</p>



<ul class="wp-block-list">
<li><a href="https://it-biz.online/it-skills/github-actions/">GitHub Actionsとは？仕組みや使い方を３分でわかりやすく</a></li>



<li><a href="https://it-biz.online/it-skills/build/">ビルドとは？プログラミングの基本用語を１分でわかりやすく</a></li>



<li><a href="https://it-biz.online/it-skills/compile/">コンパイルとは？初心者向けに1からわかりやすく解説</a></li>



<li><a href="https://it-biz.online/it-skills/git-commit/">Gitのコミットとは何か？その本質を3分でわかりやすく解説</a></li>



<li><a href="https://it-biz.online/it-skills/c-management/">構成管理とは？目的と意味を３分で解説！</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p>CI/CDとは、コードの変更を自動で確認し、安全に届けるための流れです。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
<li>CIは、変更をこまめに取り込み、自動で確認すること</li>



<li>CDは、確認済みの変更を届けられる状態にすること</li>



<li>GitHub Actionsなどのツールは、CI/CDを実現する手段</li>



<li>CI/CDの目的は、問題を早く見つけ、手作業のミスを減らすこと</li>
</ul>



<p>最初から高度なデプロイ戦略まで覚える必要はありません。まずは、<strong><span class="marker-under">「pushしたら自動でビルド・テストが動き、問題があれば早く気づける仕組み」</span></strong>として理解すると、CI/CDの全体像をつかみやすくなります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://it-biz.online/it-skills/ci-cd/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>JSPファイル超入門 – 0 → 現場で“JSPの人”になるまで</title>
		<link>https://it-biz.online/web-design/html/java-server-pages/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Tue, 06 May 2025 04:00:00 +0000</pubDate>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Web開発]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10372</guid>

					<description><![CDATA[JSP（Java Server Pages）は HTMLにJavaコードを差し込み、動的ページを生成する仕組み です。 まず最初にお伝えしたいのは、JSPは決して難しいものではありません。むしろ、「ちょっと動きのあるWe [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>JSP（Java Server Pages）は <strong><a href="https://it-biz.online/web-design/html-basic/">HTML</a>にJavaコードを差し込み、動的ページを生成する仕組み</strong> です。</p>



<p>まず最初にお伝えしたいのは、<strong>JSPは決して難しいものではありません。</strong>むしろ、「ちょっと動きのあるWebページを、できるだけ簡単に作りたい！」という人のために生まれたものなのです。近年では他の技術に取って代わられた印象が否めないJSPですが、昔からある巨大なレガシーシステムなどでは現役で、システムの更改案件などではよく目にすることがあります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>このページでは「JSPってそもそも何？」という一番大事な部分から、初心者向けに順を追って１からわかりやすく専門用語を避けて解説します。</p>
</div></div>



<h2 class="wp-block-heading">JSPとは何か？</h2>



<p><strong>JSP（Java Server Pages）</strong>は、Javaを使ってWebページを動的に生成するための技術で、通常のHTMLファイルにJavaのコードを埋め込むことで、アクセスするたびに内容が変化するページを作成することを可能にします。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>そのため、JSPはJavaをベースとしていますが、HTMLの知識があれば、基本的な使い方は十分に理解することができます。</p>
</div></div>



<h3 class="wp-block-heading">【前提１】静的なページと動的なページ</h3>



<p>Webページには、大きく分けて2種類あります。<br>1つは「<strong>静的なページ</strong>」、もう1つは「<strong>動的なページ</strong>」です。</p>


<a href="https://it-biz.online/it-skills/static-dynamic/" title="静的コンテンツ/動的コンテンツの違いを１分で解説【初心者向け】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img fetchpriority="high" decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-320x180.png 320w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-500x282.png 500w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-800x451.png 800w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-300x169.png 300w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-768x433.png 768w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-240x135.png 240w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic-640x360.png 640w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-2049-static-dynamic.png 1480w" sizes="(max-width: 320px) 100vw, 320px" wpfc-lazyload-disable="true" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">静的コンテンツ/動的コンテンツの違いを１分で解説【初心者向け】</div><div class="blogcard-snippet internal-blogcard-snippet">【初心者向け】「動的」「静的」という言葉の意味とその違いを端的に解説します。本で学習したがイマイチ理解できない、、、結局一言でいうと違いは何？という疑問をお持ちの方に具体例を用いながら分かりやすく解説します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img wpfc-lazyload-disable="true" decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.04.26</div></div></div></div></a>


<p>静的なページとは、内容があらかじめ決まっていて、アクセスするたびに同じ内容が表示されるページです。たとえば、自己紹介だけが書かれた会社のホームページや、お知らせ一覧だけが載っているページなどが該当します。</p>



<p>一方、動的なページは、アクセスした時点の情報や、閲覧しているユーザーの状態に応じて内容が変わります。たとえば、ショッピングサイトで商品が表示されたり、ログイン中のユーザー名が画面に表示されたりするページがそうです。</p>



<p><strong><span class="marker-under">静的なページはHTMLだけで作成できますが、動的なページを作るには、プログラムによってページの内容を生成する仕組みが必要</span></strong>です。JSPは、そのような仕組みの一つです。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>もちろんJSP以外にも同じようなことを実現することが可能で、現代ではほとんどJSP以外が主役です。なのですが、レガシーシステムでは今でも現役で動いていることが多いので「まあ知っておいて損はないかな」というのがJSPの位置づけです。</p>
</div></div>



<h3 class="wp-block-heading">JSPとはどのような技術か</h3>



<p>JSPは、<strong>JavaのコードをHTMLに埋め込むことで</strong>、Webサーバー上で動的にHTMLを生成する技術です。拡張子が <code><span class="blue">.jsp</span></code> であるファイルを使ってページを作成します。</p>



<p>JSPファイルは、<a href="https://it-biz.online/it-skills/web-server/">Webサーバー</a>（通常は<strong>Tomcat</strong>）に配置され、ユーザーがアクセスすると、サーバー側でJavaのコードが実行されます。その結果として生成されたHTMLが、ブラウザに送信され、画面に表示されます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>つまり、JSPは「動的にHTMLを生成する仕組み」であり、「HTMLの中にJavaの処理を一部書き足せる形式のファイル」と言えます。</p>
</div></div>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p>JSPは、以下のような場面でよく利用されます。</p>



<ul class="wp-block-list">
<li>ユーザーの入力に応じて表示内容を変えたいとき</li>



<li>データベースから取得した情報を一覧表示したいとき</li>



<li>フォーム送信結果を別の画面に反映したいとき</li>



<li>ログインしたユーザーごとにページの表示内容を切り替えたいとき</li>
</ul>



<p>このような場合、HTMLだけでは対応が難しくなりますが、JSPを使えば、これらの処理をサーバー側で実現できます。</p>
</div>



<h3 class="wp-block-heading">JSPの動作のしくみ</h3>



<p>JSPファイルは、ユーザーがアクセスしたときに、サーバー側で一度「Javaのクラス（Servlet）」に変換されます。変換されたクラスはコンパイルされ、Javaプログラムとして実行されます。このとき、JSPファイルに書かれたHTMLの部分はそのままHTMLとして出力され、Javaのコード部分は処理されて結果が埋め込まれます。最終的に生成されたHTMLがブラウザに送信され、ユーザーに表示されます。</p>



<p>このしくみによって、JSPは1枚のファイルで「HTMLの見た目」と「動的な処理」を両立させることができます。</p>



<p class="has-text-align-center"><strong>JSPの動き方の流れ</strong></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-1em has-bottom-margin">ユーザーが <code>.jsp</code> ファイルをリクエストする（例：<code>hello.jsp</code>）</li>



<li class="is-style-bottom-margin-1em has-bottom-margin">Tomcat がその <code>.jsp</code> を読んで、中の Java を実行</li>



<li class="is-style-bottom-margin-1em has-bottom-margin">結果として HTML を作り出し、ブラウザに返す</li>



<li>ブラウザには、あたかも普通のHTMLのように見える</li>
</ol>



<p>この一連の流れによって、「動きのあるページ」がリクエスト元に返却されることになります。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">まとめ１</span>　<strong>JSPファイルとは？</strong></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">HTMLだけでは静的なページしか作れない。<br>→JSPを使うことで動的なページが作成できます。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSPは、JavaのコードをHTMLに埋め込むことで、アクセスごとに変化するページを生成。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSPは、Webサーバー上で実行され、結果がHTMLとしてブラウザに表示される。</li>
</ol>
</div>



<h2 class="wp-block-heading">JSPを動かすための準備</h2>



<p>JSPファイルは、<strong>通常のHTMLファイルと違い、単独では動作しません。</strong>JSPはサーバー側でJavaのコードを実行する仕組みのため、その処理を受け持つ「Webサーバー」や「Javaの開発環境」が必要です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>この章では、JSPを動かすために必要なソフトウェアや環境を、1つずつ順を追って準備していきます。</p>
</div></div>



<h3 class="wp-block-heading">JSPの動作に必要なもの</h3>



<p>JSPを動作させるには、次の3つが必要です。<strong>ここでは、それってそもそも何？みたいな説明＋実際にあなたのPCにインストールする手順をメモ程度に記載しておきますので、この辺の知識がすでにあるよ！という方は読み飛ばしてください。</strong></p>



<figure class="wp-block-table aligncenter"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>項目</th><th>説明</th></tr></thead><tbody><tr><td>JDK（Java Development Kit）</td><td>Javaのプログラムを実行するために必要なソフトウェアです。JSPはJavaで動作するため、必ず必要になります。</td></tr><tr><td>Tomcat（トムキャット）</td><td>JSPファイルを処理し、Javaのコードを実行してHTMLに変換するWebサーバーです。</td></tr><tr><td>エディタ（テキスト編集ソフト）</td><td>JSPファイルを作成するための道具です。Visual Studio Code（VS Code）やIntelliJ IDEAなどが便利です。</td></tr></tbody></table></div></figure>



<h4 class="wp-block-heading">JDKのインストール</h4>



<p>まず、Javaの開発環境であるJDKをインストールします。JDKがインストールされていないと、JSPも動作しません。</p>


<a href="https://it-biz.online/java/java-setup/" title="Javaの開発環境構築の３ステップ解説（JDK/JRE/JVMの仕組みを１から解説）" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2024/05/image-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2024/05/image-320x180.png 320w, https://it-biz.online/wp-content/uploads/2024/05/image-240x135.png 240w, https://it-biz.online/wp-content/uploads/2024/05/image-640x360.png 640w" sizes="(max-width: 320px) 100vw, 320px" wpfc-lazyload-disable="true" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Javaの開発環境構築の３ステップ解説（JDK/JRE/JVMの仕組みを１から解説）</div><div class="blogcard-snippet internal-blogcard-snippet">【超・初心者向け】Javaの開発環境を初心者向けに簡単に設定する方法をわかりやすく解説します。JDKのインストール、IDEの選択、開発のスタートまで、スムーズにJavaプログラミングを始める方法をご説明します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img wpfc-lazyload-disable="true" decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.04.16</div></div></div></div></a>


<p class="has-text-align-center"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Oracleの公式サイトまたはOpenJDKのサイトから、JDKをダウンロード。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">お使いのOSに合ったインストーラを選び、画面の指示に従ってインストール。</li>



<li>インストール後、コマンドプロンプト（またはターミナル）を開き、↓のコマンドを入力。</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">java -version
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>バージョンが表示されれば、正常にインストールされています。</p>
</div></div>



<h4 class="wp-block-heading">Tomcatのインストール</h4>



<p>JSPファイルを処理するために、Tomcatをインストールします。<strong><span class="marker-under">TomcatはJavaで動作するWebサーバー</span></strong>で、JSPの実行に適した軽量なサーバーです。</p>



<p class="has-text-align-center"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Apache Tomcat の公式サイトにアクセス。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">zip ファイル（Windows の場合）または tar.gz ファイル（Mac/Linux の場合）をダウンロード。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">ダウンロードしたファイルを任意の場所に展開（解凍）。<br>→<code>C:\tomcat</code> や <code>~/tomcat</code> などが一般的ですが、どこでもOK。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin"><code>bin</code>フォルダにある <code>startup.bat</code>（Windows）または <code>startup.sh</code>（Mac/Linux）を実行。</li>



<li>ブラウザを開き、次のURLにアクセスします：</li>
</ol>




<a rel="noopener" href="http://localhost:8080/" title="&#28961;&#21177;&#12394;URL&#12391;&#12377;" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/http%3A%2F%2Flocalhost%3A8080%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">&#28961;&#21177;&#12394;URL&#12391;&#12377;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=http://localhost:8080/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">localhost</div></div></div></div></a>
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>Tomcatのトップページが表示されれば、インストールは成功です。</p>
</div></div>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p>注意：すでに他のアプリケーションがポート8080を使っている場合、Tomcatが起動できないことがあります。その場合は、設定ファイル（server.xml）でポート番号を変更してください。</p>
</div>



<h4 class="wp-block-heading">JSP用のフォルダを作る</h4>



<p>Tomcatでは、<code><span class="bold-blue">webapps</span></code> フォルダの中にあるプロジェクトが自動的に読み込まれます。自分でJSPファイルを作って表示するには、ここに新しいフォルダを作成します。</p>



<p class="has-text-align-center"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Tomcatフォルダ内の <code>webapps</code> に移動。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">新しくフォルダを作成し、たとえば <code>jsp-demo</code> という名前をつける。</li>



<li><code>jsp-demo</code> フォルダの中に、最初のJSPファイルを作成します。ファイル名は <code>hello.jsp</code> など。</li>
</ol>



<h4 class="wp-block-heading">エディタの準備</h4>



<p>JSPファイルは、普通のテキストファイルとして作成できますが、プログラミングに適したエディタを使うと効率が上がります。以下のいずれかのエディタを使用するのが一般的です。</p>



<ul class="wp-block-list">
<li>Visual Studio Code（無料で軽量、拡張機能が豊富）</li>



<li>IntelliJ IDEA（Javaに特化した統合開発環境）</li>



<li>Eclipse（Java開発で定番のIDE）</li>
</ul>



<p>初心者の方には、<strong>Visual Studio Codeが扱いやすくおすすめ</strong>です。必要に応じて「Java Extension Pack」などを追加すると、補完機能や構文チェックも利用できます。</p>



<h2 class="wp-block-heading">最初のJSPファイルを作ってみよう</h2>



<p>前の章で、JSPを動かすための準備が整いました。この章では、実際にJSPファイルを1つ作成し、それをブラウザで表示するところまで進めます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>ここでは、「JSPとはどういうものか」を実際に体験しながら、基本的な書き方や仕組みを理解していきます。</p>
</div></div>



<h3 class="wp-block-heading">JSPファイルとはどんなファイルか</h3>



<p>JSPファイルは、基本的にはHTMLっぽく見えるコードで、この中の必要な部分にJavaのコードを差し込むことで、表示内容を動的に変えることができるようにしています。たとえば、「現在の日時を表示する」などの処理が可能になります。</p>



<p>JSPファイルの拡張子は <code><span class="bold-blue">.jsp</span></code> です。ファイルの中には、通常のHTMLタグと、Javaのコードが組み合わさって記述されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>Hello JSP&lt;/title>
&lt;/head>
&lt;body>
  &lt;h1>こんにちは、JSPの世界へようこそ！&lt;/h1>
  &lt;p>現在の時刻は：&lt;%= java.time.LocalDateTime.now() %>&lt;/p>
&lt;/body>
&lt;/html>
</pre>



<p>上記のJSPファイルの中では、JavaのコードとHTMLが組み合わさっています。それぞれの部分について説明します。</p>



<ul class="wp-block-list is-style-icon-list-circle has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin"><code>&lt;%@ page contentType="text/html; charset=UTF-8" %&gt;</code><br>→ この行は「ページ全体の設定」です。文字コードをUTF-8にすることで、文字化けを防ぎます。</li>



<li><code>&lt;%= java.time.LocalDateTime.now() %&gt;</code><br>→ この部分がJSPの特徴です。「現在の時刻を表示する」Javaのコードが入っています。<br><code>&lt;%=</code> と <code>%&gt;</code> で囲まれた中はJavaの「式」として実行され、結果がそのままHTMLに差し込まれます。</li>
</ul>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>上記のファイルをブラウザで表示するためにエディタで編集して保存しましょう。</p>
</div></div>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">Tomcatの <code>webapps</code> フォルダの中にある、前章で作成した <code>jsp-demo</code> フォルダに移動。</li>



<li class="is-style-bottom-margin-2em has-bottom-margin"><code>hello.jsp</code> という名前の新しいファイルを作成。</li>



<li>ファイルをエディタで開き、↑の内容を記述し保存！</li>
</ol>



<h3 class="wp-block-heading">ブラウザで表示してみる</h3>



<p>ファイルを保存したら、Tomcatが起動していることを確認し、ブラウザで次のURLにアクセスしてみましょう。</p>




<a rel="noopener" href="http://localhost:8080/jsp-demo/hello.jsp" title="&#28961;&#21177;&#12394;URL&#12391;&#12377;" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/http%3A%2F%2Flocalhost%3A8080%2Fjsp-demo%2Fhello.jsp?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">&#28961;&#21177;&#12394;URL&#12391;&#12377;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=http://localhost:8080/jsp-demo/hello.jsp" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">localhost</div></div></div></div></a>
</pre>



<p>画面に「こんにちは、JSPの世界へようこそ！」という見出しと、現在の時刻が表示されていれば成功です。</p>



<p>ブラウザでページを更新するたびに、時刻が変化するはずです。これは、<strong>JSPがアクセスされるたびにJavaのコードを実行して、ページの中身を動的に作っている</strong>ということを意味します。</p>



<h2 class="wp-block-heading">JSPの基本構文</h2>



<p>前の章では、JSPファイルを作成し、Javaのコードを埋め込むことで「現在の時刻を表示する」ページを作成しました。ここからは、JSPファイルで使われる代表的な構文について解説します。どのようにJavaのコードをHTMLに差し込むのか、そしてJSP特有の書き方にはどんな種類があるのかを、順を追って学習していきましょう。</p>



<h3 class="wp-block-heading">JSPの構成要素</h3>



<p>JSPでは、<strong>以下の4種類の記述形式が用意されています</strong>。これらを使い分けることで、Javaの処理とHTMLの表示を同時に扱うことができます。</p>



<figure class="wp-block-table aligncenter"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>種類</th><th>記述方法</th><th>役割</th></tr></thead><tbody><tr><td>ディレクティブ</td><td><code>&lt;%<span class="bold-red">@</span> ... %&gt;</code></td><td>ページ全体の設定を行う（文字コードなど）</td></tr><tr><td>スクリプトレット</td><td><code>&lt;% ... %&gt;</code></td><td>Javaの処理（変数の定義や条件分岐など）を書く</td></tr><tr><td>式（Expression）</td><td><code>&lt;%<span class="bold-red">=</span> ... %&gt;</code></td><td>Javaの値をそのままHTMLに出力する</td></tr><tr><td>宣言</td><td><code>&lt;%<span class="bold-red">!</span> ... %&gt;</code></td><td>メソッドやフィールドを定義する（あまり使われない）</td></tr></tbody></table></div></figure>



<h3 class="wp-block-heading">ディレクティブ</h3>



<p>ディレクティブは、JSPファイル全体に関する設定を行うものです。最もよく使われるのは <code>page</code> ディレクティブです。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>この記述によって、出力するHTMLの文字コードがUTF-8になります。日本語を正しく表示するために必須です。</p>
</div></div>



<h3 class="wp-block-heading">スクリプトレット</h3>



<p>スクリプトレットは、JSPファイル内にJavaの処理を書くための領域です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  int year = java.time.LocalDate.now().getYear();
  String message = "今年は " + year + " 年です。";
%>
&lt;p>&lt;%= message %>&lt;/p>
</pre>



<p>この例では、Javaで現在の年を取得し、それを文字列として作成しています。そして <code>&lt;%= ... %&gt;</code> を使って、結果をHTMLに出力しています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>スクリプトレットの中ではJavaの文法がそのまま使えます。ただし、後述するように<strong>スクリプトレットは新しい開発ではなるべく使わない方向にあります</strong>。</p>
</blockquote>



<h3 class="wp-block-heading">式（Expression）</h3>



<p>式は、値をそのままHTMLとして出力したいときに使います。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;p>こんにちは、&lt;%= "JSPユーザー" %>さん！&lt;/p>
</pre>



<p>上の例では、<code>"JSPユーザー"</code> という文字列がHTMLに挿入され、ブラウザには次のように表示されます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">こんにちは、JSPユーザーさん！
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>この書き方は非常にシンプルで、<strong>値を表示するだけ</strong>であれば便利ですが、複雑な処理は向きません。</p>
</div></div>



<h3 class="wp-block-heading">宣言</h3>



<p>宣言は、JSPファイルの中で<strong>メソッドや変数を定義したい場合</strong>に使います。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%! 
  private String getGreeting(String name) {
    return "こんにちは、" + name + "さん！";
  }
%>
&lt;p>&lt;%= getGreeting("太郎") %>&lt;/p>
</pre>



<p>このように、JSPファイルの中で小さな関数を定義して、それを式の中で呼び出すこともできます。<strong>ただし、JSPファイルに処理を詰め込みすぎると保守が難しくなるため、このような記述はできるだけ避け、外部のJavaクラスに処理を分けることが望まれます。</strong></p>



<h3 class="wp-block-heading">コメントの書き方</h3>



<p>JSPには、HTMLのコメントと、JSP用のコメントの2種類があります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!-- これはHTMLのコメントです（ブラウザの「ページのソース」に表示されます） -->

&lt;%-- これはJSPのコメントです（ブラウザには一切表示されません） --%>
</pre>



<p>HTMLのコメントはWebページに送信されるため、内容を見られる可能性があります。<br>一方、JSPのコメントはサーバー側で処理が止まるため、セキュリティ的に重要なコメントや開発者向けのメモはJSPのコメントで書くのが安全です。</p>



<h3 class="wp-block-heading">スクリプトレットはなるべく使わない</h3>



<p>JSPの構文として紹介しましたが、<strong>スクリプトレット（<code>&lt;% ... %&gt;</code>）の使用は、今では非推奨</strong>とされています。理由は以下の通り。</p>



<ul class="wp-block-list is-style-icon-list-cross has-list-style">
<li>HTMLとJavaのロジックが混ざることで、読みづらくなる</li>



<li>保守性が下がり、エラーが起きやすくなる</li>



<li>JSTL（JSP標準タグライブラリ）やEL（式言語）の方がシンプルで安全に書ける</li>
</ul>



<p>そのため、今後はJSTLやELを使って、できるだけ「Javaコードを書かずに表示を制御する方法」を覚えていくことが大切です。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">まとめ</span>　<strong>JSPの基本構文</strong></p>



<ul class="wp-block-list">
<li>JSPには、ディレクティブ・スクリプトレット・式・宣言という4種類の書き方がある。</li>



<li>スクリプトレットや宣言ではJavaの文法をそのまま使うことができるが、使いすぎは避けるべし。</li>



<li>式（<code>&lt;%= ... %&gt;</code>）は、値を簡単に出力するのに便利です。</li>



<li>コメントは、必要に応じてJSPコメント（<code>&lt;%-- --%&gt;</code>）を使いましょう。</li>
</ul>
</div>



<p>次の章では、<strong>JSTLとEL（式言語）を使った“スクリプトレットを使わない”JSPの書き方</strong>を学びます。より読みやすく、安全なJSPの記述方法を習得していきましょう。</p>



<h2 class="wp-block-heading">ELとJSTLでスクリプトレットのないJSPへ</h2>



<p>ここまでの解説では、JSPの基本構文としてスクリプトレット（<code>&lt;% ... %&gt;</code>）などを紹介しました。<br>しかし近年のJSP開発では、<strong>スクリプトレットを使わない記述スタイル</strong>が主流となっています。</p>



<p>この章では、<strong>EL（Expression Language）とJSTL（JSP Standard Tag Library）</strong>という2つの仕組みを使って、<strong>JSPファイルの中にJavaコードを書かずに動的な表示を行う方法</strong>を学んでいきます。</p>



<h3 class="wp-block-heading">EL（式言語）とは</h3>



<p>EL（Expression Language）は、JSPの中で<strong>Javaの値を簡潔に記述するための言語</strong>です。<br>スクリプトレットのように <code>&lt;%=</code> で囲む必要がなく、シンプルに <code>${変数名}</code> と書くだけで値を出力できます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;p>こんにちは、${userName} さん。&lt;/p>
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>このコードでは、Javaのサーバー側で <code>userName</code> という名前のデータ（属性）が用意されていれば、自動的にその値が表示されます。</p>
</div></div>



<h3 class="wp-block-heading">JSTL（JSP標準タグライブラリ）とは</h3>



<p>JSTLとは、JSP上で使える<strong>共通の処理をあらかじめタグ化したライブラリ</strong>です。<br>たとえば、以下のような処理が可能です。</p>



<ul class="wp-block-list">
<li>条件分岐（if）</li>



<li>繰り返し処理（forEach）</li>



<li>値のフォーマット（日付や数値）</li>



<li>URLの生成</li>
</ul>



<p>JSTLを使うことで、<strong>複雑なJavaの処理をわかりやすいタグで書くことができる</strong>ようになります。</p>



<h4 class="wp-block-heading">JSTLを使う準備</h4>



<p>JSTLを使うには、JSTLライブラリの <code>.jar</code> ファイルを JSPプロジェクトの中に追加する必要があります。</p>



<p class="has-text-align-center"><span class="inline-button-green">手順</span></p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li class="is-style-bottom-margin-2em has-bottom-margin">JSTLの最新版（Jakarta標準）をダウンロード<br>→ <a>https://jakarta.ee/specifications/tags/</a></li>



<li class="is-style-bottom-margin-2em has-bottom-margin">ダウンロードした <code>jakarta.servlet.jsp.jstl-api-x.x.x.jar</code> などの <code>.jar</code> ファイルを、Tomcatの <code>lib</code> フォルダ、またはプロジェクトの <code>WEB-INF/lib</code> フォルダにコピーします。</li>



<li>JSPファイルの先頭に、以下のようにタグライブラリを読み込む宣言を記述します。</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
</pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>この設定により、<code>&lt;c:if&gt;</code> や <code>&lt;c:forEach&gt;</code> などのJSTLタグが使えるようになります。</p>
</div></div>



<h4 class="wp-block-heading">JSTLで条件分岐をする</h4>



<p>スクリプトレットで <code>if</code> 文を書かなくても、JSTLの <code>&lt;c:if&gt;</code> タグを使うことで簡単に条件分岐ができます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
&lt;c:if test="${loginUser != null}">
  &lt;p>ようこそ、${loginUser.name} さん&lt;/p>
&lt;/c:if>
</pre>



<p>このように、<code>loginUser</code> という属性が <code>null</code> でなければ、挨拶文が表示されます。</p>



<h4 class="wp-block-heading">JSTLで繰り返し表示をする</h4>



<p>リストや配列の内容を繰り返し表示するには、<code>&lt;c:forEach&gt;</code> を使います。</p>



<p>サーバー側で、次のようにリストをセットしておきます（Servletなどで）：</p>



<pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">List&lt;String> names = List.of("太郎", "花子", "次郎");
request.setAttribute("nameList", names);
</pre>



<p>JSPファイルでは、次のように記述します：</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
&lt;ul>
  &lt;c:forEach var="name" items="${nameList}">
    &lt;li>${name}&lt;/li>
  &lt;/c:forEach>
&lt;/ul>
</pre>



<p>このコードにより、以下のようなHTMLが生成されます：</p>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;ul>
  &lt;li>太郎&lt;/li>
  &lt;li>花子&lt;/li>
  &lt;li>次郎&lt;/li>
&lt;/ul>
</pre>



<h3 class="wp-block-heading">JSPをすっきり保つために</h3>



<p>ELとJSTLを使うことで、JSPファイル内にJavaのコードを書く必要がなくなり、<strong>HTMLに近い構造を保ちながら動的な処理を行うことができます。</strong><br>これは、JSPを読みやすく・保守しやすくする上でも非常に重要です。</p>



<p>また、デザイナーと共同で作業するようなプロジェクトでも、HTMLに近い見た目を保つことで、分業がしやすくなります。</p>



<h2 class="wp-block-heading">フォームからデータを受け取る</h2>



<p>JSPを使ってWebアプリケーションを作成する際、ユーザーの入力に応じて処理を行うことは非常に重要です。この章では、<strong>HTMLのフォームを使って入力されたデータを、JSPで受け取って表示する方法</strong>を学びます。</p>



<h3 class="wp-block-heading">フォーム送信の流れ</h3>



<p>フォームを使った処理は、次のような流れで行われます。</p>



<ol class="wp-block-list is-style-numeric-list-enclosed has-list-style">
<li>入力フォームのあるページ（JSP）を表示する</li>



<li>ユーザーが名前などの情報を入力し、送信ボタンを押す</li>



<li>入力内容がサーバーに送られる</li>



<li>受け取ったJSPファイルがその情報を読み取り、画面に表示する</li>
</ol>



<p>JSPではこの一連の流れを、HTMLとJavaの仕組みで簡単に実現できます。</p>



<h3 class="wp-block-heading">フォームを作るJSP（entry.jsp）</h3>



<p>まずは、名前を入力するための簡単なフォームを作成します。</p>



<h4 class="wp-block-heading">entry.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;!DOCTYPE html>
&lt;html>
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>名前の入力&lt;/title>
&lt;/head>
&lt;body>
  &lt;h2>お名前を入力してください&lt;/h2>
  &lt;form action="result.jsp" method="post">
    &lt;label>名前：&lt;input type="text" name="username" />&lt;/label>
    &lt;input type="submit" value="送信" />
  &lt;/form>
&lt;/body>
&lt;/html>
</pre>



<p>このページでは、名前を入力して「送信」ボタンを押すと、<code>result.jsp</code> にPOSTリクエストでデータが送信されます。</p>



<h3 class="wp-block-heading">データを受け取るJSP（result.jsp）</h3>



<p>次に、送信されたデータを受け取って表示するためのJSPファイルを作成します。</p>



<h4 class="wp-block-heading">result.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>入力結果&lt;/title>
&lt;/head>
&lt;body>
  &lt;h2>ようこそ！&lt;/h2>
  &lt;p>あなたの名前は &lt;strong>&lt;%= request.getParameter("username") %>&lt;/strong> さんですね。&lt;/p>
&lt;/body>
&lt;/html>
</pre>



<p>ここでは、<code>request.getParameter("username")</code> というコードで、フォームから送られたデータを取得しています。</p>



<ul class="wp-block-list">
<li><code>request</code> はJSPに自動で用意されているオブジェクト。</li>



<li><code>getParameter("username")</code> は、フォームの<code>name="username"</code> に対応した値を取得するメソッド。</li>
</ul>



<h3 class="wp-block-heading">ELを使って書き換える</h3>



<p>JSTLやELを使えば、<code>result.jsp</code> をもっとすっきり書くこともできます。以下のようにリクエスト属性に値をセットしてから表示することで、式言語を活用できます。</p>



<h4 class="wp-block-heading">Servlet側（例）</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">String name = request.getParameter("username");
request.setAttribute("username", name);
request.getRequestDispatcher("/result.jsp").forward(request, response);
</pre>



<h4 class="wp-block-heading">result.jsp：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ taglib prefix="c" uri="https://jakarta.ee/taglibs/core" %>
&lt;p>こんにちは、${username} さん！&lt;/p>
</pre>



<p>ただし、Servletを使う方法はこのガイドの後半で詳しく扱いますので、今はまず <code>request.getParameter()</code> による受け取りに慣れることをおすすめします。</p>



<h2 class="wp-block-heading">セッションとCookieでデータを保持する</h2>



<p>JSPでは、ユーザーが入力した情報を「別のページでも使いたい」という場面がよくあります。<br>たとえば、ログイン状態を維持したり、前の画面で入力された名前を次の画面でも表示したりする場合です。</p>



<p>そのようなときに役立つのが <strong>セッション（Session）</strong> と <strong>クッキー（Cookie）</strong> です。<br>この章では、それぞれの役割と使い方を学びます。</p>



<h3 class="wp-block-heading">セッションの基本操作</h3>



<h4 class="wp-block-heading">データの保存：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = request.getParameter("username");
  session.setAttribute("userName", name);
%>
</pre>



<p>このコードは、<code>userName</code> という名前でセッションに値を保存します。</p>



<h4 class="wp-block-heading">データの取得：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = (String) session.getAttribute("userName");
%>
&lt;p>ようこそ、&lt;%= name %> さん&lt;/p>
</pre>



<p>このようにすれば、<strong>前のページで保存した値を、別のページで取り出して使うことができます。</strong></p>



<h4 class="wp-block-heading">セッションの有効期間と注意点</h4>



<p>セッションは、ユーザーがブラウザを閉じるか、一定時間操作をしないと自動的に無効になります。Tomcatの初期設定では、30分間操作がないとセッションが切れます。</p>



<p>また、<strong>多くの情報をセッションに保存しすぎると、サーバーのメモリを圧迫する可能性がある</strong>ため、用途を絞って使うことが大切です。</p>



<h3 class="wp-block-heading">Cookieとは</h3>



<p>Cookie（クッキー）は、<strong>情報をユーザーのブラウザに保存する仕組み</strong>です。<br>サーバー側から「この情報を保存しておいてください」と指示すると、ブラウザがその内容を保持し、次回以降のアクセス時にその情報を自動的に送信してきます。</p>



<h3 class="wp-block-heading">Cookieの基本操作</h3>



<h4 class="wp-block-heading">Cookieの作成と送信：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = request.getParameter("username");
  Cookie cookie = new Cookie("userName", name);
  cookie.setMaxAge(60 * 60); // 1時間（秒単位）
  response.addCookie(cookie);
%>
</pre>



<h4 class="wp-block-heading">Cookieの取得：</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%
  String name = "";
  Cookie[] cookies = request.getCookies();
  if (cookies != null) {
    for (Cookie c : cookies) {
      if ("userName".equals(c.getName())) {
        name = c.getValue();
      }
    }
  }
%>
&lt;p>こんにちは、&lt;%= name %> さん&lt;/p>
</pre>



<p>このように、Cookieを使えば、ブラウザに保存された情報を次回のアクセス時にも利用できます。</p>



<h3 class="wp-block-heading">セッションとCookieの使い分け</h3>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>セッション</th><th>Cookie</th></tr></thead><tbody><tr><td>保存場所</td><td>サーバー側</td><td>ブラウザ側</td></tr><tr><td>有効期間</td><td>ログアウトや時間切れまで</td><td>明示的に期限を設定できる</td></tr><tr><td>データの大きさ</td><td>比較的大きなデータがOK</td><td>少量（4KBまで）</td></tr><tr><td>セキュリティ</td><td>比較的安全（外部に見えない）</td><td>攻撃に注意が必要（盗聴・改ざん）</td></tr></tbody></table></div></figure>



<p><strong>一時的な状態保持（ログイン情報など）にはセッション</strong>、<br><strong>ユーザーに関連する設定（言語選択やテーマなど）にはCookie</strong>がよく使われます。</p>



<h2 class="wp-block-heading">JSPで簡単なアンケートアプリを作ろう</h2>



<p>JSPを使ってWebアプリケーションを作るには、「複数ページにまたがる処理」を整理することが大切です。<br>この章では、<strong>3画面構成のアンケートアプリ</strong>を作り、情報の受け渡し、表示の切り替え、セッションの活用を総合的に体験します。</p>



<h3 class="wp-block-heading">アプリの構成と目的</h3>



<p>このアプリでは、以下のような流れでユーザーにアンケートに答えてもらい、最終画面でまとめて表示します。</p>



<ol class="wp-block-list">
<li><strong>入力画面</strong>：名前と好きな色を入力（form）</li>



<li><strong>確認画面</strong>：入力された内容を表示（セッションで一時保持）</li>



<li><strong>完了画面</strong>：ありがとうメッセージと入力内容の最終確認</li>
</ol>



<p class="has-text-align-center"><strong>プロジェクト構造</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">jsp-demo/
├─ input.jsp     （入力画面）
├─ confirm.jsp   （確認画面）
└─ thanks.jsp    （完了画面）
</pre>



<h4 class="wp-block-heading">入力画面：input.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>&lt;meta charset="UTF-8">&lt;title>アンケート入力&lt;/title>&lt;/head>
&lt;body>
  &lt;h2>アンケートにご協力ください&lt;/h2>
  &lt;form action="confirm.jsp" method="post">
    &lt;p>お名前：&lt;input type="text" name="userName" />&lt;/p>
    &lt;p>好きな色：
      &lt;select name="favoriteColor">
        &lt;option value="赤">赤&lt;/option>
        &lt;option value="青">青&lt;/option>
        &lt;option value="緑">緑&lt;/option>
      &lt;/select>
    &lt;/p>
    &lt;input type="submit" value="確認画面へ" />
  &lt;/form>
&lt;/body>
&lt;/html>
</pre>



<h4 class="wp-block-heading">確認画面：confirm.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;%
  String userName = request.getParameter("userName");
  String favoriteColor = request.getParameter("favoriteColor");

  session.setAttribute("userName", userName);
  session.setAttribute("favoriteColor", favoriteColor);
%>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>&lt;meta charset="UTF-8">&lt;title>確認画面&lt;/title>&lt;/head>
&lt;body>
  &lt;h2>以下の内容でよろしいですか？&lt;/h2>
  &lt;p>お名前：&lt;%= userName %>&lt;/p>
  &lt;p>好きな色：&lt;%= favoriteColor %>&lt;/p>
  &lt;form action="thanks.jsp" method="post">
    &lt;input type="submit" value="送信する" />
  &lt;/form>
&lt;/body>
&lt;/html>
</pre>



<h4 class="wp-block-heading">完了画面：thanks.jsp</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;%@ page contentType="text/html; charset=UTF-8" %>
&lt;%
  String name = (String) session.getAttribute("userName");
  String color = (String) session.getAttribute("favoriteColor");

  // 必要があればセッションのデータを破棄
  session.invalidate();
%>
&lt;!DOCTYPE html>
&lt;html>
&lt;head>&lt;meta charset="UTF-8">&lt;title>送信完了&lt;/title>&lt;/head>
&lt;body>
  &lt;h2>ご協力ありがとうございました！&lt;/h2>
  &lt;p>&lt;strong>&lt;%= name %>&lt;/strong> さんの好きな色は &lt;strong>&lt;%= color %>&lt;/strong> ですね。&lt;/p>
&lt;/body>
&lt;/html>
</pre>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center">&#x2705; まとめ</p>



<ul class="wp-block-list">
<li><strong>JSPとは何か</strong>
<ul class="wp-block-list">
<li>HTMLにJavaの処理を埋め込んで、動的なWebページを作成できる技術</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">サーバー側で処理され、HTMLとしてブラウザに返される</li>
</ul>
</li>



<li><strong>JSPの実行に必要な環境</strong>
<ul class="wp-block-list">
<li>JDKとTomcatが必須（Java実行環境とWebサーバー）</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSPファイルはTomcatの<code>webapps</code>内に配置することで動作する</li>
</ul>
</li>



<li><strong>JSPファイルの基本構文</strong>
<ul class="wp-block-list">
<li><code>&lt;%@ page %&gt;</code>：ページ全体の設定</li>



<li><code>&lt;%= ... %&gt;</code>：Javaの値をHTMLに出力</li>



<li><code>&lt;% ... %&gt;</code>：処理を書く（スクリプトレット）</li>



<li class="is-style-bottom-margin-2em has-bottom-margin"><code>&lt;%! ... %&gt;</code>：変数やメソッドの宣言</li>
</ul>
</li>



<li><strong>スクリプトレットの非推奨と代替方法</strong>
<ul class="wp-block-list">
<li>EL（式言語）で<code>${変数名}</code>と書くと簡単に出力可能</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">JSTLで<code>&lt;c:if&gt;</code>や<code>&lt;c:forEach&gt;</code>などの制御構文を記述可能</li>
</ul>
</li>



<li><strong>フォームデータの送受信</strong>
<ul class="wp-block-list">
<li><code>&lt;form&gt;</code>タグでデータをPOST送信し、<code>request.getParameter()</code>で取得</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">データをセッションに保存して複数ページで利用可能</li>
</ul>
</li>



<li><strong>セッションとCookieの使い分け</strong>
<ul class="wp-block-list">
<li>セッション：サーバー側に一時的に情報を保持（ログイン状態など）</li>



<li class="is-style-bottom-margin-2em has-bottom-margin">Cookie：ブラウザに保存し、次回アクセス時に自動送信（言語設定など）</li>
</ul>
</li>
</ul>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【Java】Stream APIとは？filter・map・collectの使い方を初心者向けに1から解説</title>
		<link>https://it-biz.online/java/java-stream-api/</link>
					<comments>https://it-biz.online/java/java-stream-api/#respond</comments>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Wed, 06 May 2026 05:07:22 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10747</guid>

					<description><![CDATA[JavaのStream APIとは何か、filter・map・collectの読み方、for文との違いを初心者向けに概念図つきで解説します。]]></description>
										<content:encoded><![CDATA[
<p>JavaのStream APIは、ひとことで言うと、<strong><span class="marker-under">Listなどのデータを「順番に加工する流れ」として書くための仕組み</span></strong>です。</p>



<p>たとえば、名簿の中から「Sで始まる名前だけ」を取り出して、「大文字」に変えて、「新しいList」にしたいとします。このような処理を、上から順番に読める形で書けるのがStream APIです。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>最初から難しい用語を覚える必要はありません。まずは「データを流して、途中で絞り込みや変換をして、最後に結果を受け取る」と考えればOKです。</p>
  </div>
</div>



<p>この記事では、Stream APIの意味、for文との違い、<code>filter</code>・<code>map</code>・<code>collect</code>の読み方を、初心者向けにできるだけかみ砕いて解説します。</p>



<p>なお、この記事で扱うStreamは、<code>java.util.stream</code>のStream APIです。ファイルの読み書きで出てくる<code>InputStream</code>や<code>OutputStream</code>とは別物です。ファイル入出力のストリームは、<a href="https://it-biz.online/java/java-io/">Java.ioを使用したファイルの読み書き</a>で解説しています。</p>



<h2 class="wp-block-heading">まず結論：Stream APIは「データを順番に加工する書き方」</h2>



<p>Stream APIを理解するときは、次の3つだけを先に押さえてください。</p>



<ul class="wp-block-list is-style-icon-list-comment has-list-style">
  <li>元になるデータを用意する</li>
  <li>途中で、必要なものだけ残したり、形を変えたりする</li>
  <li>最後に、Listなどの結果として受け取る</li>
</ul>



<p>この流れをコードで書くと、だいたい次の形になります。</p>



<pre class="wp-block-code"><code>元のデータ.stream()
        .途中の処理()
        .途中の処理()
        .最後に結果を受け取る処理();</code></pre>



<p>専門用語では、途中の処理を「中間操作」、最後の処理を「終端操作」と呼びます。ただ、初心者のうちは、まず「途中の処理」と「最後の処理」と考えれば十分です。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1200" height="675" src="https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-concept-ja.png" alt="Stream APIはListそのものではなくListを処理するための流れを作るという概念図" class="wp-image-10753" srcset="https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-concept-ja.png 1200w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-concept-ja-500x281.png 500w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-concept-ja-800x450.png 800w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-concept-ja-300x169.png 300w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-concept-ja-768x432.png 768w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-concept-ja-240x135.png 240w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-concept-ja-320x180.png 320w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-concept-ja-640x360.png 640w" sizes="(max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">Streamは「データを入れる箱」ではなく、Listを処理するための「流れ」です。</figcaption></figure>



<h2 class="wp-block-heading">何に困ったときにStream APIを使うの？</h2>



<p>Stream APIは、複数のデータをまとめて扱うときによく使います。</p>



<p>たとえば、次のような場面です。</p>



<ul class="wp-block-list is-style-icon-list-thumb-up has-list-style">
  <li>Listの中から条件に合うデータだけ取り出したい</li>
  <li>Listの中身を別の形に変換したい</li>
  <li>条件に合うデータが何件あるか数えたい</li>
  <li>最初の1件だけ取り出したい</li>
</ul>



<p>つまりStream APIは、<strong>「データの一覧をどう加工するか」</strong>を書くときに便利です。</p>



<p>まだ<code>List</code>や<code>Map</code>があやふやな場合は、先に<a href="https://it-biz.online/java/java-collections-framework/">JavaのListやMapの使い方</a>を読むと理解しやすくなります。</p>



<h2 class="wp-block-heading">まずはこのコードを読めればOK</h2>



<p>Stream APIの基本は、次のコードでかなりつかめます。</p>



<pre class="wp-block-code"><code>List&lt;String&gt; result = names.stream()
        .filter(name -&gt; name.startsWith("S"))
        .map(name -&gt; name.toUpperCase())
        .collect(Collectors.toList());</code></pre>



<p>このコードは、次のように読みます。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>コード</th><th>やっていること</th></tr></thead><tbody><tr><td><code>names.stream()</code></td><td><code>names</code>というListを処理の流れに乗せる</td></tr><tr><td><code>filter(...)</code></td><td>条件に合う名前だけ残す</td></tr><tr><td><code>map(...)</code></td><td>残った名前を大文字に変える</td></tr><tr><td><code>collect(...)</code></td><td>最後にListとして受け取る</td></tr></tbody></table></div></figure>



<p>この読み方ができれば、最初の一歩としては十分です。</p>



<h2 class="wp-block-heading">for文で書く場合と比べてみる</h2>



<p>Stream APIでできることは、for文でも書けます。まず、for文で書くと次のようになります。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1200" height="675" src="https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-for-vs-stream-ja.png" alt="for文とStream APIの違いを初心者向けに比較した概念図" class="wp-image-10755" srcset="https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-for-vs-stream-ja.png 1200w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-for-vs-stream-ja-500x281.png 500w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-for-vs-stream-ja-800x450.png 800w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-for-vs-stream-ja-300x169.png 300w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-for-vs-stream-ja-768x432.png 768w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-for-vs-stream-ja-240x135.png 240w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-for-vs-stream-ja-320x180.png 320w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-for-vs-stream-ja-640x360.png 640w" sizes="(max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">for文は手順を1つずつ書く、Stream APIは目的を流れで書く、と考えると整理しやすくなります。</figcaption></figure>



<pre class="wp-block-code"><code>List&lt;String&gt; result = new ArrayList&lt;&gt;();

for (String name : names) {
    if (name.startsWith("S")) {
        result.add(name.toUpperCase());
    }
}</code></pre>



<p>これはこれで分かりやすい書き方です。ただし、処理の流れを読むには、<code>result</code>を作って、for文で回して、if文で判定して、addする、という手順を追う必要があります。</p>



<p>同じ処理をStream APIで書くと、次のようになります。</p>



<pre class="wp-block-code"><code>List&lt;String&gt; result = names.stream()
        .filter(name -&gt; name.startsWith("S"))
        .map(name -&gt; name.toUpperCase())
        .collect(Collectors.toList());</code></pre>



<p>Stream APIでは、<strong><span class="marker-under">「何をしたいのか」が上から順番に並ぶ</span></strong>ため、慣れると処理の目的を読み取りやすくなります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
  <div class="speech-person">
    <figure class="speech-icon"><img wpfc-lazyload-disable="true" wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure>
    <div class="speech-name"></div>
  </div>
  <div class="speech-balloon">
    <p>Stream APIは「for文より偉い書き方」ではありません。データを絞り込み、変換し、結果を作る流れを見せたいときに便利な書き方です。</p>
  </div>
</div>



<h2 class="wp-block-heading">filter・map・collectを1つずつ理解する</h2>



<p>初心者が最初に覚えるべきなのは、<code>filter</code>・<code>map</code>・<code>collect</code>の3つです。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1200" height="675" src="https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-three-steps-ja.png" alt="Stream APIでまず覚えるfilter map collectの3つの処理を示した図" class="wp-image-10754" srcset="https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-three-steps-ja.png 1200w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-three-steps-ja-500x281.png 500w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-three-steps-ja-800x450.png 800w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-three-steps-ja-300x169.png 300w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-three-steps-ja-768x432.png 768w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-three-steps-ja-240x135.png 240w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-three-steps-ja-320x180.png 320w, https://it-biz.online/wp-content/uploads/2026/05/java-stream-api-three-steps-ja-640x360.png 640w" sizes="(max-width: 1200px) 100vw, 1200px" /><figcaption class="wp-element-caption">まずは、filterで残す、mapで変える、collectで受け取る、の3つだけ押さえましょう。</figcaption></figure>



<h3 class="wp-block-heading">filterは「条件に合うものだけ残す」</h3>



<p><code>filter</code>は、条件に合うデータだけを残す処理です。</p>



<pre class="wp-block-code"><code>.filter(name -&gt; name.startsWith("S"))</code></pre>



<p>この例では、「Sで始まる名前だけ残す」という意味です。条件に合わない<code>Tanaka</code>のような名前は、次の処理へ進みません。</p>



<h3 class="wp-block-heading">mapは「別の形に変える」</h3>



<p><code>map</code>は、データを別の形に変える処理です。</p>



<pre class="wp-block-code"><code>.map(name -&gt; name.toUpperCase())</code></pre>



<p>この例では、名前を大文字に変えています。<code>Sato</code>は<code>SATO</code>になります。</p>



<h3 class="wp-block-heading">collectは「最後に結果を受け取る」</h3>



<p><code>collect</code>は、途中で処理した結果を最後に受け取るための処理です。</p>



<pre class="wp-block-code"><code>.collect(Collectors.toList())</code></pre>



<p>この例では、処理結果を新しいListとして受け取っています。</p>



<p>ここで出てくる<code>name -&gt; ...</code>の部分はラムダ式です。ラムダ式が分からない場合は、<a href="https://it-biz.online/java/java-lambda/">Javaのラムダ式</a>の記事をあわせて読むと理解しやすくなります。</p>



<h2 class="wp-block-heading">実際に動くサンプルコード</h2>



<p>全体のコードは次の通りです。</p>



<pre class="wp-block-code"><code>import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamSample {
    public static void main(String[] args) {
        List&lt;String&gt; names = Arrays.asList("Sato", "Suzuki", "Tanaka", "Sasaki");

        List&lt;String&gt; result = names.stream()
                .filter(name -&gt; name.startsWith("S"))
                .map(name -&gt; name.toUpperCase())
                .collect(Collectors.toList());

        System.out.println(result);
    }
}</code></pre>



<p>実行すると、次のように表示されます。</p>



<pre class="wp-block-code"><code>[SATO, SUZUKI, SASAKI]</code></pre>



<p><code>Tanaka</code>はSで始まらないため、<code>filter</code>の時点で除外されています。</p>



<h2 class="wp-block-heading">初心者がつまずきやすいポイント</h2>



<p>Stream APIで最初につまずきやすいポイントを整理します。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>つまずき</th><th>まずこう理解する</th></tr></thead><tbody><tr><td>StreamはListなの？</td><td>Listそのものではなく、Listを処理するための流れ</td></tr><tr><td>filterだけで結果が出る？</td><td>最後にcollectやcountなどが必要</td></tr><tr><td>mapとforEachは同じ？</td><td>mapは変換、forEachは最後に1件ずつ処理</td></tr><tr><td>parallelStreamは速い？</td><td>必ず速いわけではない。最初はstreamで十分</td></tr></tbody></table></div></figure>



<p>特に大事なのは、<strong><span class="marker-under">Streamは元のListを直接書き換えるものではない</span></strong>という点です。</p>



<p>次のコードでは、大文字にした結果は<code>result</code>に入ります。元の<code>names</code>がそのまま大文字に変わるわけではありません。</p>



<pre class="wp-block-code"><code>List&lt;String&gt; result = names.stream()
        .map(name -&gt; name.toUpperCase())
        .collect(Collectors.toList());</code></pre>



<p>また、<code>findFirst()</code>のようなメソッドでは<code>Optional</code>が出てくることがあります。Optionalについては、<a href="https://it-biz.online/java/java-optional/">JavaのOptionalとは？</a>で解説しています。</p>



<h2 class="wp-block-heading">Stream APIはいつ使う？いつ使わない？</h2>



<p>Stream APIは、次のような処理に向いています。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li>Listから条件に合うものだけ取り出す</li>
  <li>データを別の形に変換する</li>
  <li>件数を数える</li>
  <li>処理の流れを短く、読みやすく見せたい</li>
</ul>



<p>一方で、処理の途中で複雑な分岐が何度も出てくる場合や、for文の方が素直に読める場合は、無理にStream APIを使う必要はありません。</p>



<p>Stream APIは、コードを短くするためだけの道具ではありません。<strong>データをどう加工して、最後に何を得たいのかを見やすくするための道具</strong>です。</p>



<h2 class="wp-block-heading">関連して読みたい記事</h2>



<p>Stream APIは、Javaの他の基礎知識とつながっています。</p>



<ul class="wp-block-list">
  <li><a href="https://it-biz.online/java/java-collections-framework/">Java：ListやMapの使い方を3分で1から解説</a></li>
  <li><a href="https://it-biz.online/java/java-lambda/">Java：ラムダ式（lambda）を3分でわかりやすく</a></li>
  <li><a href="https://it-biz.online/java/functional-interface/">Javaの関数型インターフェースを1分でわかりやすく</a></li>
  <li><a href="https://it-biz.online/java/java-optional/">JavaのOptionalとは？nullを安全に扱う基本</a></li>
  <li><a href="https://it-biz.online/java/java-curriculum-roadmap/">Java学習ロードマップ完全版</a></li>
</ul>



<h2 class="wp-block-heading">まとめ</h2>



<p>JavaのStream APIは、Listなどのデータを「処理の流れ」として書くための仕組みです。</p>



<p>初心者のうちは、まず次の3つだけ覚えてください。</p>



<ul class="wp-block-list is-style-icon-list-check has-list-style">
  <li><code>filter</code>は、条件に合うものだけ残す</li>
  <li><code>map</code>は、別の形に変える</li>
  <li><code>collect</code>は、最後に結果を受け取る</li>
</ul>



<p>最初から難しいメソッドを全部覚える必要はありません。まずは、<code>names.stream().filter(...).map(...).collect(...)</code>という流れを読めるようになればOKです。</p>

]]></content:encoded>
					
					<wfw:commentRss>https://it-biz.online/java/java-stream-api/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【IT用語解説】コンパイルとは？初心者向けに1からわかりやすく解説</title>
		<link>https://it-biz.online/it-skills/compile/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Sun, 26 Apr 2026 10:37:54 +0000</pubDate>
				<category><![CDATA[IT-Skills]]></category>
		<category><![CDATA[用語解説]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10744</guid>

					<description><![CDATA[コンパイルとは何かをIT初心者向けに解説します。ソースコードが実行用の形へ変換される流れ、コンパイルエラー、ビルドやリンクとの違い、実務でのログの読み方まで整理します。]]></description>
										<content:encoded><![CDATA[
<p><span class="marker-under">コンパイルとは、人間が書いたソースコードを、コンピュータや実行環境が扱いやすい形に変換する作業</span>です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>初心者のうちは「コードを実行できる形にする作業」と考えるとつかみやすいです。ただし実務では、それだけではありません。コンパイルは、文法ミスや型の不一致を実行前に見つけたり、プログラムを効率よく動かすための準備をしたりする大事な工程でもあります。</p>
</div></div>



<p>たとえばJavaで `HelloWorld.java` というファイルを書いたあと、`javac HelloWorld.java` を実行すると `HelloWorld.class` というファイルができます。この「.java から .class へ変換する」作業がコンパイルです。Javaの作成から実行までの具体的な手順は、関連する <a href="https://it-biz.online/java/java-program-execute/">Javaプログラムの作成から実行まで</a> でも整理されています。</p>



<h2 class="wp-block-heading">コンパイルは「翻訳」よりも「実行前の整備」に近い</h2>



<p>コンパイルはよく「翻訳」に例えられます。人間が読めるプログラミング言語を、コンピュータが扱いやすい言葉に変換する、という説明です。この例えはかなり分かりやすいのですが、実務で使える理解にするなら、もう一歩だけ足すとよいです。</p>



<p>コンパイルは単なる翻訳ではなく、<span class="blue">実行前にコードを整え、間違いを検査し、実行環境へ渡せる形にする工程</span>です。つまり、書いたコードをそのまま走らせる前に「この書き方で本当に大丈夫か」「実行に必要な形へ変換できるか」を確認してくれる関門だと考えると、エラーの意味も読みやすくなります。</p>



<p>たとえば、次のようなJavaコードを書いたとします。</p>



<pre><code class="language-java">public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}</code></pre>



<p>このコードは人間には読めますが、Java仮想マシンが実行するには、まず `javac` によってバイトコードへ変換されます。ここでクラス名、括弧、セミコロン、型などの基本ルールも確認されます。</p>



<h2 class="wp-block-heading">まず全体の流れを図で見る</h2>



<p>コンパイルを最初に理解するときは、定義だけを読むよりも、何が何に変わるのかを見た方が早いです。次の図は、ソースコードがコンパイラを通り、実行用の形になり、最後に結果を確認するまでの流れを示しています。</p>



<figure class="wp-block-image size-large">
  <img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2026/04/compile-flow.png" alt="コンパイルでソースコードが実行用の形へ変換される流れ" />
  <figcaption>ソースコードから実行用の形へ変換される基本的な流れ</figcaption>
</figure>



<p>この図で見てほしいのは、コンパイルが「コードを書く」と「プログラムを実行する」の間にあることです。初心者は、コードを書いたらすぐ動くと思いがちですが、多くの言語ではその間に変換や検査の工程があります。</p>



<p>実務では、この途中で止まることがよくあります。たとえば、コンパイルの段階で止まれば「実行前に見つかった問題」です。一方、コンパイルは通ったのに動かすと落ちる場合は「実行時に起きた問題」です。この切り分けができるだけで、エラー対応はかなり楽になります。</p>



<h2 class="wp-block-heading">コンパイルで実際に何が作られるのか</h2>



<p>コンパイル後に何が作られるかは、言語や実行環境によって違います。すべてがCPUの機械語になる、という理解だけだと少し狭すぎます。</p>



<p>代表的には、次のような変換があります。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>言語・環境</th><th>コンパイル前</th><th>コンパイル後</th><th>実行するもの</th></tr></thead><tbody><tr><td>C</td><td>.c ファイル</td><td>機械語を含む実行ファイル</td><td>OSとCPU</td></tr><tr><td>Java</td><td>.java ファイル</td><td>.class バイトコード</td><td>JVM</td></tr><tr><td>C#</td><td>.cs ファイル</td><td>中間言語</td><td>.NETランタイム</td></tr><tr><td>TypeScript</td><td>.ts ファイル</td><td>JavaScript</td><td>ブラウザやNode.js</td></tr></tbody></table></div></figure>



<p>ここで大切なのは、コンパイル後の形が必ずしも「最終的な機械語」とは限らないことです。Javaのように、いったんバイトコードへ変換し、その後JVMが実行する言語もあります。TypeScriptのように、JavaScriptへ変換してから実行するケースもあります。</p>



<p>Javaの開発環境で出てくるJDK、JRE、JVMの関係は、<a href="https://it-biz.online/java/java-setup/">Javaの開発環境構築</a> と合わせて読むと整理しやすいです。コンパイルという言葉は、こうした実行環境の話とセットで出てくることが多いからです。</p>



<h2 class="wp-block-heading">コンパイルエラーはどこで起きるのか</h2>



<p>コンパイルエラーとは、コンパイラがコードを変換できないと判断した状態です。言い換えると、プログラムを動かす前に「このままでは実行用の形にできません」と止めてくれている状態です。</p>



<p>たとえば、次のJavaコードにはセミコロンがありません。</p>



<pre><code class="language-java">public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world!")
    }
}</code></pre>



<p>この状態でコンパイルすると、環境によって表現は少し異なりますが、次のようなエラーになります。</p>



<pre><code class="language-text">HelloWorld.java:3: error: ';' expected
        System.out.println("Hello, world!")
                                           ^
1 error</code></pre>



<p>この出力で見るべきポイントは3つです。`HelloWorld.java:3` はファイル名と行番号、`';' expected` は「セミコロンが必要です」という意味、`^` はコンパイラが怪しいと見ている位置です。</p>



<p>コンパイルエラーは、初心者にとっては怖く見えます。ですが、実務ではかなりありがたい存在です。なぜなら、ユーザーに見せる前、本番環境に出す前、あるいはチームの共有ブランチへ入れる前に、基本的なミスを止めてくれるからです。</p>



<h2 class="wp-block-heading">ビルド・リンク・実行との違い</h2>



<p>コンパイルを理解するときに、混同しやすい言葉がいくつかあります。特に「ビルド」はかなり近い言葉です。</p>



<p>ざっくり言うと、<span class="marker-under">ビルドは完成品を作る一連の作業、コンパイルはその中に含まれる変換作業</span>です。ビルドの全体像は <a href="https://it-biz.online/it-skills/build/">ビルドとは？</a> の記事でも扱われていますが、ここではコンパイルとの違いに絞って見ておきます。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>用語</th><th>意味</th><th>現場での使われ方</th></tr></thead><tbody><tr><td>コンパイル</td><td>ソースコードを実行環境が扱いやすい形へ変換する</td><td>「コンパイルエラーが出た」「型チェックで落ちた」</td></tr><tr><td>リンク</td><td>複数の部品やライブラリを結合する</td><td>「ライブラリが見つからずリンクエラーになった」</td></tr><tr><td>ビルド</td><td>コンパイル、リンク、資材生成、テストなどを含む作業全体</td><td>「CIのビルドが落ちた」「npm run build が失敗した」</td></tr><tr><td>実行</td><td>変換後のプログラムを実際に動かす</td><td>「起動したら例外が出た」「画面で動作確認した」</td></tr></tbody></table></div></figure>



<p>CやC++では、コンパイルとリンクの違いが特に重要です。あるファイル単体の文法は正しくても、別ファイルにあるはずの関数やライブラリが見つからないと、リンクの段階で止まることがあります。</p>



<p>一方、JavaやTypeScriptでは「ビルド」と言ったときに、コンパイル、型チェック、ファイル変換、依存関係の解決などがまとめて行われることが多いです。実務で「ビルドが落ちた」と言われたら、まずログを見て、それがコンパイルエラーなのか、テスト失敗なのか、依存関係の問題なのかを切り分けます。</p>



<h2 class="wp-block-heading">コンパイル言語とインタプリタ言語の違い</h2>



<p>プログラミング言語の説明では、よく「コンパイル言語」と「インタプリタ言語」という分け方が出てきます。初心者向けには、実行前にまとめて変換するのがコンパイル言語、実行しながら解釈するのがインタプリタ言語、と理解すると入り口としては十分です。</p>



<p>代表例を整理すると、次のようになります。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>分類</th><th>代表例</th><th>特徴</th></tr></thead><tbody><tr><td>コンパイル型として説明されやすい言語</td><td>C、C++、Go、Rust、Java、C#</td><td>実行前に変換や検査の工程がはっきり見えやすい</td></tr><tr><td>インタプリタ型として説明されやすい言語</td><td>Python、Ruby、PHP、JavaScript</td><td>実行しながら解釈されるイメージで説明されやすい</td></tr></tbody></table></div></figure>



<p>ただし、現代の実行環境では、この分類はかなり混ざっています。JavaScriptはブラウザ内部でJITコンパイルされることがありますし、Pythonも内部的にはバイトコードを使います。</p>



<p>そのため実務では、「この言語はコンパイルするか、しないか」と単純に覚えるより、<span class="blue">どのタイミングで、何に変換され、どんなエラーがその段階で出るのか</span>を見る方が役に立ちます。</p>



<h2 class="wp-block-heading">コンパイル時と実行時を分けて考える</h2>



<p>現場で特に大切なのが、「コンパイル時」と「実行時」を分ける考え方です。コンパイル時は、コードを変換している段階です。実行時は、変換されたプログラムを実際に動かしている段階です。</p>



<p>この違いが分かると、エラーの調べ方が変わります。たとえば、型が合わない、存在しない変数を使っている、文法が崩れている、といった問題はコンパイル時に見つかりやすいです。一方、ファイルが存在しない、ネットワーク接続に失敗する、ユーザー入力が想定外だった、という問題は実行時に起きることが多いです。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>タイミング</th><th>何をしているか</th><th>よく出る問題</th></tr></thead><tbody><tr><td>コンパイル時</td><td>コードを変換し、文法や型を確認する</td><td>文法ミス、型不一致、名前間違い、import不足</td></tr><tr><td>実行時</td><td>プログラムを実際に動かす</td><td>例外、通信エラー、ファイル未存在、データ不整合</td></tr></tbody></table></div></figure>



<p>たとえば `int age = "20";` のように、数値型に文字列を入れようとすると、Javaではコンパイル時に止まります。これはコンパイラが「この型の組み合わせはおかしい」と実行前に判断できるからです。</p>



<p>一方、ユーザーが入力したファイル名を開こうとして、そのファイルが実際には存在しなかった場合、コンパイル時には分からないことがあります。ファイルがあるかどうかは、プログラムを動かす環境やその瞬間の状態に依存するからです。</p>



<p>この切り分けは、バグ調査でかなり効きます。コンパイル時に落ちているなら、まずコード、型、依存関係、設定ファイルを見ます。実行時に落ちているなら、入力データ、環境変数、ネットワーク、ファイル、DBの状態を見ます。</p>



<h3 class="wp-block-heading">トランスパイル・JIT・最適化も押さえる</h3>



<p>コンパイルの話をしていると、トランスパイル、JIT、最適化という言葉も出てきます。初心者の段階で細部まで暗記する必要はありませんが、現場で言葉を聞いたときに混乱しない程度には整理しておくと安心です。</p>



<p>トランスパイルとは、あるプログラミング言語のコードを、別のプログラミング言語のコードへ変換することです。代表例はTypeScriptです。TypeScriptで書いたコードは、多くの場合JavaScriptへ変換されてからブラウザやNode.jsで実行されます。</p>



<pre><code class="language-typescript">// TypeScript
const message: string = "Hello";
console.log(message);</code></pre>



<pre><code class="language-javascript">// 変換後のJavaScriptのイメージ
const message = "Hello";
console.log(message);</code></pre>



<p>JITは Just-In-Time の略で、実行中に必要な部分を高速な形へ変換する仕組みです。JavaのJVMやJavaScriptエンジンなどで出てくる考え方です。最初から全部を完全な機械語へ変換して終わり、というより、実行しながらよく使う処理を効率化するイメージです。</p>



<p>最適化とは、プログラムの意味を変えずに、より速く、より無駄なく動くように変換することです。たとえば、不要な計算を減らしたり、同じ結果になる処理を効率よく置き換えたりします。ただし、初心者が最初から最適化を意識しすぎる必要はありません。まずは読みやすく正しいコードを書き、コンパイルエラーを読めるようになる方が大切です。</p>



<h2 class="wp-block-heading">実務でコンパイルをどう見るか</h2>



<p>現場でコンパイルという言葉を聞く場面は、思ったより多いです。たとえばIDEで赤い波線が出る、ターミナルで `mvn package` が失敗する、GitHub ActionsなどのCIでビルドが落ちる、といった場面です。</p>



<p>実務でよく見るコマンドには、次のようなものがあります。</p>



<pre><code class="language-bash">javac HelloWorld.java
mvn package
gradle build
npm run build
tsc
go build
cargo build</code></pre>



<p>これらはすべて同じことをしているわけではありません。`javac` はJavaソースをバイトコードへ変換するコンパイラです。`mvn package` や `gradle build` は、コンパイルだけでなくテストや成果物作成まで含むことがあります。`tsc` はTypeScriptをJavaScriptへ変換しながら型チェックも行います。</p>



<p>現場で大切なのは、コマンド名を丸暗記することではありません。失敗したときに、ログのどこを見るかです。最初のエラー、対象ファイル、行番号、期待された型、見つからなかったライブラリ名。このあたりを拾えるようになると、コンパイルエラーはかなり読みやすくなります。</p>



<p>Javaプロジェクト管理ツールを使う場合は、<a href="https://it-biz.online/java/maven/">Mavenとは？</a> のようなビルドツールの記事も一緒に読むと、コンパイルがプロジェクト全体の流れのどこに入るかを理解しやすくなります。</p>



<h2 class="wp-block-heading">よくあるミスと読み解き方</h2>



<p>コンパイルでつまずく原因は、ある程度パターンがあります。初心者のうちは「全部わからないエラー」に見えますが、実際にはいくつかの型に分けられます。</p>



<figure class="wp-block-table"><div class="scrollable-table stfc-sticky"><table><thead><tr><th>よくあるミス</th><th>起きること</th><th>読み解き方</th></tr></thead><tbody><tr><td>文法ミス</td><td>セミコロン、括弧、波括弧などの不足で止まる</td><td>行番号と `expected` の後に出ている記号を見る</td></tr><tr><td>型の不一致</td><td>数値に文字列を入れるなど、型が合わずに止まる</td><td>`required` と `found` の組み合わせを見る</td></tr><tr><td>名前の間違い</td><td>変数名、関数名、クラス名が見つからない</td><td>`cannot find symbol` や `not defined` を手がかりにする</td></tr><tr><td>依存関係の不足</td><td>使いたいライブラリやパッケージが見つからない</td><td>ライブラリ名、import、設定ファイルを確認する</td></tr><tr><td>環境差</td><td>自分のPCでは通るがCIや他人のPCで落ちる</td><td>言語バージョン、文字コード、OS差、環境変数を見る</td></tr></tbody></table></div></figure>



<p>注意点として、エラーが10個、20個と出ていても、最初の1個が本当の原因であることがよくあります。最初の文法ミスのせいで、後続の行もまとめて間違って見えてしまうからです。</p>



<p>実務では、まず一番上のエラーを直し、もう一度コンパイルします。これを繰り返す方が、全部のエラーを一気に読もうとするより安全です。コンパイルエラーは、プログラムからの拒絶ではなく、修正箇所を教えてくれるログだと考えると気持ちも少し楽になります。</p>



<h2 class="wp-block-heading">コンパイルを理解すると、開発の流れが見える</h2>



<p>コンパイルを理解すると、プログラムが「書いたらすぐ動く魔法」ではなく、いくつかの工程を通って動いていることが見えてきます。</p>



<p>ソースコードを書く、コンパイルする、必要ならリンクする、テストする、実行する。本番環境へ出す前にはCIで同じような確認が走る。こうした流れが分かると、エラーが出たときにも「今どの段階で止まっているのか」を考えられます。</p>



<p>初心者が最初に押さえるべきポイントは、次の3つです。</p>



<ul class="wp-block-list">
<li>コンパイルは、ソースコードを実行環境が扱いやすい形へ変換する作業</li>



<li>コンパイルエラーは、実行前に見つかった問題</li>



<li>ビルドは、コンパイルを含むより広い作業全体</li>
</ul>



<p>この3つが分かっていれば、エラーメッセージやビルドログを読むときの土台になります。最初はすべて理解できなくても大丈夫です。ファイル名、行番号、エラーの種類を一つずつ拾うところから始めれば、コンパイルは怖いものではなくなっていきます。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Javaプログラムの作成から実行までを１分で</title>
		<link>https://it-biz.online/java/java-program-execute/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Tue, 01 Jul 2025 12:00:00 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[プログラミング]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=9377</guid>

					<description><![CDATA[ステップ１：Javaファイルの作成 まず、ステップ１：Javaのプログラムを書いて保存します。基本的な構文ルールはこちら（関連　Javaの1stステップ：基本的な構文ルールを１分で復習！）を参考にしてみてください。 Ja [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>Javaのプログラムを作成し、実際にあなたのPC上で実行するための手順をご説明します。</p>
</div></div>



<h2 class="wp-block-heading">ステップ１：Javaファイルの作成</h2>



<p>まず、ステップ１：Javaのプログラムを書いて保存します。基本的な構文ルールはこちら（<span class="badge-green">関連</span>　<a href="https://it-biz.online/java/java-1ststep/">Javaの1stステップ：基本的な構文ルールを１分で復習！</a>）を参考にしてみてください。</p>



<h3 class="wp-block-heading">Javaファイル作成手順</h3>



<ol class="wp-block-list">
<li><strong>テキストエディタを開く</strong>
<ul class="wp-block-list">
<li>メモ帳、VS Code、Eclipseなどのテキストエディタを使用します。どのような手段を使ってもOKで、どの方法でも最終的な結果に影響することはありません。</li>
</ul>
</li>



<li><strong>コードを入力する</strong>
<ul class="wp-block-list">
<li>以下のコードを入力します。これは「Hello World」と表示するシンプルなプログラムです。</li>
</ul>
</li>
</ol>



<pre class="EnlighterJSRAW" data-enlighter-language="java" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">// HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {
        // "Hello, World!" をコンソールに出力します
        System.out.println("Hello, World!");
    }
}</pre>



<ol start="3" class="wp-block-list">
<li><strong>ファイルを保存する</strong>：
<ul class="wp-block-list">
<li><code><span class="bold-blue">HelloWorld.java</span></code> という名前で保存します。保存する場所はPCのデスクトップでもドキュメントフォルダでもどこでもOK。（Javaプログラムはこの保存したディレクトリ上でコンパイル～実行することになります。）</li>



<li>ファイル名とクラス名（この場合は <code><span class="bold-blue">HelloWorld</span></code>）は同じにする必要があります。</li>
</ul>
</li>
</ol>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box not-nested-style cocoon-block-tab-caption-box"><div class="tab-caption-box-label block-box-label box-label fab-lightbulb"><span class="tab-caption-box-label-text block-box-label-text box-label-text">Javaプログラムは最初はただのテキストファイル</span></div><div class="tab-caption-box-content block-box-content box-content">
<p>Javaプログラムは、テキストエディタ（例えばメモ帳やVS Code）で作成される普通のテキストファイルです。</p>



<p>このファイルには拡張子 <span class="bold-blue"><code>.java</code> </span>が付けられているという点が異なるだけで、このテキストファイルをJavaコンパイラ（<code>javac</code>）でコンパイルすると、バイトコードに変換され拡張子が <code><span class="bold-blue">.class</span></code> のバイトコードファイルが生成されます。生成された <code><span class="bold-blue">.class</span></code> ファイルをJVMで実行することで、プログラムが動作する、というのがこのページの要点になります。</p>



<p class="has-text-align-center"><span class="badge-green">関連</span>　<a href="https://it-biz.online/java/java-setup/">Javaの基本（JVMとは？）</a></p>
</div></div>



<h2 class="wp-block-heading">ステップ２：Javaファイルのコンパイル</h2>



<p>次に、Javaファイルをコンパイルして、コンピュータが理解できる形（バイトコード）に変換します。</p>



<h3 class="wp-block-heading">コンパイル手順</h3>



<ol class="wp-block-list">
<li><strong>コマンドラインを開く</strong>
<ul class="wp-block-list">
<li>Windowsの場合は「<a href="https://it-biz.online/it-skills/command-abc/">コマンドプロンプト</a>」、MacやLinuxの場合は「ターミナル」を開きます。</li>
</ul>
</li>



<li><strong>保存したディレクトリに移動する</strong>
<ul class="wp-block-list">
<li><code>cd</code> コマンドを使って、<code><span class="bold-blue">HelloWorld.java</span></code> を保存したディレクトリに移動します。</li>



<li>例：ファイルがデスクトップに保存されている場合「<span class="bold-green">cd Desktop</span>」</li>
</ul>
</li>



<li><strong>コンパイルコマンドを入力する</strong>
<ul class="wp-block-list">
<li>以下のコマンドを入力してコンパイルします。<br><span class="bold-green">javac HelloWorld.java</span></li>
</ul>
</li>



<li><strong>バイトコードファイルが生成</strong>
<ul class="wp-block-list">
<li>コンパイルが成功すると、<code><span class="bold-blue">HelloWorld.class</span></code> というファイルが生成されます。</li>
</ul>
</li>
</ol>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content"><span class="bold-green">javac HelloWorld.java</span>　を実行すると「エラー: この文字(0x80)は、エンコーディングwindows-31jにマップできません」と出力される。</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p>このエラーは、ソースコードのエンコーディング（文字コード）とコンパイル時のエンコーディングが一致していない場合に発生します。具体的には、Javaファイルが特定のエンコーディング（例えばUTF-8）で保存されているのに対して、コンパイラが別のエンコーディング（windows-31j）を使用しようとしていることが原因です。以下のように文字コードを指定してコンパイルすることで事象は解決します。</p>
</div></dd></dl></div>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">javac -encoding UTF-8 HelloWorld.java</pre>



<h2 class="wp-block-heading">ステップ３：プログラムの実行</h2>



<p>最後に、生成されたバイトコードファイルを実行します。</p>



<h3 class="wp-block-heading">プログラム実行手順</h3>



<ol class="wp-block-list">
<li><strong>実行コマンドを入力する</strong>
<ul class="wp-block-list">
<li>以下のコマンドを入力してプログラムを実行します。<br><span class="bold-green">java HelloWorld</span><br></li>



<li>ここで指定している「HelloWorld」はJavaの「<strong><span class="marker-under">クラス名</span></strong>」です。クラスを指定してjavaコマンドを実行することで.classファイルが動きます。</li>
</ul>
</li>



<li><strong>プログラムの出力を確認</strong>
<ul class="wp-block-list">
<li>コンソールに <code><span class="bold-green">Hello, World!</span></code> と表示されます。</li>
</ul>
</li>
</ol>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>これで、Javaプログラムの作成～実行までが完了です。</p>
</div></div>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box not-nested-style cocoon-block-tab-caption-box"><div class="tab-caption-box-label block-box-label box-label fab-lightbulb"><span class="tab-caption-box-label-text block-box-label-text box-label-text">Javaプログラムを動かす際にクラス名を指定するということの意味</span></div><div class="tab-caption-box-content block-box-content box-content">
<p>Javaプログラムを実行するには、最初に動かすクラスを指定する必要があります。これは、プログラムのスタート地点を指定するようなもので、日常生活に例えると「家のブレーカーをあげる」ようなイメージ。家のブレーカーをあげると家全体に電気が供給し始められ、その後様々な家電が動き始めます。</p>



<p>プログラムの中には、他にもたくさんのクラス（部品や機能）が存在します。指定したエントリーポイントのクラスから、他のクラスを使っていきながら１つの処理を完成させる―。これがJavaプログラムを実行する基本イメージになります。</p>



<ul class="wp-block-list">
<li><strong>エントリーポイント</strong>：プログラムのスタート地点となるクラス（家の電源スイッチ）。</li>



<li><strong>他のクラスの利用</strong>：エントリーポイントのクラスから、他のクラス（家電製品）を使う。</li>



<li><strong>実行の流れ</strong>：エントリーポイントのクラスからプログラムが始まり、他のクラスも使って機能を実行する。</li>
</ul>
</div></div>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">まとめ</span>　Javaプログラムの作成～実行まで</p>



<ol class="wp-block-list">
<li><strong>Javaファイルの作成</strong>
<ul class="wp-block-list">
<li>テキストエディタでコードを書き保存（例：<code><span class="bold-blue">HelloWorld.java</span></code>）。</li>
</ul>
</li>



<li><strong>Javaファイルのコンパイル</strong>
<ul class="wp-block-list">
<li>コマンドラインで <code>javac ファイル名.java</code> を入力してコンパイルします（例：<code><span class="bold-green">javac HelloWorld.java</span></code>）。</li>
</ul>
</li>



<li><strong>プログラムの実行</strong>：
<ul class="wp-block-list">
<li>コマンドラインで <code>java クラス名</code> を入力して実行します（例：<code><span class="bold-green">java HelloWorld</span></code>）。</li>
</ul>
</li>
</ol>
</div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Java学習ロードマップ完全版：初心者から実務までのカリキュラムをわかりやすく整理</title>
		<link>https://it-biz.online/java/java-curriculum-roadmap/</link>
		
		<dc:creator><![CDATA[bizonline_admin]]></dc:creator>
		<pubDate>Thu, 16 Apr 2026 08:54:46 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=10418</guid>

					<description><![CDATA[Javaをどう学べば本当に理解できるのかを、現在地チェック、9段階ロードマップ、不足テーマ、3か月の制作計画まで含めて整理した完全版ガイドです。]]></description>
										<content:encoded><![CDATA[<p>Javaを本気で理解したいのに、学ぶ順番が分からず途中で迷ってしまう人はとても多いです。</p>
<p><strong><span class="marker-under">Javaは「文法を覚える言語」ではなく、「文法・設計・実務」の3層で理解すると一気に見通しがよくなります</span></strong>。</p>
<p>このページは、Java理解までの道筋を1本につないだページです。<strong>Javaを理解するための全体地図、今の現在地、次に読むべき記事、これから追加すべきテーマ</strong>まで、Java初心者の方が迷わないように「つながる形」で設計しています。当サイトのJava カテゴリー 77本を土台に、初心者から実務の入口まで迷わず進めるロードマップとしてまとめました。</p>
<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-blue">このページで分かること</span><br />
<strong>1. Javaの全体像<br />
2. 自分の現在地<br />
3. 次に読むべき記事<br />
4. 足りないテーマ<br />
5. 今後の制作計画</strong></p>
</div>
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon">
<div class="speech-person">
<figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" class="speech-icon-image" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" /></figure>
<div class="speech-name"></div>
</div>
<div class="speech-balloon">
<p>Java学習でいちばん大事なのは、「全部を一気に理解しよう」としないことです。今いる位置と、次に登る段差が分かれば、学習はかなり進めやすくなります。</p>
</div>
</div>
<h2 class="wp-block-heading">先に結論: Javaは「文法」「設計」「実務」の3層で理解すると腹落ちする</h2>
<p>Java学習の全体像は、まずこの3層で見るのがおすすめです。</p>
<figure class="wp-block-table is-style-regular">
<div class="scrollable-table stfc-sticky"><table>
<thead>
<tr>
<th>層</th>
<th>何を理解する層か</th>
<th>ここで学ぶ代表テーマ</th>
<th>読めるようになるコード</th>
</tr>
</thead>
<tbody>
<tr>
<td>文法の層</td>
<td>Javaを「書ける」ようになる</td>
<td>変数、演算子、if、for、while、String、配列</td>
<td>小さな練習問題や基本処理</td>
</tr>
<tr>
<td>設計の層</td>
<td>Javaを「整理して考えられる」ようになる</td>
<td>class、method、constructor、extends、interface、static、this、ジェネリクス</td>
<td>クラスを使った中規模コード</td>
</tr>
<tr>
<td>実務の層</td>
<td>Javaを「現場の道具として使う」ための層</td>
<td>例外、Optional、I/O、Maven、JUnit、JSP、メモリ、実務API</td>
<td>保守・開発で出会う現場コード</td>
</tr>
</tbody>
</table></div>
</figure>
<p>つまり、Java学習は単純な一直線ではありません。<strong>「文法だけ終われば理解完了」ではなく、設計と実務までつながったときに初めて「Javaが分かった感覚」になります。</strong></p>
<h2 class="wp-block-heading">30秒で分かる現在地チェック</h2>
<p>今の自分がどこにいるかを先に把握すると、読む順番を決めやすくなります。</p>
<ul class="wp-block-list">
<li><strong>まだ Java を動かしたことがない</strong>: 環境構築と最初の一歩から始める段階です</li>
<li><strong>if や for は何となく分かるが、class が苦手</strong>: 文法から設計に上がる途中です</li>
<li><strong>class や constructor は読めるが、extends や interface で混乱する</strong>: オブジェクト指向を固める段階です</li>
<li><strong>null や try-catch で手が止まる</strong>: 実務につながる安全な書き方を学ぶ段階です</li>
<li><strong>List / Map / Optional / lambda が苦手</strong>: Javaらしい実務コードへ進む手前です</li>
<li><strong>Maven / JUnit / JSP までは出てくるが、全体がつながらない</strong>: 知識はあるので、体系化が必要な段階です</li>
</ul>
<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box memo-box">
<p class="has-text-align-center"><span class="badge-green">見方のコツ</span> <strong>「知らないことが多い」よりも、「次にどこを埋めれば前に進めるか」が分かることのほうが大事です</strong></p>
</div>
<h2 class="wp-block-heading">Java完全ロードマップ: 9段階で理解する</h2>
<p>ここからは、Java学習を9段階に分けて整理します。各段階ごとに、<strong>何が分かるようになるか、どこでつまずきやすいか、次に読むべき記事</strong>をまとめます。</p>
<h3 class="wp-block-heading">第1段階: 環境構築と「Javaが動く仕組み」を理解する</h3>
<p>この段階のゴールは、Javaのコードを自分のPCで動かし、<code>JDK</code>、<code>JRE</code>、<code>JVM</code> の違いがふんわりでも説明できることです。</p>
<ul class="wp-block-list">
<li>ここで身につけること: Javaを実行する流れ、コンパイルと実行の違い、開発環境の準備</li>
<li>つまずきやすい点: 「書いたコードがそのまま動く」と思ってしまうこと</li>
<li>先に読む記事: <a href="https://it-biz.online/java/java-setup/">Javaの開発環境構築</a>、<a href="https://it-biz.online/java/java-program-execute/">Javaプログラムの作成から実行まで</a>、<a href="https://it-biz.online/java/java-command/">Javaコマンドの基本</a></li>
<li>理解できたサイン: <code>javac</code> と <code>java</code> の役割を言葉で説明できる</li>
</ul>
<h3 class="wp-block-heading">第2段階: 基本文法と制御構文を身につける</h3>
<p>ここは「Javaで処理を書く」ための土台です。if や for が分からないまま先へ進むと、その後の理解がかなり苦しくなります。</p>
<ul class="wp-block-list">
<li>ここで身につけること: 変数、演算子、条件分岐、繰り返し、スコープ</li>
<li>つまずきやすい点: 条件式は読めても、自分で組み立てると混乱すること</li>
<li>先に読む記事: <a href="https://it-biz.online/java/java-1ststep/">Javaの1stステップ</a>、<a href="https://it-biz.online/java/java-if/">if文</a>、<a href="https://it-biz.online/java/java-switch/">switch文</a>、<a href="https://it-biz.online/java/java-for/">for文</a>、<a href="https://it-biz.online/java/java-while/">while文</a>、<a href="https://it-biz.online/java/java-operator/">演算子</a></li>
<li>理解できたサイン: 「入力値によって処理を分ける」「繰り返して合計を出す」が自力で書ける</li>
</ul>
<h3 class="wp-block-heading">第3段階: 型・文字列・データの扱い方を固める</h3>
<p>Javaは型を大事にする言語です。ここを曖昧にすると、後で class や collection を読んだときに急に難しく感じます。</p>
<ul class="wp-block-list">
<li>ここで身につけること: プリミティブ型と参照型、String、ラッパークラス、型変換、enum、record</li>
<li>つまずきやすい点: 「文字列もオブジェクト」「型が違うとできることが違う」という感覚が弱いこと</li>
<li>先に読む記事: <a href="https://it-biz.online/java/primitive-reference/">プリミティブ型と参照型</a>、<a href="https://it-biz.online/java/java-string/">Stringの基本</a>、<a href="https://it-biz.online/java/java-stringbuilder/">StringBuilder</a>、<a href="https://it-biz.online/java/wrapper-class/">ラッパークラス</a>、<a href="https://it-biz.online/java/enum/">enum</a>、<a href="https://it-biz.online/java/java-record/">record</a></li>
<li>理解できたサイン: 「int と Integer」「String と StringBuilder」の違いを説明できる</li>
</ul>
<h3 class="wp-block-heading">第4段階: class・method・constructor を理解する</h3>
<p>Javaの大きな山場はここです。class の意味が分かると、「Javaは部品を組み立てる言語なんだ」と見えてきます。</p>
<ul class="wp-block-list">
<li>ここで身につけること: class と instance、method、constructor、this、static、package</li>
<li>つまずきやすい点: 「クラスは設計図」「インスタンスは実体」という説明が抽象的に感じること</li>
<li>先に読む記事: <a href="https://it-biz.online/java/java-oop/">クラス/インスタンス</a>、<a href="https://it-biz.online/java/java-method/">メソッド</a>、<a href="https://it-biz.online/java/java-constructor/">コンストラクタ</a>、<a href="https://it-biz.online/java/java-this/">this</a>、<a href="https://it-biz.online/java/java-static/">static</a>、<a href="https://it-biz.online/java/java-package/">package/import</a></li>
<li>理解できたサイン: 簡単なクラスを自分で作り、フィールドとメソッドを分けて書ける</li>
</ul>
<h3 class="wp-block-heading">第5段階: 継承・interface・多態性で設計の考え方を学ぶ</h3>
<p>初心者が「急に難しくなった」と感じやすいのがこの段階です。ただ、ここは暗記よりも<strong>「なぜ分けるのか」</strong>を理解すると進みやすくなります。</p>
<ul class="wp-block-list">
<li>ここで身につけること: 継承、オーバーライド、抽象クラス、インターフェース、カプセル化、内部クラス</li>
<li>つまずきやすい点: <code>extends</code> と <code>implements</code> の役割が混ざること</li>
<li>先に読む記事: <a href="https://it-biz.online/java/java-extends/">extends</a>、<a href="https://it-biz.online/java/java-override/">override</a>、<a href="https://it-biz.online/java/java-interface/">interface</a>、<a href="https://it-biz.online/java/java-abstract-class/">abstract class</a>、<a href="https://it-biz.online/java/java-encapsulation/">アクセス修飾子</a>、<a href="https://it-biz.online/java/inner-class/">内部クラス</a></li>
<li>理解できたサイン: 「共通化したいもの」と「実装を分けたいもの」を言葉で整理できる</li>
</ul>
<h3 class="wp-block-heading">第6段階: 例外・null・安全なコードの書き方を学ぶ</h3>
<p>実務で「落ちにくいコード」を書くための入口です。ここを学ぶと、初心者っぽいコードから一段抜けられます。</p>
<ul class="wp-block-list">
<li>ここで身につけること: try-catch、try-with-resources、NullPointerException、Optional、I/O</li>
<li>つまずきやすい点: エラーが出たあとに対処するのか、最初から避けるのかが混ざること</li>
<li>先に読む記事: <a href="https://it-biz.online/java/java-try-catch/">例外処理の基本</a>、<a href="https://it-biz.online/java/try-with-resources/">try-with-resources</a>、<a href="https://it-biz.online/java/nullpointerexception/">NullPointerException</a>、<a href="https://it-biz.online/java/java-optional/">Optional</a>、<a href="https://it-biz.online/java/java-orelse-orelseget/">orElse と orElseGet</a>、<a href="https://it-biz.online/java/java-optional-of-vs-ofnullable/">of と ofNullable</a>、<a href="https://it-biz.online/java/java-io/">Java.io</a></li>
<li>理解できたサイン: null 対応を行き当たりばったりではなく、方針を持って書ける</li>
</ul>
<h3 class="wp-block-heading">第7段階: コレクション・ジェネリクスで実務コードの読解力を上げる</h3>
<p>この段階に入ると、Javaのコードが一気に実務っぽくなります。今のJavaカテゴリでは、この領域が今後さらに強化したいポイントです。</p>
<ul class="wp-block-list">
<li>ここで身につけること: 配列、List / Map の基本、ジェネリクス、比較、コピーの考え方</li>
<li>つまずきやすい点: <code>&lt;T&gt;</code> の意味と、「複数のデータをどう持つか」が直感的でないこと</li>
<li>先に読む記事: <a href="https://it-biz.online/java/java-array/">配列</a>、<a href="https://it-biz.online/java/java-collections-framework/">コレクションフレームワーク</a>、<a href="https://it-biz.online/java/java-generics/">ジェネリクス</a>、<a href="https://it-biz.online/java/java-equals/">equals</a>、<a href="https://it-biz.online/java/java-lang-comparable/">Comparable</a>、<a href="https://it-biz.online/java/shallow-deep/">シャローコピーとディープコピー</a></li>
<li>理解できたサイン: 配列・List・Map の役割の違いを、例を使って説明できる</li>
</ul>
<h3 class="wp-block-heading">第8段階: lambda・var・sealed class でモダンJavaに慣れる</h3>
<p>Java 8 以降のコードを読むには、この段階の理解が重要です。ここを超えると、少し新しめのJavaコードにも抵抗が減ります。</p>
<ul class="wp-block-list">
<li>ここで身につけること: lambda、Functional Interface、var、pattern matching、sealed class</li>
<li>つまずきやすい点: ラムダ式を「短い書き方」だと思って終わってしまうこと</li>
<li>先に読む記事: <a href="https://it-biz.online/java/java-lambda/">ラムダ式</a>、<a href="https://it-biz.online/java/functional-interface/">関数型インターフェース</a>、<a href="https://it-biz.online/java/java-var/">var</a>、<a href="https://it-biz.online/java/pattern-matching-for-instanceof/">pattern matching for instanceof</a>、<a href="https://it-biz.online/java/sealed-classes/">sealed class</a></li>
<li>理解できたサイン: 「なぜこのコードは匿名クラスではなくラムダ式なのか」を説明できる</li>
</ul>
<h3 class="wp-block-heading">第9段階: ツール・テスト・Web・内部動作で実務の入口に立つ</h3>
<p>最後は、現場でよく出る周辺知識です。ここまで来ると、「Javaを勉強した」ではなく「Javaで仕事の話ができる」状態に近づきます。</p>
<ul class="wp-block-list">
<li>ここで身につけること: Maven、POM、JUnit、Log4j、JSP、リフレクション、メモリ</li>
<li>つまずきやすい点: 書き方の知識と、ツールの役割が頭の中でつながらないこと</li>
<li>先に読む記事: <a href="https://it-biz.online/java/maven/">Maven</a>、<a href="https://it-biz.online/java/pom-xml/">POMファイル</a>、<a href="https://it-biz.online/java/junit/">JUnit</a>、<a href="https://it-biz.online/java/log4j/">Log4j</a>、<a href="https://it-biz.online/web-design/html/java-server-pages/">JSPファイル超入門</a>、<a href="https://it-biz.online/java/java-memory/">Javaメモリ管理</a>、<a href="https://it-biz.online/java/java-reflection/">リフレクション</a></li>
<li>理解できたサイン: 「開発・テスト・実行・保守」の流れの中で各ツールの役割を説明できる</li>
</ul>
<h2 class="wp-block-heading">今のJavaカテゴリで強いところと、これから埋めたいところ</h2>
<p>現状の77本を俯瞰すると、強いのは次の3つです。</p>
<ul class="wp-block-list">
<li>基本文法と制御構文</li>
<li>class / constructor / extends / interface まわりの設計基礎</li>
<li>null / Optional 周辺の初学者向け解説</li>
</ul>
<p>逆に、カリキュラムとして完成度をさらに上げるなら、次の4領域が重要です。</p>
<ul class="wp-block-list">
<li>コレクション各論: ArrayList、HashMap、Set、Queue</li>
<li>モダンJava各論: Stream API、Collectors、メソッド参照、Optional応用</li>
<li>例外の深掘り: <code>throw</code> / <code>throws</code>、例外分類、カスタム例外</li>
<li>実務導線: JDBC、Servlet、Spring Boot、並行処理</li>
</ul>
<h2 class="wp-block-heading">今後作るべきページ一覧</h2>
<p>ここでは、「なぜそのページが必要か」が分かるように、優先度別に整理します。</p>
<h3 class="wp-block-heading">優先度A: 初学者が途中で止まらないために必要なページ</h3>
<figure class="wp-block-table is-style-regular">
<div class="scrollable-table stfc-sticky"><table>
<thead>
<tr>
<th>想定タイトル</th>
<th>必要な理由</th>
</tr>
</thead>
<tbody>
<tr>
<td>Javaとは？できることと学ぶメリットを初心者向けに3分で解説</td>
<td>「そもそも何の言語か」を入口で補うため</td>
</tr>
<tr>
<td>Hello Worldとmainメソッドの書き方をJava初心者向けに1から解説</td>
<td>最初の一歩をより具体的にするため</td>
</tr>
<tr>
<td>Javaコメントの書き方（<code>//</code> と <code>/* */</code>）をわかりやすく解説</td>
<td>基本構文の抜けを埋めるため</td>
</tr>
<tr>
<td>Javaの命名規則とは？クラス名・メソッド名・変数名の付け方</td>
<td>初心者が最初に迷う実務ルールを補うため</td>
</tr>
<tr>
<td>JavaのArrayListとは？配列との違いを初心者向けに解説</td>
<td>配列からコレクションへの橋渡しになるため</td>
</tr>
<tr>
<td>JavaのHashMapとは？keyとvalueの扱い方を1から解説</td>
<td>Mapの基礎を独立して理解できるようにするため</td>
</tr>
<tr>
<td>JavaのSetとは？Listとの違いと使いどころを解説</td>
<td>重複を許さないデータ構造を整理するため</td>
</tr>
<tr>
<td>JavaのQueueとは？FIFOと代表実装をわかりやすく</td>
<td>データ構造の幅を広げるため</td>
</tr>
<tr>
<td>JavaのhashCodeとは？equalsとの関係を初心者向けに解説</td>
<td><code>equals()</code> 記事の次の理解につなげるため</td>
</tr>
<tr>
<td>Javaのthrowとthrowsの違いを1から整理</td>
<td>例外の基本を完成させるため</td>
</tr>
<tr>
<td>Javaのchecked exceptionとunchecked exceptionの違い</td>
<td>例外処理の設計感覚を作るため</td>
</tr>
<tr>
<td>Javaのカスタム例外の作り方を初心者向けに解説</td>
<td>実務の一歩手前までつなげるため</td>
</tr>
</tbody>
</table></div>
</figure>
<h3 class="wp-block-heading">優先度B: 「分かったつもり」を実務読解に変えるページ</h3>
<figure class="wp-block-table is-style-regular">
<div class="scrollable-table stfc-sticky"><table>
<thead>
<tr>
<th>想定タイトル</th>
<th>必要な理由</th>
</tr>
</thead>
<tbody>
<tr>
<td>Java Stream API入門: 何が便利なのかを初心者向けに解説</td>
<td>モダンJavaの中心を補うため</td>
</tr>
<tr>
<td>Java Streamのmap / filter / forEachの使い方をわかりやすく解説</td>
<td>実務で頻出の処理パターンを扱うため</td>
</tr>
<tr>
<td>Java Collectorsとは？<code>collect()</code> の基本を1から解説</td>
<td>Streamの出口を整理するため</td>
</tr>
<tr>
<td>Javaのメソッド参照（<code>::</code>）とは？ラムダ式との違いを解説</td>
<td>lambda記事群をつなげるため</td>
</tr>
<tr>
<td>Optional.map / flatMap / filter の使い方を初心者向けに解説</td>
<td>Optionalクラスターを一段深くするため</td>
</tr>
<tr>
<td>Comparatorとは？Comparableとの違いをわかりやすく解説</td>
<td>比較ロジックを実務寄りに理解するため</td>
</tr>
<tr>
<td>JavaのLocalDate / LocalDateTimeの使い方を1から解説</td>
<td>日時APIの入口を作るため</td>
</tr>
<tr>
<td>JavaのDateTimeFormatterの使い方を初心者向けに解説</td>
<td>日付の入出力を整理するため</td>
</tr>
<tr>
<td><code>java.nio.file.Files</code> / <code>Path</code> の基本をわかりやすく解説</td>
<td>現代的なファイル操作を補うため</td>
</tr>
<tr>
<td>JDBCとは？Javaからデータベース接続する流れを初心者向けに解説</td>
<td>DB連携の入口を作るため</td>
</tr>
<tr>
<td>Servletとは？JSPとの違いと役割をわかりやすく解説</td>
<td>Web開発の土台を補うため</td>
</tr>
<tr>
<td>JUnitアノテーションとAssertionsの使い方を1から解説</td>
<td>テスト記事を実務で使える形にするため</td>
</tr>
</tbody>
</table></div>
</figure>
<h3 class="wp-block-heading">優先度C: Javaを実務レベルに伸ばすページ</h3>
<figure class="wp-block-table is-style-regular">
<div class="scrollable-table stfc-sticky"><table>
<thead>
<tr>
<th>想定タイトル</th>
<th>必要な理由</th>
</tr>
</thead>
<tbody>
<tr>
<td>Javaのアノテーションとは？初心者向けに基本を解説</td>
<td>Spring や JUnit につながるため</td>
</tr>
<tr>
<td>Javaシリアライズの基本をわかりやすく解説</td>
<td>I/O とオブジェクトの扱いを深めるため</td>
</tr>
<tr>
<td>イミュータブルクラスの作り方をJava初心者向けに解説</td>
<td>設計の質を上げるため</td>
</tr>
<tr>
<td>Builderパターンとは？Javaでの実装例を初心者向けに整理</td>
<td>実務でよく見る設計パターンを扱うため</td>
</tr>
<tr>
<td>ThreadとRunnableの違いをJava初心者向けに解説</td>
<td>並行処理の入口を作るため</td>
</tr>
<tr>
<td><code>synchronized</code> の基本をわかりやすく解説</td>
<td>排他制御の基礎を補うため</td>
</tr>
<tr>
<td>ExecutorServiceの使い方を初心者向けに1から解説</td>
<td>現代的なスレッド管理を理解するため</td>
</tr>
<tr>
<td>CompletableFuture入門: 非同期処理の基本をわかりやすく</td>
<td>非同期処理の入口を補うため</td>
</tr>
<tr>
<td>JavaのGarbage Collection（GC）を初心者向けに解説</td>
<td>メモリ記事を深めるため</td>
</tr>
<tr>
<td>classpathとmodule pathの違いをわかりやすく整理</td>
<td>実行環境まわりを補強するため</td>
</tr>
<tr>
<td>Spring Bootとは？Java Web開発の入口を初心者向けに解説</td>
<td>フレームワーク導線を作るため</td>
</tr>
<tr>
<td>JavaでREST APIを作る流れを初心者向けに整理</td>
<td>学習の出口を明確にするため</td>
</tr>
</tbody>
</table></div>
</figure>
<h2 class="wp-block-heading">3か月の制作計画: 何から作ると読者に効くか</h2>
<p>制作順も重要です。難しいテーマから増やすより、<strong>読者が途中で止まりやすい箇所を先に埋める</strong>ほうが、カテゴリ全体の価値が上がります。</p>
<figure class="wp-block-table is-style-regular">
<div class="scrollable-table stfc-sticky"><table>
<thead>
<tr>
<th>期間</th>
<th>重点テーマ</th>
<th>追加本数の目安</th>
<th>狙い</th>
</tr>
</thead>
<tbody>
<tr>
<td>1〜4週目</td>
<td>ArrayList / HashMap / Set / throw / throws など優先度A</td>
<td>12本</td>
<td>初学者が詰まりやすい穴を埋める</td>
</tr>
<tr>
<td>5〜8週目</td>
<td>Stream / Optional応用 / Comparator / Date API / JDBC など優先度B</td>
<td>12本</td>
<td>「基礎は分かるのに読めない」を減らす</td>
</tr>
<tr>
<td>9〜12週目</td>
<td>並行処理 / 設計 / Spring Boot / REST API など優先度C</td>
<td>12本</td>
<td>実務導線を強化する</td>
</tr>
</tbody>
</table></div>
</figure>
<h3 class="wp-block-heading">運用ルールも先に決めておくと強い</h3>
<ul class="wp-block-list">
<li>新しいJava記事を公開したら、このロードマップと理解ルートガイドの両方を更新する</li>
<li>新規記事には最低3本の内部リンクを入れて、孤立記事を作らない</li>
<li>似たテーマは連続公開して、クラスターとして読める状態を作る</li>
<li>毎月1回、流入と離脱ポイントを見て優先順位を見直す</li>
<li>「読者が次に何を読むか」が見えるように、各記事で次の一歩を明示する</li>
</ul>
<h2 class="wp-block-heading">このロードマップのゴール</h2>
<p>このページのゴールは、Java記事を並べることではありません。<strong>読者が「Javaは何をどう学べば分かるのか」をイメージできて、いま自分がどこにいて、次に何を読むべきかが見える状態</strong>を作ることです。</p>
<p>実際にどの順で読めば理解がつながるかを見たい方は、<a href="https://it-biz.online/java/java-learning-route/">Java理解ルートガイド</a> を読むのがおすすめです。ロードマップで全体をつかみ、ルートガイドで実際に進む。この2本をセットで使うと、Java理解までの道筋がかなり見えやすくなります。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【SAP】SHD0－画面バリアント/トランザクションバリアントとは？登録手順まで３分で解説</title>
		<link>https://it-biz.online/sap/shd0/</link>
		
		<dc:creator><![CDATA[ビズドットオンライン]]></dc:creator>
		<pubDate>Thu, 10 Sep 2020 07:48:03 +0000</pubDate>
				<category><![CDATA[SAP]]></category>
		<guid isPermaLink="false">https://it-biz.online/?p=4553</guid>

					<description><![CDATA[初心者向けに分かりやすく画面バリアントとは何か？について解説します。 画面バリアントとは、その名の通り１つ１つの画面に対して設定するバリアントのことで、画面の表示/非表示や初期値などの項目属性の集合体。画面バリアントの集 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>初心者向けに分かりやすく画面バリアントとは何か？について解説します。</p>



<p>画面バリアントとは、<strong><span class="marker-under">その名の通り１つ１つの画面に対して設定するバリアントのことで、画面の表示/非表示や初期値などの項目属性の集合体</span></strong>。画面バリアントの集合体が、トランザクションバリアントです。</p>



<p>この記事では画面バリアントの登録方法までを３分で解説します。</p>



<div class="wp-block-cocoon-blocks-label-box-1 label-box block-box"><div class="label-box-label block-box-label box-label fab-check"><span class="label-box-label-text block-box-label-text box-label-text">このページで学べる内容</span></div><div class="label-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title"></div>
<ul class="wp-block-list">
<li>画面バリアントとは？</li>



<li>画面バリアントの設定方法</li>



<li>トランザクションバリアントとは？</li>



<li>画面バリアントとトランザクションバリアントの違いは？</li>
</ul>
</div>
</div></div>



<p><strong><span class="marker-under">SAPエンジニアであれば常識として知っておきたい超・基本知識</span></strong>です。是非最後までご覧ください。</p>



<h2 class="wp-block-heading">画面バリアントとは？</h2>



<p>画面バリアントとは、画面１つ１つに対する表示・非表示などの項目属性のセットです。</p>



<p>文字の説明だけではイメージを持ちづらいはずなので、早速画面バリアントの設定画面の一例をご覧ください。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="844" height="470" src="https://it-biz.online/wp-content/uploads/2020/09/image.png" alt="【SAP】SHD0－画面バリアント/トランザクションバリアントとは？登録手順まで３分で解説" class="wp-image-4558" srcset="https://it-biz.online/wp-content/uploads/2020/09/image.png 844w, https://it-biz.online/wp-content/uploads/2020/09/image-300x167.png 300w, https://it-biz.online/wp-content/uploads/2020/09/image-500x278.png 500w, https://it-biz.online/wp-content/uploads/2020/09/image-768x428.png 768w, https://it-biz.online/wp-content/uploads/2020/09/image-800x445.png 800w, https://it-biz.online/wp-content/uploads/2020/09/image-240x135.png 240w" sizes="(max-width: 844px) 100vw, 844px" /></figure>



<p>ご覧のように、各項目ごとに 値保持 / 出力専用 / 非表示 / 必要 の設定を行えるようになっています。</p>



<h3 class="wp-block-heading">画面バリアント設定：値保持（W.content）</h3>



<p>値保持にチェックを入れることで、<strong>内容欄</strong>の値を初期値として表示させることができます。</p>



<p>例えば、ビジネスパートナの住所タブの項目に値保持の設定を行っていた場合。以下のような画面が表示されることになります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="452" height="93" src="https://it-biz.online/wp-content/uploads/2020/09/image-1.png" alt="" class="wp-image-4559" srcset="https://it-biz.online/wp-content/uploads/2020/09/image-1.png 452w, https://it-biz.online/wp-content/uploads/2020/09/image-1-300x62.png 300w" sizes="(max-width: 452px) 100vw, 452px" /><figcaption class="wp-element-caption">タイトルと名の項目に初期値が設定</figcaption></figure>



<p>あくまでも<strong>初期値</strong>なので変更は可能です。</p>



<h3 class="wp-block-heading">画面バリアント設定：出力専用（Output only）</h3>



<p><strong>出力専用</strong>にチェックすると、当該項目は<strong>変更</strong>することができなくなります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="324" height="104" src="https://it-biz.online/wp-content/uploads/2020/09/image-2.png" alt="" class="wp-image-4560" srcset="https://it-biz.online/wp-content/uploads/2020/09/image-2.png 324w, https://it-biz.online/wp-content/uploads/2020/09/image-2-300x96.png 300w, https://it-biz.online/wp-content/uploads/2020/09/image-2-320x104.png 320w" sizes="(max-width: 324px) 100vw, 324px" /><figcaption class="wp-element-caption">言語項目だけ出力専用にしている例</figcaption></figure>



<h3 class="wp-block-heading">画面バリアント設定：非表示（Invisible）</h3>



<p>その名の通りです。非表示設定を行うと、<strong>当該項目は画面上から見えなくなります。</strong></p>



<p>勘違いしてはいけないのが、あくまでも画面上から「見えなくなるだけ」であって存在自体がなくなるわけではありません。つまり、本来必須入力の項目に対して非表示設定をしてしまうと必ずエラーが出る画面を作成してしまうことにつながります。</p>



<h3 class="wp-block-heading">画面バリアント設定：必要（Required）</h3>



<p>必須入力させたい場合にチェックします。</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" src="https://it-biz.online/wp-content/uploads/2020/09/image-3.png" alt="" class="wp-image-4561" width="447" height="63" srcset="https://it-biz.online/wp-content/uploads/2020/09/image-3.png 376w, https://it-biz.online/wp-content/uploads/2020/09/image-3-300x42.png 300w" sizes="(max-width: 447px) 100vw, 447px" /><figcaption class="wp-element-caption">支払日項目が必須入力</figcaption></figure>



<div class="wp-block-cocoon-blocks-label-box-1 label-box block-box"><div class="label-box-label block-box-label box-label fab-pencil"><span class="label-box-label-text block-box-label-text box-label-text">画面バリアントのテスト</span></div><div class="label-box-content block-box-content box-content">
<p>例えば必須入力にチェックしている項目に対して、同時に非表示設定を行っている項目があったり、値保持している項目がSAP標準では許可できない文字だったりする場合。</p>



<p>このような画面バリアントを作成してしまうとバグの原因となってしまいます。SAPの標準機能としてこのような不整合を未然に防ぐために画面バリアントのチェックが行えます。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p>メニュー＞バリアント＞チェック</p>
</div>
</div></div>



<h2 class="wp-block-heading">SHD0：画面バリアントの登録</h2>



<p>さて、先に画面バリアントのイメージを掴んでもらうために設定内容の解説から進めてきましたがここからは実際に画面バリアントの登録方法を解説します。</p>



<p>と言っても、実は非常に簡単。</p>



<div class="wp-block-cocoon-blocks-sticky-box blank-box block-box sticky">
<p class="has-text-align-center">トランザクションコード：<strong>SHD0</strong></p>
</div>



<p>画面バリアントを設定したい<a href="https://it-biz.online/sap/what-is-transaction/">トランザクションコード</a>を入力。<strong>画面バリアントタブ</strong>にて画面バリアント名を入力し登録ボタンを押すだけ。</p>



<p>あとは、対象のトランザクションコードが起動され、いつもと同じように画面に値を入力していきます。画面の入力が完了すると、先ほど同様以下の設定画面が表示される仕組みです。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="844" height="470" src="https://it-biz.online/wp-content/uploads/2020/09/image.png" alt="【SAP】SHD0－画面バリアント/トランザクションバリアントとは？登録手順まで３分で解説" class="wp-image-4558" srcset="https://it-biz.online/wp-content/uploads/2020/09/image.png 844w, https://it-biz.online/wp-content/uploads/2020/09/image-300x167.png 300w, https://it-biz.online/wp-content/uploads/2020/09/image-500x278.png 500w, https://it-biz.online/wp-content/uploads/2020/09/image-768x428.png 768w, https://it-biz.online/wp-content/uploads/2020/09/image-800x445.png 800w, https://it-biz.online/wp-content/uploads/2020/09/image-240x135.png 240w" sizes="(max-width: 844px) 100vw, 844px" /></figure>



<h2 class="wp-block-heading">トランザクションバリアントとは？</h2>



<p>画面バリアントはあくまでも１つの画面に対する設定値をまとめたものでしかありません。そして、もう少し具体的に言えば画面バリアントは、<strong><span class="marker-under">トランザクションバリアントの１構成要素でしかありません。</span></strong></p>



<div class="wp-block-cocoon-blocks-label-box-1 label-box block-box"><div class="label-box-label block-box-label box-label fab-check"><span class="label-box-label-text block-box-label-text box-label-text">画面バリアントとトランザクションバリアントの違い</span></div><div class="label-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-iconlist-box iconlist-box blank-box list-caret-right block-box"><div class="iconlist-title"></div>
<ul class="wp-block-list">
<li>画面バリアント<br><br>⇒１つの画面の項目属性値のセット<br><br></li>



<li><strong>トランザクションバリアント</strong><br><br>⇒複数の画面バリアントのセット</li>
</ul>
</div>
</div></div>



<p>実際には、１つ以上の画面バリアントから構成されるトランザクションバリアントをトランザクションコードに割り当てることによって画面の表示制御を行うわけです。</p>



<p>トランザクションコード：<strong>SHD0</strong>の画面に戻ります。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="1024" height="662" src="https://it-biz.online/wp-content/uploads/2020/09/image-4-1024x662.png" alt="" class="wp-image-4562" srcset="https://it-biz.online/wp-content/uploads/2020/09/image-4-1024x662.png 1024w, https://it-biz.online/wp-content/uploads/2020/09/image-4-300x194.png 300w, https://it-biz.online/wp-content/uploads/2020/09/image-4-500x323.png 500w, https://it-biz.online/wp-content/uploads/2020/09/image-4-768x497.png 768w, https://it-biz.online/wp-content/uploads/2020/09/image-4-800x517.png 800w, https://it-biz.online/wp-content/uploads/2020/09/image-4.png 1036w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>Transaction Variantタブ</strong> でトランザクションバリアント名称を入力。そして、そのトランザクションバリアントを構成する画面バリアントを割り当てていきます。</p>



<p>割り当てる画面バリアントの個数は１つ以上で何個あってもOKです。</p>



<h2 class="wp-block-heading">バリアントトランザクションの作成</h2>



<p>最後に、バリアントトランザクションを作成します。</p>



<figure class="wp-block-image aligncenter size-large"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" width="488" height="343" src="https://it-biz.online/wp-content/uploads/2020/09/image-5.png" alt="" class="wp-image-4565" srcset="https://it-biz.online/wp-content/uploads/2020/09/image-5.png 488w, https://it-biz.online/wp-content/uploads/2020/09/image-5-300x211.png 300w" sizes="(max-width: 488px) 100vw, 488px" /></figure>



<p>ややこしいのですが、バリアントトランザクションとは<strong>トランザクションコードとトランザクションバリアントの組み合わせです。</strong></p>



<p>つまり、どのトランザクションコードをどのバリアントトランザクションを用いて利用するか？を設定したトランザクションコードを新規に作成するイメージです。</p>



<p>実際のSAPユーザにはバリアントトランザクションを解放することで、表示・非表示設定のされた画面を見せる仕組みとなっているのです。</p>



<p>最後、この章だけ唐突に理解しがたい表現となっているため何度か読み返しをおすすめします。</p>



<div class="wp-block-cocoon-blocks-label-box-1 label-box block-box"><div class="label-box-label block-box-label box-label fab-exclamation-circle"><span class="label-box-label-text block-box-label-text box-label-text">バリアントトランザクションの作成方法</span></div><div class="label-box-content block-box-content box-content">
<p>バリアントトランザクションの作成方法は、以下の記事で解説しております。</p>



<p>トランザクションコードをアドオンで作成する方法も合わせて学べますので是非この機会に合わせてご覧ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-ビズドットオンライン wp-block-embed-ビズドットオンライン"><div class="wp-block-embed__wrapper">

<a href="https://it-biz.online/sap/se93/" title="【SAP】トランザクションコードの新規登録を３分で解説：SE93" class="blogcard-wrap internal-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="320" height="180" src="https://it-biz.online/wp-content/uploads/2026/04/featured-p1-4193-se93-320x180.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://it-biz.online/wp-content/uploads/2026/04/featured-p1-4193-se93-320x180.png 320w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-4193-se93-500x282.png 500w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-4193-se93-800x451.png 800w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-4193-se93-300x169.png 300w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-4193-se93-768x433.png 768w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-4193-se93-240x135.png 240w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-4193-se93-640x360.png 640w, https://it-biz.online/wp-content/uploads/2026/04/featured-p1-4193-se93.png 1480w" sizes="(max-width: 320px) 100vw, 320px" wpfc-lazyload-disable="true" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【SAP】トランザクションコードの新規登録を３分で解説：SE93</div><div class="blogcard-snippet internal-blogcard-snippet">【初心者向け】SAPでトランザクションコードを新規に１から登録する方法を画像付きで解説します。また、トランザクションコードにバリアントを紐づける「バリアントトランザクションコード」などの応用知識も合わせて解説します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://it-biz.online" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">it-biz.online</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2026.04.26</div></div></div></div></a>
</div></figure>
</div></div>



<h2 class="wp-block-heading">ABAPを１から勉強したい方は</h2>



<p><!-- wp:cocoon-blocks/balloon-ex-box-1 {"id":"1","icon":"https://it-biz.online/wp-content/uploads/2023/06/man.png"} --></p>
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box">
<div class="speech-person">
<figure class="speech-icon"><img wpfc-lazyload-disable="true" decoding="async" class="speech-icon-image" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" /></figure>
<div class="speech-name"></div>
</div>
<div class="speech-balloon">
<p><!-- wp:paragraph --></p>
<p>初めてABAPを勉強するのは結構難しいですよね。</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p>でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。</p>
<p><!-- /wp:paragraph --></p>
</div>
</div>
<p><!-- /wp:cocoon-blocks/balloon-ex-box-1 --></p>
<p><!-- wp:paragraph --></p>
<p>ABAPをはじめとするプログラミングスキルを武器に、<strong><span class="marker-under">時間と場所に捉われない自由な生き方</span></strong>を目指してみませんか？</p>
<div class="good-box common-icon-box">
<div class="speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf">
<div class="speech-person">
<figure class="speech-icon"><img wpfc-lazyload-disable="true" loading="lazy" decoding="async" class="speech-icon-image" src="https://it-biz.online/wp-content/uploads/2023/06/man.png" alt="" width="385" height="424" /></figure>
</div>
<div class="speech-balloon">
<p><strong>あなたの技術、もっと価値ある場所で活かしませんか？<br />
<span style="font-size: 20px;"><span style="color: #ff6600;">SAPエンジニア</span>のキャリア支援はこちらから↓</span></strong></p>
</div>
</div>
<p><strong><span class="badge">No.1　&gt;</span>　<span style="font-size: 18px;"><a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=2296865&amp;p_id=2502&amp;pc_id=5511&amp;pl_id=32341">外資系・IT業界などハイクラスの転職なら【アクシスコンサルティング】</a></span></strong><span class="marker-under"><strong><span style="font-size: 18px;"><img loading="lazy" decoding="async" style="border: none;" src="//i.moshimo.com/af/i/impression?a_id=2296865&amp;p_id=2502&amp;pc_id=5511&amp;pl_id=32341" width="1" height="1" /></span><br />
</strong></span>4人に1人のコンサルタントが選ぶパートナー！<br />
ビッグ4やアクセンチュアへの転職を実現し<span class="marker-under"><strong>年収1000万</strong></span>へ。</p>
<p><span style="font-size: 18px;"><strong><span class="badge">No.2　&gt;</span>　<a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1995891&amp;p_id=969&amp;pc_id=1263&amp;pl_id=13840">IT・Web転職特化エージェント【レバテックキャリア</a><a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1995891&amp;p_id=969&amp;pc_id=1263&amp;pl_id=13840">】</a></strong></span><span style="font-size: 18px;"><strong><img loading="lazy" decoding="async" style="border: none;" src="//i.moshimo.com/af/i/impression?a_id=1995891&amp;p_id=969&amp;pc_id=1263&amp;pl_id=13840" width="1" height="1" /><br />
<img loading="lazy" decoding="async" style="border: none;" src="//i.moshimo.com/af/i/impression?a_id=3134186&amp;p_id=3878&amp;pc_id=9624&amp;pl_id=53722" width="1" height="1" /></strong><span style="font-size: 16px;">サービス利用者数<strong>20万人</strong>突破。</span></span><span style="font-size: 18px;"><span style="font-size: 16px;"><br />
平均<strong>年収アップ率77%</strong>であなたの転職成功を保証します。</span></span></p>
<p><span style="font-size: 18px;"><strong><span class="badge">No.3　&gt;</span>　</strong></span><span style="font-size: 18px;"><strong><img loading="lazy" decoding="async" style="border: none;" src="//i.moshimo.com/af/i/impression?a_id=1995891&amp;p_id=969&amp;pc_id=1263&amp;pl_id=13840" width="1" height="1" /><a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=3134203&amp;p_id=3802&amp;pc_id=9376&amp;pl_id=52943">リクルートエージェント</a><br />
<img loading="lazy" decoding="async" style="border: none;" src="//i.moshimo.com/af/i/impression?a_id=3134186&amp;p_id=3878&amp;pc_id=9624&amp;pl_id=53722" width="1" height="1" /></strong><span style="font-size: 16px;">＼転職支援実績NO.1／</span></span><span style="font-size: 18px;"><span style="font-size: 16px;"><br />
応募が殺到しすぎるが故に・・・非公開にせざるを得ない魅力的な求人が多数！<br />
</span></span></p>
</div>

<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph {"align":"center"} --></p>
<p class="has-text-align-center" style="text-align: center;"><span class="badge-green">読者料典</span>　<a href="https://it-biz.online/sap/abap-abc/">【完全無料】ABAP：学習カリキュラム</a>　←こちらから！</p>
<p><!-- /wp:paragraph --></p>
<p><!-- wp:paragraph --></p>
<p><!-- /wp:paragraph --></p>

]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
