<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>TECH DREAM</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/" />
    <link rel="self" type="application/atom+xml" href="https://dev.tech-dream.school/atom.xml" />
    <id>tag:dev.tech-dream.school,2026-03-17:/1</id>
    <updated>2026-03-21T05:48:52Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type</generator>

<entry>
    <title>【初心者向け】文字コードとは？種類・トラブル例</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/ide/7783/" />
    <id>tag:192.168.15.111,2026://1.159</id>

    <published>2026-01-05T00:00:52Z</published>
    <updated>2026-03-21T05:48:52Z</updated>

    <summary>文字コードとは、端末上で文字の表示をするために必要なもので、今こうして記事を配信...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発環境" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<p>文字コードとは、端末上で文字の表示をするために必要なもので、今こうして記事を配信し、届けることができるのも文字コードがあればこそです。<br />
ソフトフェアエンジニアになったとき、程度の違いはあれど、多くの人が「文字コード（Character code／キャラクターコード）」の知識が必要となります。<br />
切って離すことのできない、文字コードについて、基礎的な知識をご紹介します。</p><div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2>文字コードとは</h2>
<p>文字コードは、１文字１文字に番号を割り当てた、通し番号ようなものです。<br />
この通し番号を通じて、文字や記号の入力や出力を行っています。</p>
<p>例として、文字コードの一つである、ASCII（アスキー）を挙げてみます。<br />
「A」という文字を表示する場合、ASCIIの文字コードは「65（10進数）」です。<br />
プログラムは、文字コードがASCIIで65という情報を受け取り、ASCIIで65に割り振られたフォントを呼び出して、描画しています。</p>
<p>文字を表示するには、文字コードとフォントが必要不可欠ということになります。</p>
<h3>文字コードの種類</h3>
<p>文字コードは、いくつかの種類があり、それぞれの特徴があります。<br />
代表的な文字コードについて、ご紹介します。</p>
<h4>ASCII（アスキー）</h4>
<p>最も基本的な、文字コードで、７ビットの１バイトの文字コードです。<br />
英語を表現するのに必要な文字だけが収録されています。</p>
<h4>Shift_JIS（シフトジス）／SJIS（エスジス）</h4>
<p> ２バイトの文字コードで、日本語環境では、広く普及している文字コードです。</p>
<h4>UTF-8（ユーティーエフエイト）</h4>
<p>世界中の文字の収録を試みた文字コードです。<br />
ASCIIとの互換性もあり、広く利用されています。</p>
<h3>文字化けする理由とコードによるトラブル例</h3>
<p>文字コードによって、規格（この記事でいう、文字ごとに割り当てられた番号のルール）が異なるため、文字コード不一致によるトラブルが発生する場合があります。<br />
文字コードの知識が必要となるのは、こうしたトラブルへの対応や、トラブルを回避するためです。<br />
代表的なトラブルについて、ご紹介します。</p>
<h4>文字化け</h4>
<p>プログラムは問題なく表示されているけれど、コメントの日本語が文字化けして読めない、ということも。<br />
この場合は、英数字のみ文字コードの互換性があって、たまたま表示されているだけであるため、文字コードを正しく指定して表示する必要があります。<br />
文字化けは、パターンがいくつかあります</p>
<ul>
<li>保存したファイルの文字コードと、表示（解釈）に使用した文字コードが、不一致の場合</li>
<li>保存したファイルの文字コードと、プログラム（HTMLなど）で、指定した字コードが、不一致の場合</li>
<li>機種依存文字を、他の機種で表示した場合</li>
</ul>
<p> 文字化けの基本的な対策は以下の通りです。</p>
<ul>
<li>文字コードを明示的に指定する</li>
<li>環境依存文字を使用しないこと</li>
</ul>
<p> 文字化けが発生し場合には、まず、ファイルやツールが使用している文字コードを確認して、文字コードを合わせる方法を確認していきましょう。</p>
<h4>改行コード</h4>
<p>改行コードは、Wordなどで「⏎」という記号を目にすると思います。<br />
ごれは改行コードのひとつである「CRLF」を表しています。<br />
改行コードには「CR」「LF」「CRLF」という種類があり、１つのファイルに複数の改行コードが存在すると、主にテキストデータ（テキストデータやCSVファイルなど）を編集するプログラムで、思わぬトラブルが発生することがあります。<br />
トラブルを回避するには、改行コードを統一しておく必要があります。<br />
改行コードを一括置換などして、改行コードの種類を揃えておきましょう。</p>
<h4>コンパイルエラー</h4>
<p>例えば、Javaの場合、使用する文字コードは、Unicodeと決められているため、Unicode以外の文字コードでプログラムを作成した場合、コンパイルエラーとなります。<br />
紹介した文字コードの中では、文字コードをUTF-8で作成したプログラムは、コンパイルが通りますが、Shift_JISで作成したプログラムは、コンパイルエラーとなります。<br />
これは、UTF-8が、Unicode系の文字コードであり、Shift_JISは、Unicode系の文字コードではないためです。<br />
ファイルが、どの文字コードで作成されているか確認する方法は、使用するツールによって異なるため、検索してみてください。</p>
<h2>おわりに</h2>
<p><img fetchpriority="high" decoding="async" src="/wp-content/themes/the-thor/img/dummy.gif" data-layzr="/assets/2025/11/atda-eyecatch_character_code.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7786" /></p>
<p>文字コードの基礎知識を紹介しました。<br />
一見、プログラムの知識と関係のないように思えますが、文字コードを知ることで、文字コードに関連するトラブルの発生を未然に防ぎ、より良い品質のソフトフェアを開発することができるようになります。</p>
]]>
        
    </content>
</entry>

<entry>
    <title>【初心者向け】相対パスの指定方法・書き方や間違えやすいポイント</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/tips/7774/" />
    <id>tag:192.168.15.111,2025://1.219</id>

    <published>2025-12-29T00:00:03Z</published>
    <updated>2026-03-21T04:11:48Z</updated>

    <summary> 	目次 	 	 	 相対パスの指定方法 相対パスを指定する際はフォルダ名を区切...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="コツ・ヒント" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2>相対パスの指定方法</h2>
<p>相対パスを指定する際はフォルダ名を区切り文字で繋げて目的のファイル名を指定するようにします。<br />
区切り文字はWindowsの場合は「\」と「 \ 」、LinuxやMacOSでは「/」を使います。<br />
解説では区切り文字は「/」を使います。<br />
パスを指定する際に記号を使って表現することがあるので解説します。</p>
<h3>特殊な記号</h3>
<h4>カレントディレクトリ(現在のフォルダ)</h4>
<p> カレントディレクトリを表す際には「.」を使いますが、一般的には省略して書きます。</p>
<h4>親ディレクトリ(1つ上の階層のフォルダ)</h4>
<p> 親ディレクトリへの移動を表す際は「..」を使います。</p>
<h3>書き方パターン</h3>
<p> 今回は以下のファイル構造を使って解説します。</p>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-plain" data-lang="Plain Text"><code class=" language-plain" data-hcb-clip="1">project/
├── html/(カレントディレクトリ)
│ ├── top.html
│ ├── index.html
│ └── image/
│ └── flower/
│ ├── sakura.png
│ └── himawari.png
├── sample.html
└── css/
└── design.css<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;1&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<h4>カレントディレクトリ内のファイル(top.html)にアクセスする場合</h4>
<p> 「top.html」と書きます。 カレントディレクトリを記載する場合は、「./top.html」と書きます。</p>
<h4>子フォルダ内のファイル(sakura.html)にアクセスする場合</h4>
<p> 「image/flower/sakura.html」と書きます。</p>
<h4>親フォルダ内のファイル(sample.html)にアクセスする場合</h4>
<p> 「../sample.html」と書きます。</p>
<h4>同じ階層の別フォルダ内のファイル(design.css)にアクセスする場合</h4>
<p> 「../css/design.css」と書きます。</p>
<h2>初心者が間違えやすいポイント</h2>
<h3>区切り文字</h3>
<p> 区切り文字を間違えて書いてしまう場合があります。特にスラッシュを使う場合は、Windowsの場合は「 \ 」、LinuxやMacOSでは「/」と向きが違うので間違えて入力することがあります。</p>
<h3>区切り文字の後にスペースを入力している</h3>
<p> 区切り文字の後にスペースが入力されている場合はエラーになります。 入力していないか確認するようにしましょう。</p>
<h3>スペルミス・ファイル名の拡張子の書き忘れ</h3>
<p> スペルミスがあると正しく読み取られません。 間違えないように確認することや、コピー&amp;ペーストを活用するようにしましょう。 また、拡張子を入力しないとファイル名と認識されません。 ファイル名を入力する際は、必ず拡張子も入力しましょう。</p>
<h3>カレントディレクトリの場所が分からない</h3>
<p> コマンドプロンプトの場合は「カーソルの左側」、LinuxやMacOSの場合は「ホスト名の後」にカレントディレクトリまでの絶対パスが書かれているので確認しましょう。 また、コマンドで表示することもできます。 コマンドプロンプトの場合は「cd」、LinuxやMacOSの場合は「pwd」で表示することができます。</p>
<h3>フォルダ構造が把握できていない</h3>
<p> エクスプローラーやFinderなどのファイルマネージャーを使い、視覚的にファイルの構造を把握するようにしましょう。</p>
<h2>おわりに</h2>
<p><img src="/assets/2025/11/atda-eyecatch_pass_shitei.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7779"> 相対パスの指定方法について解説しました。 </p>]]>
        
    </content>
</entry>

<entry>
    <title>【2025年12月度】アキバ・テックドリーム・アカデミーの卒業式及び入社式を行いました【福岡校】</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/school-blog/event/7876/" />
    <id>tag:192.168.15.111,2025://1.79</id>

    <published>2025-12-26T07:45:29Z</published>
    <updated>2026-03-21T08:28:52Z</updated>

    <summary> 	目次 	 	 	 はじめに  2025年12月23日（火）、未経験者向け無料...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="イベント紹介" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="スクールブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="卒業式・入社式" label="卒業式・入社式" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="福岡" label="福岡" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2>はじめに</h2>
<p> 2025年12月23日（火）、<a href="/">未経験者向け無料プログラミングスクール「アキバ・テックドリーム・アカデミー」（以下、テクドリ）</a>の卒業式、および運営元のメディアファイブ株式会社（以下、メディアファイブ）の入社式を、秋葉原本校と福岡校をオンライン接続し開催しましたので、今回はその様子をお届けしたいと思います！</p>
<h2 class="styled_h2">テクドリの卒業式と入社式とは</h2>
<p><span>テクドリでは、カリキュラム履修を修了したスクール生の卒業式を開催し、皆でその門出を祝う文化があります。</span> </p>
<p><span>テクドリを卒業したスクール生は、そのまま正社員としてメディアファイブに入社しますので、卒業式と入社式が同時に行われます。</span></p>
<h2 class="styled_h3">卒業式の様子</h2>
<p> 今回は福岡校1名の式典でした。卒業式には、同じカリキュラムを受けている在校生（他の新入社員やスクール生）も参加し、先立つ卒業生を送り出します。 </p>
<p>卒業生に卒業証書などを授与し、本人より決意表明のあいさつをしていただきました。 </p>
<p><img src="/assets/2025/12/20251223_sotugyoushiki_1.jpg" alt="" width="1200" height="300" class="alignnone size-full wp-image-7878"> </p>
<p>その後、スクール関係者からの式辞と、メディアファイブの河野代表取締役社長からの祝辞をいただきました。 </p>
<p><img src="/assets/2025/12/20251223_sotugyoushiki_2.jpg" alt="" width="1200" height="452" class="alignnone size-full wp-image-7879"></p>
<h2>おわりに</h2>
<p> 卒業おめでとうございます！卒業はゴールではなく、IT業界のスタートラインです。メディアファイブは卒業後もサポートし続けます！</p>]]>
        
    </content>
</entry>

<entry>
    <title>【初心者向け】テンプレートエンジンとは？代表的なものも紹介</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/lang/7769/" />
    <id>tag:192.168.15.111,2025://1.213</id>

    <published>2025-12-22T00:00:50Z</published>
    <updated>2026-03-21T04:33:14Z</updated>

    <summary> 	目次 	 	 	 テンプレートエンジンとは HTMLやメール本文などの文字列...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発言語" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2 id="outline_1__1">テンプレートエンジンとは</h2>
<p>HTMLやメール本文などの文字列のひな型である「テンプレート」に、プログラミング的な機能(変数、条件分岐、ループなど)を組み込み、「データモデル」から得たデータを使って文字列である「成果ドキュメント」を作成する仕組みのことを「テンプレートエンジン」と言います。</p>
<h3 id="outline_1__1_1">テンプレートエンジンの構成</h3>
<p>テンプレートエンジンは主に「ソーステンプレート」、「データモデル」、「成果ドキュメント」で構成されています。</p>
<h4>ソーステンプレート</h4>
<p>HTMLやメール本文などの文字列のひな形です。<br />
ソーステンプレートの記述には、PHPやPythonなどのプログラミング言語や、<br />
Jinja2、EJS、Thymeleafなどの専用に設計されたテンプレート言語を使います。</p>
<h4>データモデル</h4>
<p>ソーステンプレートに埋め込む具体的なデータを保持する部分です。<br />
ソーステンプレートとは分離しており、「DBMS」、「XML」、「CSV」、「JSON」、「スプレッドシート」など様々な形式で管理されています。</p>
<h4>成果ドキュメント</h4>
<p>ソーステンプレートとデータモデルを組み合わせて生成されるドキュメントを指します。<br />
Webアプリケーションの場合は、ブラウザに表示されるHTMLページ、メールの場合は送信されるメール本文など、用途に応じてHTML、テキスト、PDFといった様々な形式で生成されます。</p>
<h2 id="outline_1__2">使用するメリット</h2>
<h3 id="outline_1__2_1">表示内容とコードの分離ができる</h3>
<p>表示内容はソーステンプレート、データ部分はデータモデルに書き分けることができます。<br />
こうすることで、デザイナーは表示内容、プログラマーはコードの部分を書くように役割分担することができます。</p>
<h3 id="outline_1__2_2">効率化</h3>
<p>ソーステンプレートを使いまわすことができるため、同じレイアウトや処理を作り直す必要がないため作業効効率が上がります。</p>
<h3 id="outline_1__2_3">保守性の向上</h3>
<p>修正や追加をする際、デザインを変更する場合はソーステンプレートを、データの場合はデータモデルを変更するだけで良いので保守性が上がります。</p>
<h2 id="outline_1__3">代表的なテンプレートエンジン</h2>
<p>最後によく使われるテンプレートエンジンをプログラム言語ごとにまとめました。</p>
<h3 id="outline_1__3_1">Java</h3>
<h4>JSP</h4>
<p>Java Server Pagesの略で、HTMLの中にJavaのコードが書けるようなります。<br />
サーバー上でServletに変換して実行します。</p>
<h4>Thymeleaf</h4>
<p>フレームワークのSpring Bootと組み合わせて使います。<br />
HTMLに「th:属性」を使ってJavaのデータを埋め込むことができます。</p>
<h3 id="outline_1__3_2">JavaScript</h3>
<h4>EJS</h4>
<p>Embedded JavaScriptの略で、JavaScriptのようにHTMLを書けるようになります。<br />
HTMLの中にJavaScriptのコードを埋め込むことができ、をヘッダーとフッターで分割して管理することができます。</p>
<h4>Handlebars</h4>
<p>HTMLの中に「{{ 変数 }}」のようにデータを埋め込んで表示できます。<br />
条件文やループを使うことができます。</p>
<h4>Pug</h4>
<p>HTMLを短く書くことができます。<br />
閉じタグが不要になるなどHTMLのコード量を減らすことができるので、人気があります。</p>
<h3 id="outline_1__3_3">Python</h3>
<h4>Jinja2</h4>
<p>FlaskやFastAPIなどのフレームワークで使われます。<br />
HTMLと (デザイン)とPython(ロジック)の部分を分けて管理することでコードを見やすくすることができます。</p>
<h3 id="outline_1__3_4">PHP</h3>
<h4>Smarty</h4>
<p>PHPで古くから使われています。<br />
HTMLとPHPのHTML(デザイン)とPHP(ロジック)の部分を分けて管理することができます。</p>
<h2 id="outline_1__4">おわりに</h2>
<p><img fetchpriority="high" decoding="async" src="/dummy.gif" data-layzr="/assets/2025/11/atda-eyecatch_template-engine.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7772" /></p>
<p>テンプレートエンジンについて解説いたしました。</p>]]>
        
    </content>
</entry>

<entry>
    <title>【初心者向け】シェルとは？種類や学習するメリット・デメリット</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/lang/7760/" />
    <id>tag:192.168.15.111,2025://1.212</id>

    <published>2025-12-15T00:00:15Z</published>
    <updated>2026-03-21T04:34:32Z</updated>

    <summary>本記事では、プログラミング初心者向けに向けて「シェルとは何か」「シェルを学習する...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発言語" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<p>本記事では、プログラミング初心者向けに向けて「シェルとは何か」「シェルを学習するメリットとデメリット」などについて、分かりやすく解説いたします！</p>
<p>なお、本記事を執筆したのは、プログラミングスクール「アキバ・テックドリーム・アカデミー」（以下、テクドリ）の運営企業であるメディアファイブ株式会社（以下、メディアファイブ）に所属している現役の<span>IT</span>エンジニア職の社員です。<span> </span></p><div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2 id="outline_1__1">シェルとは</h2>
<p>シェル（<span>Shell</span>）とは、ユーザーが入力したコマンドを<span>OS</span>へと伝えるプログラムです。</p>
<p><span>OS</span>の基本機能の役割を担うソフトウェアのことをカーネルといいますが、ユーザーから見てカーネルを包み込む貝殻（<span>shell</span>）のように見えることから名付けられました。<span> </span></p>
<h3 id="outline_1__1_1">シェルスクリプト</h3>
<p>シェルと混同しやすい用語としてシェルスクリプトがあります。</p>
<p>シェルスクリプトとは、シェルによる一連の命令をシェルコマンドにて記述したテキストファイルです。</p>
<p>また、スクリプト言語の定義が<span>"</span>プログラマーにとって比較的簡単に記述や実行ができる言語<span>"</span>であることから、シェルスクリプトはシェルを操作するためのプログラミング言語の<span>1</span>種ともいえます。</p>
<h3 id="outline_1__1_2">シェルの仕組み</h3>
<p>ユーザーが<span>OS</span>に対して何らかの操作を行いたい場合、コマンドラインからテキストベースのコマンドを入力します。シェルはコマンドを受け取りカーネルへと伝達します。命令を受け取ったカーネルは処理を実行し、実行結果をシェルへと返します。シェルが受け取った結果を画面上へ表示することで、ユーザーは実行結果を確認することができます。</p>
<h3 id="outline_1__1_3">シェルの特徴</h3>
<p>シェルの特徴として下記が挙げられます。</p>
<h4>コンパイルが不要</h4>
<p>シェルはコンパイルが不要なコマンド言語です。</p>
<p>実行するにあたって変換作業を行う必要がないため、開発にかかる手間を削減することができます。<span> </span></p>
<h4>柔軟性や拡張性に優れている</h4>
<p>シェルは多くの<span>OS</span>で普及しているため、異なる<span>OS</span>間でのデータ操作やファイル移行を比較的容易に行うことが可能です。</p>
<p>また、他のプログラミング言語で記述されたプログラムと組み合わせることができるため、実装できる機能の幅が広がります。<span> </span></p>
<h3 id="outline_1__1_4">シェルの使用例</h3>
<p>シェルを利用することで、<span>OS</span>操作を自動化および効率化することができます。</p>
<p>シェルの使用例として下記が挙げられます。</p>
<ul>
<li>システムやデータのバックアップ</li>
<li>ファイルやディレクトリの操作</li>
<li>ファイルやデータベースからのデータ抽出</li>
<li>ソフトウェアのインストールおよびアップデート</li>
</ul>
<h2 id="outline_1__2">シェルの種類</h2>
<p>シェルは<span>B</span>シェル系と<span>C</span>シェル系の大きく<span>2</span>つに分類されます。</p>
<ul>
<li><span>B</span>シェル系<br />
<span>B</span>シェル系は<span>UNIX </span>系<span>OS</span>の標準シェルで、シェルのなかでもオーソドックスなものとされています。<br />
主に、<span>sh</span>、<span>ksh</span>、<span>bash</span>などが挙げられます。</li>
<li><span>C</span>シェル系<br />
<span>C</span>シェル系は<span>B</span>シェル系の<span>sh</span>を<span>C</span>言語風にアレンジしたシェルです。<br />
主に、<span>csh</span>、<span>tcsh </span>などが挙げられます。</li>
</ul>
<h3 id="outline_1__2_1"><span>sh</span></h3>
<p><span>sh</span>はBourne Shell（ボーンシェル） やBシェルとも呼ばれています。</p>
<p>最も古くからある<span>UNIX</span>系<span>OS</span>のためのシェルですが、<span>UNIX</span>以外の<span>OS</span>でも利用可能です。</p>
<p>ただし、後に登場したシェルと比較すると使いづらい部分もあることから、一般的には<span>sh</span>以外のシェルを利用しています。</p>
<h3 id="outline_1__2_2"><span> </span><span>bash</span></h3>
<p><span>bash</span>は<span>sh</span>を生まれ変わらせたという意味でBourne again shell（ボーンアゲインシェル）と呼ばれています。</p>
<p><span>sh</span>の互換性を持ちながら多くの付加機能が追加されました。</p>
<p>その使いやすさから<span>LINUX</span>系<span>OS</span>の標準シェルとして利用されており、<span>macOS</span>にも導入されているオーソドックスなシェルです。</p>
<p><span>Windows</span>環境でも <span>Windows Subsystem for Linux </span>を用いることで<span>bash</span>を利用することができます。</p>
<h3 id="outline_1__2_3"><span>zsh</span></h3>
<p><span>zsh</span>は<span>sh</span>や<span>bash</span>の拡張版のシェルで、Zシェルとも呼ばれています。</p>
<p>他のシェルを参考にさまざまな便利機能が取り入れられた、水準の高いプログラムです。</p>
<p>具体的な機能として、コマンドの補完機能や柔軟な検索機能、プラグインやテーマのサポートなどが挙げられます。</p>
<p>また、カスタマイズ性も高く、柔軟な拡張性が備わっています。<span> </span></p>
<h3 id="outline_1__2_4"><span>csh/tcsh</span></h3>
<p><span>csh</span>はC shell（シーシェル）と呼ばれており、<span>tcsh</span>は<span>csh</span>を改良したシェルです。</p>
<p><span>UNIX</span>系<span>OS</span>のための独自開発されたシェルであり、<span>sh</span>や<span>bash</span>（ボーンシェル系）とは異なる文法や機能で構成されています。</p>
<p><span>C</span>言語に似た文法構造となっているため、<span>C</span>言語を習得しているプログラマにとっては馴染みやすいシェルといえます。</p>
<h3 id="outline_1__2_5"><span>ksh</span></h3>
<p><span>ksh</span>はKornShell（コーンシェル）と呼ばれています。</p>
<p><span>UNIX</span>系<span>OS</span>のためのシェルで、<span>sh</span>の上位互換である一方、<span>csh</span>の機能も一部取り入れて開発されたシェルです。</p>
<p>そのため、<span>B</span>シェル系と<span>C</span>シェル系の両方の利点を持っているといえます。</p>
<h2 id="outline_1__3">シェルを学習する上でのメリット・デメリット</h2>
<p>未経験からシェルを学ぶ上でのメリット・デメリットについて紹介いたします。<span> </span></p>
<h3 id="outline_1__3_1">メリット</h3>
<p>シェルを学習する場合の主なメリットとして下記が挙げられます。<span> </span></p>
<h4>インフラエンジニアにとっては必須スキル</h4>
<p>シェルは<span>UNIX</span>や<span>Linux</span>系<span>OS</span>を扱う場合、システム管理者や開発者にとっては必須スキルの一つといえます。</p>
<p><span>OS</span>のコマンド操作だけでなく、ソフトウェアの起動や停止、再起動を行う上でも必要となるため、使用頻度も高く、習得したスキルを活かすことができる場面が多いです。</p>
<h4>書籍や学習サイトが豊富</h4>
<p>シェルに関する優れた書籍はいくつも出版されています。</p>
<p>また、実際にシェルを扱うことができるプログラミング学習サイトもあるため、気軽に実践的な学習を行うことができます。</p>
<h3 id="outline_1__3_2">デメリット</h3>
<p>シェルを学習する場合の主なデメリットとして下記が挙げられます。</p>
<h4><span>Web</span>アプリケーションの開発に適さない</h4>
<p>シェルはネットワーク通信機能が限られているため、<span>Web</span>アプリケーションの開発には向かないとされています。</p>
<p>そのため、アプリエンジニアを目指す場合、インフラエンジニアほど使用頻度としては高くない印象です。</p>
<h2 id="outline_1__4">シェルについて</h2>
<p><img fetchpriority="high" decoding="async" src="/wp-content/themes/the-thor/img/dummy.gif" data-layzr="/assets/2025/11/atda-eyecatch_shell.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7766" /></p>
<p>ここまでシェルについて紹介してきました。</p>
<p>シェルの特徴としては下記があります。</p>
<ul>
<li>インフラエンジニアにとっては必須スキル</li>
<li>書籍や学習サイトが豊富</li>
</ul>
<p>シェルを学習するメリットとしては下記があります。</p>
<ul>
<li>インフラエンジニアにとっては必須スキル</li>
</ul>
<p>シェルを学習するデメリットとしては下記があります。</p>
<ul>
<li><span>Web</span>アプリケーションの開発に適さない</li>
</ul>
<p>シェルを活用して業務を自動化・効率化できるシーンは多数あるため、特にインフラエンジニアを目指す方にはおすすめのプログラムです。</p>]]>
        
    </content>
</entry>

<entry>
    <title>年末年始期間の営業に関するお知らせ（2025年12月30日～2026年1月4日）</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/custom/20251201/" />
    <id>tag:192.168.15.111,2025://1.13</id>

    <published>2025-12-01T00:00:08Z</published>
    <updated>2026-03-18T07:04:10Z</updated>

    <summary>平素より格別のお引き立てを賜り、誠にありがとうございます。 メディアファイブ株式...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<p>平素より格別のお引き立てを賜り、誠にありがとうございます。 メディアファイブ株式会社（以下、メディアファイブ）が運営する未経験者向け無料プログラミングスクール「アキバ・テックドリーム・アカデミー」（以下、テクドリ）は、2025年12月から2026年1月の年末年始期間中の営業日を、下記のとおりご案内いたします。 期間中はご不便をおかけする場合もございますが、何卒ご理解のほどよろしくお願いいたします。</p>
<p class="has-text-align-right" style="text-align: right">敬具</p>
<p style="text-align: center">記</p>
<h2>2025年</h2>
<table border="1" style="border-collapse: collapse; width: 100%">
<tbody>
<tr>
<th style="width: 50%; text-align: left">12月29日（月）</th>
<td style="width: 50%">仕事納め</td>
</tr>
<tr>
<th style="width: 50%; text-align: left">12月30日（火）</th>
<td style="width: 50%">
<p><span class="ep-label bgc-DPred brc-white ftc-white es-radius es-RpaddingSS es-LpaddingSS">休業日</span></p>
</td>
</tr>
<tr>
<th style="width: 50%; text-align: left">12月31日（水）</th>
<td style="width: 50%">
<p><span class="ep-label bgc-DPred brc-white ftc-white es-radius es-RpaddingSS es-LpaddingSS">休業日（大晦日）</span></p>
</td>
</tr>
</tbody>
</table>
<h2>2026年</h2>
<table border="1" style="border-collapse: collapse; width: 100%">
<tbody>
<tr>
<th style="width: 50%; text-align: left">1月1日（木)</th>
<td style="width: 50%">
<p><span class="ep-label bgc-DPred brc-white ftc-white es-radius es-RpaddingSS es-LpaddingSS">休業日（元旦）</span></p>
</td>
</tr>
<tr>
<th style="width: 50%; text-align: left">1月2日（金）</th>
<td style="width: 50%">
<p><span class="ep-label bgc-DPred brc-white ftc-white es-radius es-RpaddingSS es-LpaddingSS">休業日</span></p>
</td>
</tr>
<tr>
<th style="width: 50%; text-align: left">1月3日（土）</th>
<td style="width: 50%">
<p><span class="ep-label bgc-DPred brc-white ftc-white es-radius es-RpaddingSS es-LpaddingSS">休業日</span></p>
</td>
</tr>
<tr>
<th style="width: 50%; text-align: left">1月4日（日）</th>
<td style="width: 50%">
<p><span class="ep-label bgc-DPred brc-white ftc-white es-radius es-RpaddingSS es-LpaddingSS">休業日</span></p>
</td>
</tr>
<tr>
<th style="width: 50%; text-align: left">1月5日（月）</th>
<td style="width: 50%">仕事始め</td>
</tr>
</tbody>
</table>
<figure class="wp-block-table table table-is-preset3">
<p></p>
</figure>
<p class="has-text-align-right" style="text-align: right">以上</p>]]>
        
    </content>
</entry>

<entry>
    <title>【初心者向け】バージョン管理ツールSVNとは？Gitとの違い</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/ide/7744/" />
    <id>tag:192.168.15.111,2025://1.158</id>

    <published>2025-12-01T00:00:07Z</published>
    <updated>2026-03-21T05:51:57Z</updated>

    <summary> 	目次 	 	 	 SVNとは  SVN（Subversion）は、ソフトウェ...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発環境" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2>SVNとは</h2>
<p> SVN（Subversion）は、ソフトウェア開発でソースコードやファイルを管理するためのオープンソースのバージョン管理ツールです。集中型バージョン管理システム（CVCS）に分類され、中央サーバーにリポジトリを置き、開発者がそこにアクセスして作業を行います。 </p>
Could not retrieve HTML for embedding from https://tech-dream.school/archives/category/study/programming/ide/7588<h3>SVNの役割</h3>
<p> SVNは、開発作業をスムーズに進めるための重要なツールです。 </p>
<p>たとえば、ファイルやコードの変更履歴を詳細に記録するため、過去の状態に戻したり、誰が何を変更したかを簡単に確認したりできます。 </p>
<p>また、「WinMerge」というツールを紐づけることで、変更履歴を確認する際に、変更前と変更後のソースコードの差分を視覚的に確認できます。 </p>
<p>これはとても便利な機能なので、SVNと一緒に導入しておきたいツールです。</p>
<h3>SVNの仕組み</h3>
<p> SVNは、中央サーバーのリポジトリを中心に動きます。開発者はまず、リポジトリからファイルのコピーを自分のパソコンにダウンロードします。これを「チェックアウト」と呼びます。</p>
<p> 編集が終わったら、変更をリポジトリに保存する「コミット」を行います。このとき、変更履歴が「リビジョン」という番号で記録されます。 </p>
<p>他の人が更新した内容を取り込むには「アップデート」を使い、自分のコピーを最新に保ちます。このように、SVNがすべての変更をまとめて管理することができます。</p>
<p> 具体的な例を挙げると、ある開発チームが新機能を追加する場合、まずリポジトリから最新のコードをチェックアウトし、各自が担当部分を編集します。 </p>
<p>編集後、コミットを行うことで変更がリポジトリに反映され、他のメンバーもアップデートを通じてその変更を取り込めます。</p>
<h3>SVNの特徴</h3>
<p> SVNには明確なメリットがあります。 </p>
<p>操作がシンプルで初心者でも扱いやすく、変更履歴が中央で一元管理されるため見やすいです。大規模なプロジェクトやバイナリファイルの管理にも対応できる点も魅力です。</p>
<p> 一方でデメリットもあります。 </p>
<p>中央サーバーに依存するので、オフラインでの作業が難しく、サーバーが止まると全員が影響を受けます。 </p>
<p>実際にサーバーが止まってしまった経験は何度もあります。その際には、共有フォルダにソースファイルを保存してチーム内で共有する他ありませんが、基本的にすぐに復旧できる障害であることが多いです。 </p>
<p>これらの特徴により、SVNは安定性を求める大規模プロジェクトなどで重宝されています。</p>
<h2>Gitなどの分散バージョン管理システムとの違い</h2>
<p> SVNとGitの違いを理解するために、まずGitがどんなものかを簡単に説明します。 </p>
<p>Gitは、SVNと同じくソースコードやファイルを管理するバージョン管理ツールですが、「分散型」と呼ばれる仕組みを採用しています。SVNが中央サーバーにすべてのデータを集めるのに対し、Gitでは開発者一人ひとりが自分のパソコンにリポジトリの完全なコピーを持ちます。 </p>
<p>Gitに関しては、<a href="https://tech-dream.school/archives/category/study/programming/ide/7731">別の記事にて詳しく解説</a>しています。 </p>Could not retrieve HTML for embedding from https://tech-dream.school/archives/category/study/programming/ide/7731<p>たとえば、SVNは大きな図書館のようなものです。 </p>
<p>すべての本（コードやファイル）が中央サーバーに置かれていて、開発者は図書館に行って本を借り（チェックアウト）、編集したらすぐ返し（コミット）、他の人の変更も図書館から借り直して（アップデート）確認します。図書館が閉まると（サーバーが止まると）誰も本に触れられず、ネットがないと作業ができません。 </p>
<p>一方、Gitは各自が自分のノートを持っているようなスタイルです。 </p>
<p>みんなが同じ本のコピーを持ち、自分のノートに自由に書き込み（コミット）できます。 </p>
<p>ネットがなくても作業できて、後でチームメンバー同士でノートを見せ合って（同期して）最新の状態を共有します。SVNは「図書館が一か所にあってみんなで使う」ので管理がシンプルだけど依存度が高い、Gitは「各自がノートを持ち寄る」ので自由度が高いけど調整が必要、という違いです。</p>
<h2>SVNのインストールと基本設定</h2>
<p> SVNを始めるには、まずサーバーにリポジトリを作成し、クライアントツールをインストールします。 </p>
<p>たとえば、Windowsユーザには「TortoiseSVN」が人気です。これはWindowsエクスプローラーに統合され、右クリックメニューからチェックアウトやコミットなどの操作が簡単にできます。初心者でもすぐに使い始められる点が魅力です。</p>
<h2>まとめ</h2>
<p><img src="/assets/2025/11/atda-eyecatch_svn.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7751"></p>
<p> SVNは、集中型バージョン管理システムとして、シンプルで直感的な操作性を提供するツールです。大規模プロジェクトや中央集権的な管理に適しています。バージョン管理の基礎を学びたい初心者や、既存のSVN環境を引き継ぐ場合にもおすすめです。この記事を参考に、是非SVNを活用してみてください。</p>]]>
        
    </content>
</entry>

<entry>
    <title>【2025年11月度】アキバ・テックドリーム・アカデミーの卒業式及び入社式を行いました【福岡校】</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/school-blog/event/7861/" />
    <id>tag:192.168.15.111,2025://1.78</id>

    <published>2025-11-26T04:01:03Z</published>
    <updated>2026-03-21T08:31:18Z</updated>

    <summary> 	目次 	 	 	 はじめに  2025年11月25日（火）、未経験者向け無料...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="イベント紹介" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="スクールブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="卒業式・入社式" label="卒業式・入社式" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="福岡" label="福岡" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2>はじめに</h2>
<p> 2025年11月25日（火）、<a href="/">未経験者向け無料プログラミングスクール「アキバ・テックドリーム・アカデミー」（以下、テクドリ）</a>の卒業式、および運営元のメディアファイブ株式会社（以下、メディアファイブ）の入社式を、秋葉原本校と福岡校をオンライン接続し開催しましたので、今回はその様子をお届けしたいと思います！</p>
<h2 class="styled_h2">テクドリの卒業式と入社式とは</h2>
<p><span>テクドリでは、カリキュラム履修を修了したスクール生の卒業式を開催し、皆でその門出を祝う文化があります。</span></p>
<p> <span>テクドリを卒業したスクール生は、そのまま正社員としてメディアファイブに入社しますので、卒業式と入社式が同時に行われます。</span></p>
<h2 class="styled_h3">卒業式の様子</h2>
<p> 今回は福岡校1名の式典でした。卒業式には、同じカリキュラムを受けている在校生（他の新入社員やスクール生）も参加し、先立つ卒業生を送り出します。 </p>
<p>卒業生に卒業証書などを授与し、本人より決意表明のあいさつをしていただきました。 </p>
<p><img src="/assets/2025/11/20251125_sotugyoushiki_1.jpg" alt="2025年11月25日（火）無料プログラミングスクール「アキバ・テックドリーム・アカデミー（テクドリ）」の卒業式・入社式 - 証書授与の様子" width="1200" height="900" class="alignnone wp-image-7862 size-full"> </p>
<p>その後、スクール関係者からの式辞と、メディアファイブの河野代表取締役社長からの祝辞をいただきました。 </p>
<p><img src="/assets/2025/11/20251125_sotugyoushiki_2.jpg" alt="2025年11月25日（火）無料プログラミングスクール「アキバ・テックドリーム・アカデミー（テクドリ）」の卒業式・入社式 - 祝辞の様子" width="1200" height="297" class="alignnone wp-image-7863 size-full"></p>
<h2>おわりに</h2>
<p> 卒業おめでとうございます！卒業はゴールではなく、IT業界のスタートラインです。メディアファイブは卒業後もサポートし続けます！</p>]]>
        
    </content>
</entry>

<entry>
    <title>情報メディアに当スクールがおすすめのプログラミングスクールとして掲載されました（2025年11月20日時点）</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/custom/20251125/" />
    <id>tag:192.168.15.111,2025://1.14</id>

    <published>2025-11-25T05:08:28Z</published>
    <updated>2026-03-18T07:07:58Z</updated>

    <summary>メディアファイブ株式会社（以下、メディアファイブ）が運営する未経験者向け無料プロ...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="お知らせ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<p><span>メディアファイブ株式会社（以下、メディアファイブ）が運営する未経験者向け無料プログラミングスクール「アキバ・テックドリーム・アカデミー」（以下、テクドリ）が、<a href="https://d-gear.biz/" target="_blank" rel="noopener">デジタルギア株式会社</a>のコーポレートサイト内の<a href="https://d-gear.biz/column" target="_blank" rel="noopener">お役立ちコラム</a>の記事に掲載されたことをご報告いたします。</span> <img src="/assets/2025/11/DigitalGear.png" alt="" width="1024" height="576" class="size-full wp-image-7846 aligncenter"></p>
<blockquote>
<p><a href="/assets/2025/11/DigitalGear_screenshot.png"><img src="/assets/2025/11/DigitalGear_screenshot.png" alt="" width="919" height="307" class="aligncenter wp-image-7852 size-full"></a> <span>テクドリ（アキバ・テックドリーム・アカデミー）は、未経験者歓迎・無料で学べる実践型プログラミングスクールです。現役エンジニア講師が知識ゼロから個別指導し、オンラインとオフラインを活用し最短6か月で就職や現場で通用するスキル習得が可能。IT基礎からモダンな技術まで幅広く対応し、仲間と切磋琢磨できる学習環境や充実のキャリア支援も魅力です。SES企業や他スクールと比べても、実務につながるカリキュラムとプロ講師陣によるサポートで高い学習継続率を実現しています。</span> <p></p>
<p><span style="font-size: 8pt;">引用元：<a href="https://d-gear.biz/" target="_blank" rel="noopener">デジタルギア株式会社</a>「<a href="https://d-gear.biz/column/5019#%25e3%2582%25a2%25e3%2582%25ad%25e3%2583%2590%25e3%2583%2586%25e3%2583%2583%25e3%2582%25af%25e3%2583%2589%25e3%2583%25aa%25e3%2583%25bc%25e3%2583%25a0%25e3%2582%25a2%25e3%2582%25ab%25e3%2583%2587%25e3%2583%259f%25e3%2583%25bc%25e3%2583%2586%25e3%2582%25af%25e3%2583%2589%25e3%2583%25aa" target="_blank" rel="noopener">おすすめのプログラミングスクールを紹介！選び方も解説</a>」　閲覧日：2025/11/21</span></p>
</blockquote>]]>
        
    </content>
</entry>

<entry>
    <title>【初心者向け】バージョン管理システムのGitとは？メリット・デメリット</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/ide/7731/" />
    <id>tag:192.168.15.111,2025://1.157</id>

    <published>2025-11-18T00:00:50Z</published>
    <updated>2026-03-21T05:55:12Z</updated>

    <summary> 	目次 	 	 	 Gitとは  Gitとは分散管理方式のバージョン管理システ...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発環境" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2>Gitとは</h2>
<p> Gitとは分散管理方式のバージョン管理システムの一つです。ファイルのバージョン管理が簡単にできるツールで、多くのプロジェクトで広く採用されています。</p>
Could not retrieve HTML for embedding from https://tech-dream.school/archives/category/study/programming/ide/7588<p>何故採用されているのかというと、例えば、</p>
<ul>
<li>複数人で共有しているファイルを二人で同時に編集してしまい、先に編集した人の変更内容が消える。</li>
<li>現在のファイルに問題が起こった際、編集前のファイルに戻すことができるよう、ファイルを編集するたびにコピーを作成する必要がある。</li>
<li>変更内容がわかるような説明を書く必要がある。</li>
</ul>
<p> こういった問題を解決するために、Gitが使用されます。</p>
<h3>分散管理方式のバージョン管理システム</h3>
<p> 「分散管理方式」はリポジトリがサーバー上だけでなく、ローカル環境にも存在し、変更したファイルの保存や変更履歴の取得をローカル環境にあるリポジトリで行います。</p><p> ローカル環境でコミットしたファイルについては適切なタイミングでサーバー上のリポジトリへ反映させます。</p>
<h3>よく使われる用語</h3>
<h4>リポジトリ</h4>
<p> リポジトリとはファイルやフォルダのバージョン管理を行う場所です。 </p>
<p>Gitのリポジトリは、リモートリポジトリとローカルリポジトリの2種類に分けられます。 </p>
<p>リモートリポジトリは専用のサーバーに配置して複数人で共有するためのリポジトリ、ローカルリポジトリは一人ひとりが利用するために、自分のコンピューター上に配置するリポジトリです。</p>
<h4>コミット</h4>
<p> コミットとはリポジトリ内にあるファイルの変更、追加、削除を行った際に作業履歴を記録することです。</p>
<p> これによって過去の変更履歴やその内容を知ることができるようになっています。</p>
<h4>ブランチ</h4>
<p> ブランチとは履歴を分岐して記録していくものです。 </p>
<p>わかりにくいですが、例えば、ベースファイルに新しい機能を付けたい場合に、ブランチを作成することで、ベースファイル（ブランチ）ができます。 </p>
<p>ブランチに機能を追加したときに、分岐して機能追加したブランチとベースファイルの両方の状態を保持できます。</p>
<h4>マージ</h4>
<p> マージとはブランチに対して、別のブランチの変更結果を取り込むことです。</p>
<h4>プッシュ</h4>
<p> プッシュは、自分のローカルリポジトリにあるファイルをリモートリポジトリに保存する作業です。</p>
<h4>プル</h4>
<p> プルは、共有しているリモートリポジトリに保存されているファイルで、自分のローカルリポジトリに存在しないファイルや、チームが更新したファイルのみをダウンロードする機能です。</p>
<h2>Gitを使用する際のメリット・デメリット</h2>
<p> Gitのメリット・デメリットについて紹介いたします。</p>
<h3>Gitを使用する際のメリット</h3>
<h4>ローカルリポジトリに自分のソースコードを登録することができるため、自分の作業の履歴を作れる。</h4>
<p> 全体の作業履歴だけでなく、自分の作業をローカルリポジトリに記録することが可能なので自身の作業履歴を管理することができます。</p>
<h4>リモートリポジトリが消えてしまっても、誰かのローカル環境のローカルリポジトリから復元すれば、履歴まで復元することが可能になる。</h4>
<p> 集中管理方式のバージョン管理システムの場合、リポジトリがサーバー上に一つしかないため、復元ができないです。 </p>
<p>しかし、Gitの場合は、ローカルリポジトリがあるため、リモートリポジトリが消えても、誰かのリポジトリがあれば、復元が可能になります。</p>
<h4>多くの企業で採用されており、豊富なサポートやコミュニティが存在する。</h4>
<p> 自分のローカル環境にリポジトリを置くということで、複数人で作業する際にスムーズなファイルや変更履歴の共有ができるため大規模開発や多人数による同時作業に適しています。そのため多くの企業に採用されています。 </p>
<p>また、GitにはGitHubなどといった世界中の人々のプロジェクトを保存、公開できるWebサービスなどがあり、学習ツールとしても活用可能です。</p>
<h3>Gitを使用する際のデメリット</h3>
<h4>チーム全体で、Gitの操作を覚える必要がある。</h4>
<p> Git操作するためには、Gitの概念や操作方法といった学習をチーム全体でしなくてはなりません。 </p>
<p>チーム全員がGitを学習する必要があることから、その分だけ学習コストがかかります。</p>
<h2>まとめ</h2>
<p><img src="/assets/2025/11/atda-eyecatch_git.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7739"> </p>
<p>今回はGitについて解説しました。</p>
<p> Gitは分散管理方式のバージョン管理システムの一つでチーム開発に主に用いられます。 </p>
<p>Gitの基本は下記の通りです。</p>
<ul>
<li>分散管理方式のバージョン管理システム</li>
<li>リポジトリ</li>
<li>コミット</li>
<li>ブランチ</li>
<li>マージ</li>
<li>プッシュ</li>
<li>プル</li>
</ul>
<p> Gitを使用する際のメリットは下記の通りです。</p>
<ul>
<li>ローカルリポジトリに自分のソースコードを登録することができるため、自分の 作業の履歴を作れる。</li>
<li>リポジトリが消えてしまっても、誰かのローカル環境のリポジトリから復元すれば、履歴まで復元することが可能になる。</li>
<li>多くの企業で採用されており、豊富なサポートやコミュニティが存在する。</li>
</ul>
<p> Gitを使用する際のデメリットは下記の通りです。</p>
<ul>
<li>チーム全体で、Gitの操作を覚える必要がある。</li>
</ul>
<p> Gitは慣れれば、とても便利に共同作業を効率よく進めることができます。 </p><p>ぜひこの機会にマスターしましょう！</p>]]>
        
    </content>
</entry>

<entry>
    <title>【エンジニア未経験向け】チャットツールとは？ツールの特徴も解説</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/ide/7726/" />
    <id>tag:192.168.15.111,2025://1.156</id>

    <published>2025-11-13T08:48:37Z</published>
    <updated>2026-03-21T05:56:26Z</updated>

    <summary> 	目次 	 	 	 チャットツールとは  ネット上でユーザー同士がメッセージの...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発環境" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2><strong>チャットツールとは</strong></h2>
<p> ネット上でユーザー同士がメッセージのやり取りを行うソフトやアプリのことです。 </p>
<p>その中でもビジネス向けに作られているものをビジネスチャットと言います。 </p>
<p>代表的なものは、<span>Slack</span>、<span>Microsoft Teams</span>、<span>Discord </span>、<span>Chatwork</span>、<span>Mattermost</span>などが挙げられます。</p>
<h3><strong>メールとの違い</strong></h3>
<p> メールでは宛先や件名、挨拶や署名などで長文になりがちです。しかし、チャットでは用件だけを入力することが多いので、比較的短文になることが多いです。</p>
<p> また、メールは複数人でやり取りをすることには向いていませんが、チャットではグループを作ることで複数人でのやり取りをすることができます。 </p>
<p>その他にも送信後のメッセージの編集や削除、スタンプ機能などメールにはない機能があります。<span>&nbsp;</span></p>
<h3><strong>アプリ開発におけるチャットの使い方</strong></h3>
<p> バク報告やコードの修正をチャットのログに残すことでエラー内容の共有や、対応者が誰かが分かりやすくなります。 </p>
<p>また、リモートワークでメンバーと離れていてもチャットやオンライン通話などで、進捗報告や質問、定例会議などが行えます。</p>
<h2><strong>よく使われるチャットツールの特徴</strong></h2>
<h3><span>Slack</span></h3>
<p> 部署やプロジェクトごとにチャンネルを作ることができるため、チャットの管理がしやすいです。 </p>
<p><span>GitHub</span>や<span>Google Calendar</span>、<span>Zoom</span>など様々な外部サービスと連携することができます。</p>
<h3><span>&nbsp;Microsoft Teams</span></h3>
<p><span>Excel</span>や<span>PowerPoint</span>、<span>Outlook</span>などの<span>Microsoft</span>製品と連携することで共同編集やスケジュール管理などが行えます。</p>
<p> <span>Office 365</span>のプランに含まれているので、<span>Office 365</span>が導入されていれば追加料金なしで利用することができます。<span>&nbsp;</span></p>
<h3><span>Discord</span></h3>
<p> 画面共有やビデオ通話、ボイスチャットなどが無料で行うことができます。 </p>
<p>タスク通知や自動メッセージ送信などをすることができる<span>BOT</span>を使うことができます。</p>
<h3><span>Chatwork</span></h3>
<p> 国産のチャットツールなので、ほかのチャットツールと異なり、日本語サポートが充実しています。 </p>
<p><span>Chatwork</span>に登録しているユーザーを検索できるので、社外の人ともコミュニケーションをとることができます。<span>&nbsp;</span></p>
<h3><span>Mattermost</span></h3>
<p> オンプレミス運用<span>(</span>自社内でサーバー運用すること<span>)</span>ができるので、他のチャットツールより情報漏洩リスクが低いです。 </p>
<p>ソースコードが無償で公開されているので、実質無料でカスタマイズして利用することができます。<span>&nbsp;</span></p>
<h2><strong>初学者がチャットツールを使うポイント</strong></h2>
<p> 初学者の場合、どのような原因でエラーが起こっているかが分からないことが多いと思います。その際に、疑問点を文章に起こして質問することで、自分の疑問点を明確にすることや、相手に分かりやすく伝えることができます。</p>
<p> また、大事な情報を見逃さないために、通知が来たらチャットを見る癖をつけておくことも大切です。</p>
<h2><strong>まとめ</strong></h2>
<p><img src="/assets/2025/11/atda-eyecatch_chattool.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7728"> </p>
<p>チャットツールを使うことで、業務を円滑に進めることができます。特に開発の環境では多くの人が関わるため、情報共有や伝達のスピードが重要なため、チャットツールが多く利用されています。 </p>
<p>今回紹介したチャットツール以外にも様々なチャットツールがあります。会社や現場に合うツールを使いこなせるようにしましょう。</p>]]>
        
    </content>
</entry>

<entry>
    <title>【プログラミング初心者向け】SQLとは？種類や用語を解説！</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/lang/7721/" />
    <id>tag:192.168.15.111,2025://1.211</id>

    <published>2025-11-13T08:20:36Z</published>
    <updated>2026-03-21T04:36:02Z</updated>

    <summary> 	目次 	 	 	 SQLとは  SQL（Structured Query L...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発言語" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2><strong>SQLとは</strong></h2>
<p> SQL（<span>Structured Query Language</span>）は、和訳すると「構造化問い合わせ言語」となります。リレーショナル型データベース（データを行と列から構成される<span>2</span>次元の表形式で表すデータベース）を操作するためのデータベース言語です。 </p>
<p>SQLで操作できる代表的なデータベースとして、<span>PostgreSQL</span>、<span>Oracle Database</span>、<span>MySQL</span>などがあります。</p>
<p> データベースについては<a href="https://tech-dream.school/archives/category/study/programming/ide/7576">別の記事にて解説</a>しています。</p>
Could not retrieve HTML for embedding from https://tech-dream.school/archives/category/study/programming/ide/7576<h3 id="outline_1__1_1"><strong>SQL</strong><strong>の特徴</strong></h3>
<p>SQLには、他のプログラミング言語とは違う特徴があります。</p>
<p>以下に、<span>SQL</span>の特徴を他のプログラミング言語（ここでは<span>Java</span>）との違いも含めて説明します。</p>
<h4>汎用性が高い</h4>
<p>SQLは<span>ISO</span>（国際標準化機構）によって標準化されているため、細かい部分の違いはありますが共通部分も多く、応用が利きます。他のプログラミング言語ではそのような標準化は行われていないので、学習に時間が掛かることが多いです。</p>
<h4>宣言型言語</h4>
<p>SQLは宣言型の言語であり、データの取得や挿入などの何をしたいかを記述します。実行方法や手順に関しては、言語やコンパイラ（プログラムをコンピュータ用に翻訳するソフトウェア）に任せます。</p>
<p>対して、<span>Java</span>は命令型の言語であり、どのように処理を行うかを明示的に指示します。</p>
<h4>データベース言語</h4>
<p>SQLはデータベース言語であり、データベースに対してのみ命令できます。そのため、<span>SQL</span>のみでシステムを作成することはできません。</p>
<p>他のプログラミング言語には、<span>Java</span>や<span>C</span>言語、<span>Python</span>などがありますが、これらはアプリケーションのロジックや処理を実装するための言語であり、幅広い用途で使用されます。</p>
<h4>スキーマ定義</h4>
<p>SQLはスキーマ（テーブル構造やデータ型）を明示的に定義する必要があり、それによってデータの整合性が保たれます。<span>Java</span>では、データ構造をクラスで定義するため柔軟性がありますが、データの整合性を保つのは<span>SQL</span>よりも難しい場合があります。</p>
<h2 id="outline_1__2"><strong>SQL</strong><strong>の種類</strong></h2>
<p>SQLは、データベースを操作するための言語ですが、何を操作するかによって<span>4</span>種類に分類することができます。</p>
<h3 id="outline_1__2_1"><strong>データ定義言語</strong></h3>
<p>DDL（<span>Data Definition Language</span>）とも呼びます。データベースの構造を定義します。</p>
<p>代表的な<span>DDL</span>に、以下のようなものがあります。</p>
<h4><span>CREATE</span></h4>
<p>テーブルやデータベースオブジェクトを作成する。</p>
<h4><span>ALTER</span></h4>
<p>テーブルやデータベースオブジェクトを変更する。</p>
<h4><span>DROP</span></h4>
<p>テーブルやデータベースオブジェクトを削除する。</p>
<h3 id="outline_1__2_2"><strong>データ制御言語</strong></h3>
<p>DCL（<span>Data Control Language</span>）とも呼びます。データベースのアクセス権限を管理するために使用されます。</p>
<p>代表的な<span>DCL</span>に、以下のようなものがあります。</p>
<h4><span>GRANT</span></h4>
<p>ユーザにアクセス権限や操作権を付与する。</p>
<h4><span>REVOKE</span></h4>
<p>ユーザに付与されているアクセス権限や操作権を削除する。</p>
<h3 id="outline_1__2_3"><strong>データ操作言語</strong></h3>
<p>DML（<span>Data Manipulation Language</span>）とも呼びます。データベース内のデータを操作するために使用されます。</p>
<p>代表的な<span>DML</span>に、以下のようなものがあります。</p>
<h4><span>SELECT</span></h4>
<p>データベースにあるデータを検索する。</p>
<h4><span>INSERT</span></h4>
<p>データベースに新しいデータを登録する。</p>
<h4><span>UPDATE</span></h4>
<p>登録されているデータを変更する。</p>
<h4><span>DELETE</span></h4>
<p>登録されているデータを削除する。</p>
<h3 id="outline_1__2_4"><strong>トランザクション制御言語</strong></h3>
<p>TCL (Transaction Control Language)とも呼びます。データを更新して、更新情報が確定するまでの一連の流れを管理します。</p>
<p>代表的な<span>TCL</span>に、以下のようなものがあります。</p>
<h4><span>COMMIT</span></h4>
<p>実行した一連の<span>SQL</span>文を全て確定する。</p>
<h4><span>ROLLBACK</span></h4>
<p>実行した一連の<span>SQL</span>文を全て破棄する。</p>
<h4><span>SAVEPOINT</span></h4>
<p><span>SAVEPOINT</span>を設定した地点まで<span>ROLLBACK</span>する。</p>
<h2 id="outline_1__3"><strong>SQL</strong><strong>の用語</strong></h2>
<p>SQLを学ぶ上で基本となる用語をいくつかご紹介します。</p>
<h3 id="outline_1__3_1"><strong>テーブル</strong></h3>
<p>データを格納する表のことです。どのようなデータを格納する表であるかによって、複数のテーブルを作成することが多いです。<span>Excel</span>で例えると、シートに相当します。</p>
<h3 id="outline_1__3_2"><strong>レコード</strong></h3>
<p>データそのものを指します。また、テーブルの行（横）を意味する「ロウ」と同じ意味で使用されることもあります。</p>
<p>データベースに登録した人<span>1</span>人の氏名、住所などの情報に当たります。</p>
<h3 id="outline_1__3_3"><strong>カラム</strong></h3>
<p>テーブルの列（縦）に相当し、各項目のことを指します。</p>
<p>氏名のカラムを検索すると、データベースに登録された氏名を表示します。</p>
<h3 id="outline_1__3_4"><strong>データ型</strong></h3>
<p>カラムに格納されるデータの型を指定します。</p>
<p>数値型、文字列型、日付・時間型、ブール型、バイナリ型などがあります。</p>
<h3 id="outline_1__3_5"><strong>スキーマ</strong></h3>
<p>スキーマには「概念スキーマ」「内部スキーマ」「外部スキーマ」の<span>3</span>種類があります。</p>
<p>概念スキーマはデータベースの全体的な構造を考えるもの、内部スキーマは具体的なテーブルの内容を考えるもの、外部スキーマはユーザがデータベースからデータを抽出した結果を指しています。外部スキーマのことを「ビュー」と呼びます。</p>
<h2 id="outline_1__4"><strong>まとめ</strong></h2>
<p><img decoding="async" src="/wp-content/themes/the-thor/img/dummy.gif" data-layzr="/assets/2025/11/atda-eyecatch_sql.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7724" /></p>
<p>今回は、<span>SQL</span>とは何かについて解説しました。</p>
<p>SQLはデータベースを操作する際に必須となります。プログラミング言語の中に<span>SQL</span>文を記述して扱うこともあるので、覚えておくと便利です。</p>
<p>SQLの基礎的な知識を身に着けて、実際のデータベース操作に備えましょう！</p>]]>
        
    </content>
</entry>

<entry>
    <title>【初心者向け】フレームワークとは？代表的なものも紹介</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/ide/7715/" />
    <id>tag:192.168.15.111,2025://1.155</id>

    <published>2025-11-13T07:45:42Z</published>
    <updated>2026-03-21T05:57:31Z</updated>

    <summary> 	目次 	 	 	 フレームワークとは Frameworkとは、日本語では「枠...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発環境" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2>フレームワークとは</h2>
<p>Frameworkとは、日本語では「枠組み」、「骨組み」、「骨格」、「構造」、「構想」と訳すことができます。<br />
システム開発において、複雑な機能や仕様を効率的に実現し、高品質なソフトウェアを短期間で提供することをサポートするのがフレームワークです。<br />
つまり、システム開発においてよく利用される機能や設計パターンなどが事前に定義された「設計図」のようなもので、開発者が個別に設計・実装する部分を最小限に抑え、効率的で高品質な開発を可能にします。</p>

<h2>効率的な開発</h2>
<p>システム開発には、要件定義、設計、開発、テスト、運用といった多くの工程があり、各工程では様々な作業や方針決定などが伴います。<br />
これらの工程を円滑に進めるためには、「統一された」プロセスや手順、ルール、ツールが必要となります。<br />
フレームワークは、これらの要素を体系化し、開発チーム全体での連携の強化、プロセスを標準化します。</p>
<h3>反復作業の自動化</h3>
<p> フレームワークでは、認証処理、DBアクセス、バリデーションなど、多くのシステム開発で共通して必要な機能を自動化します。<br /> 
これにより、開発者はこれらの機能を開発する必要がなく、コア機能の実装に注力できます。</p>
<h3>共通設計パターン</h3>
<p> フレームワークは、MVC(Model-View-Controller)やDDD(Domain-Driven Design)などの実績のある設計パターンを採用しています。<br /> 
これにより、コードの可読性、品質、保守性の向上が見込めます。</p>
<h3>標準化された開発プロセス</h3>
<p> フレームワークは、開発プロセスを標準化することで、開発チーム全体の連携強化を行い、進捗管理やコードレビューの効率化を行います。</p>
<h2>品質の向上</h2>
<h3>バグの削減</h3>
<p> フレームワークは、セキュリティ対策やエラー処理など、品質向上のための機能を搭載しています。<br /> 
開発者は、これらの機能を個別に実装する必要がなくなり、バグの発生リスクを低減できます。</p>
<h3>テストの効率化</h3>
<p> フレームワークは、テストコードの自動生成や、テストフレームワークの統合をサポートすることで、テスト効率の向上が見込めます。<br /> 
テストの自動化を行うことで、開発初期段階から品質チェックを行い、バグの早期発見が見込めます。</p>
<h3>拡張性、保守性の向上</h3>
<p> フレームワークは、拡張性を考慮した設計となっており、新機能の追加や既存機能の修正が容易になります。<br /> 
また、標準化されたコードにより、保守性の向上、運用コスト削減が見込めます。</p>
<h2>代表的な機能</h2>
<p> フレームワークに含まれる機能については、フレームワークによって異なりますが、一例として以下のような機能があります。</p>
<h3>Web機能</h3>
<ul>
<li>テンプレートエンジン：HTMLテンプレートの動的な生成</li>
<li>フォームバリデーション：ユーザの入力検証、エラー処理</li>
<li>REST(Representational State Transfer)：データのやり取りをシンプルで効率的にするための仕組み</li>
<li>セッション管理：セッションIDの発行、管理、ユーザの識別</li>
<li>HTTPS：通信の暗号化、サーバ認証によるセキュリティ強化</li>
</ul>
<h3>DB接続</h3>
<ul>
<li>トランザクション管理：データの整合性と信頼性の担保</li>
<li>O/Rマッピング(オブジェクトリレーショナルマッピング)：オブジェクトとRDBのレコード紐づけ</li>
<li>DBマイグレーション：DBの構造(テーブル、カラムなど)変更や変更履歴の管理</li>
<li>クエリビルダー：プログラム上でのSQLクエリの動的な生成</li>
<li>ホットリロード：スキーマなどに対する変更が、アプリケーションの再起動なしでDBに反映される仕組み</li>
</ul>
<h3>その他</h3>
<ul>
<li>ロギング：アプリケーションの動作状況やエラー状況を記録する機能</li>
<li>テスティング：特定のルールやツールを使って効率的にテストを実行するための仕組み</li>
<li>エラーハンドリング：アプリケーションで発生する可能性のあるエラーや例外を適切に処理するための機能</li>
<li>タスクスケジューリング：特定の時間や条件に基づいてタスクを自動的に実行するための機能</li>
<li>DI(Dependency Injection)：オブジェクト間の依存関係をコードから分離し、外部から注入する設計パターン</li>
</ul>
<h2>代表的なフレームワーク</h2>
<h3>Javascript</h3>
<ul>
<li>React</li>
<li>Vue.js</li>
<li>Angular</li>
</ul>
<h3>Java</h3>
<ul>
<li>Spring</li>
<li>Apache Struts</li>
<li>Jakarta EE</li>
</ul>
<h3>Python</h3>
<ul>
<li>Django</li>
<li>Flask</li>
<li>FastAPI</li>
</ul>
<h3>PHP</h3>
<ul>
<li>Laravel</li>
<li>Symfony</li>
<li>CakePHP</li>
</ul>
<h3>Ruby</h3>
<ul>
<li>Ruby on Rails</li>
<li>Sinatra</li>
<li>Hanami</li>
</ul>
<h2>Struts2 と Spring Framework</h2>
<p> フレームワークについて紹介するにあたり、2つのフレームワークを比較してみます。 <br />
まず、Struts2 と Spring Framework はいずれもJavaで開発されたWebアプリケーションフレームワークです。 <br />
しかしながら、同じJavaで開発されたフレームワークでもいくつかの重要な違いがあります。</p>
<h3>アーキテクチャ</h3>
<ul>
<li>Struts2</li>
<li>MVCに特化したフレームワーク</li>
<li>Spring Framework</li>
<li>DI(Dependency Injection)</li>
<li>AOP(Aspect Oriented Programming、アスペクト指向プログラミング)</li>
</ul>
<p> などの機能をサポートしており、より包括的なフレームワーク</p>
<h3>セキュリティ</h3>
<p> Struts2、Spring Frameworkは共に過去に深刻なセキュリティ脆弱性が発見されたことがあります。 <br />
しかし、それらの脆弱性に対する対応の速さや、セキュリティ対策への継続的な取り組み、DIによる脆弱性発生リスク低減などの観点でSpring Frameworkの方が優れていると言えます。</p>
<h3>学習コスト</h3>
<h4>Struts2</h4>
<ul>
<li>先に挙げたようにMVCに特化したフレームワーク</li>
<li>より多機能で拡張性を備えるSpring Frameworkより学習はしやすい</li>
</ul>
<h4>Spring Framework</h4>
<ul>
<li>コミュニティが充実</li>
<li>ハンズオン学習がしやすい</li>
<li>豊富な機能による将来性が見込まれる</li>
</ul>
<p> 以上のことから、新たに学習を始めるのであればSpring Frameworkがオススメ</p>
<h3>コミュニティの規模</h3>
<h4>Struts2</h4>
<ul>
<li>かつて多くのプロジェクトで使われていた</li>
<li>現在は新規プロジェクトでの採用は減少</li>
<li>既存システムのメンテナンスやアップデートが多い傾向にある</li>
<li>一定のコミュニティはあるが、規模としては縮小傾向にある</li>
</ul>
<h4>Spring Framework</h4>
<ul>
<li>Struts2からSpring Frameworkへの移行</li>
<li>新規プロジェクトへの採用率が高い傾向にある</li>
<li>公式フォーラムやGitHubリポジトリ、Stack Overflowでの質問や回答が活発</li>
</ul>
<p> 以上のことからSpring Frameworkの方が活発なコミュニティを形成していると言える</p>
<h2>さいごに</h2>
<p><img src="/assets/2025/11/atda-eyecatch_framework.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7718"> </p>
<p>今回は「フレームワークとは」という概要について解説しました。 </p>
<p>フレームワークはシステム開発を効率化し、高品質なソフトウェアを提供するために有用なツールです。 </p>
<p>初心者でも開発を効率的に進める助けになりますので、何か一つでも自分の得意となるよう学んでみてはいかがでしょうか。 </p>]]>
        
    </content>
</entry>

<entry>
    <title>【プログラミング初心者向け】絶対パス・相対パスとは？</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/ide/7712/" />
    <id>tag:192.168.15.111,2025://1.154</id>

    <published>2025-11-13T07:05:05Z</published>
    <updated>2026-03-21T05:59:06Z</updated>

    <summary>共有フォルダにある○○資料のパスを送ってください  そんな言葉を聞いて、少し戸惑...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発環境" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div class="ep-box es-Bbrackets bgc-white es-center es-bold es-FbigL">共有フォルダにある○○資料のパスを送ってください</div>
<p> そんな言葉を聞いて、少し戸惑った経験はありませんか？ </p>
<p>この記事では、プログラミング初心者の方でも理解できるように、ファイルパスの基本的な考え方を、できるだけわかりやすく解説します。</p><div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2>パスとは</h2>
<p> パスとは、ファイルやフォルダの場所を示す文字列のことで、正式名称は「ファイルパス」と言います。コンピュータ内のファイルの住所のイメージです。 </br>
例えば、WindowsのPCでは下記のイメージのものです。</p>
<div class="ep-box es-BiconObi es-borderSolidS icon-folder">C:\Users\hogehoge\Desktop\fugafuga.txt</div>
<h2>パスの種類</h2>
<p> パスは、主に絶対パスと相対パスの2種類があります。 </p>
<p>下記の階層構造を例に、それぞれご説明いたします。</p>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-plain" data-lang="Plain Text"><code class=" language-plain" data-hcb-clip="1">C:\
├─ Users
│ ├─ hogehoge
│ │ ├─ Desktop
│ │ │ └─ fugafuga.txt
│ │ ├─ Documents
│ │ │ └─ work
...<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;1&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<h3>絶対パス</h3>
<p> 絶対パスは、ルートディレクトリ（Windowsの場合はドライブ「C:￥、D:￥など」、LinuxやmacOSの場合は「/」）から、<span class="marker-thickRed">目的のファイルやフォルダまでの全ての階層構造を表現</span>します。</p>
<h4>具体例</h4>
<p>前述したデスクトップパスの例が、この絶対パスの形式です。</p>
<div class="ep-box es-BiconObi es-borderSolidS icon-folder">C:\<span class="marker-thickRed">Users</span>\<span class="marker-thickRed marker-thickGreen">hogehoge</span>\<span class="marker-thickBlue">Desktop</span>\<span class="marker-thickYellow">fugafuga.txt</span></div>
<p>これは「Cドライブの Users → <span class="marker-thickGreen">hogehoge</span> → <span class="marker-thickBlue">Desktop</span> にある <span class="marker-thickYellow">fugafuga.txt</span>」という意味です。</p>
<h4>メリット</h4>
<ul>
<li>ルートディレクトリから始まるため、途中のフォルダ階層が明瞭。</li>
<li>どのカレントディレクトリ（現在開いているファイル・フォルダ）からでも、アクセスが可能。</li>
</ul>
<h4>デメリット</h4>
<ul>
<li>ルートディレクトリから始まるため、パスが冗長的になりやすい。</li>
<li>ストレージ移行などでルートディレクトリが変わった場合、参照不可となってしまう。</li>
</ul>
<h3 id="outline_1__2_2">相対パス</h3>
<p>相対パスは、カレントディレクトリと、<span class="marker-thickRed">目的のファイルやフォルダとの位置関係のみを表現</span>します。</p>
<h4>具体例</h4>
<p>相対パスは、カレントディレクトリによって変わります。</p>
<h5>相対パスのサンプル①（同じ Desktop フォルダにいる場合）</h5>
<div class="column column-2pc">
<div class="column__item">
<p><strong>現在地</strong></p>
<div class="ep-box es-BiconObi es-borderSolidS icon-location">C:\<span class="marker-thickRed">Users</span>\<span class="marker-thickRed marker-thickGreen">hogehoge</span>\<span class="marker-thickBlue">Desktop</span>\</div>
</div>
<div class="column__item">
<p><strong>相対パス</strong></p>
<div class="ep-box es-BiconObi es-borderSolidS icon-folder"><span class="marker-halfYellow">fugafuga.txt</span></div>
</div>
</div>
<div>同じフォルダにあるファイルは、ファイル名だけで指定できます。</div>
<div>
<h5>相対パスのサンプル②（1つ上の階層に戻る場合）</h5>
</div>
<div class="column column-2pc">
<div class="column__item">
<p><strong>現在地</strong></p>
<div class="ep-box es-BiconObi es-borderSolidS icon-location">C:\<span class="marker-thickRed">Users</span>\<span class="marker-thickRed marker-thickGreen">hogehoge</span>\<span class="marker-thickRed marker-thickGray">Documents</span>\</div>
</div>
<div class="column__item">
<p><strong>相対パス</strong></p>
<div class="ep-box es-BiconObi es-borderSolidS icon-folder"><span class="marker-thickGreen">..</span>\<span class="marker-thickBlue">Desktop</span>\<span class="marker-thickYellow">fugafuga.txt</span></div>
</div>
</div>
<p><code data-start="824" data-end="828">..</code>（ドット2つ）は、「1つ上のフォルダ」を意味します。</p>
<div>
<h5>相対パスのサンプル③（Users フォルダにいる場合<span style="font-size: 1.4rem; font-weight: 500;">）</span></h5>
<div class="column column-2pc">
<div class="column__item">
<p><strong>現在地</strong></p>
<div class="ep-box es-BiconObi es-borderSolidS icon-location">C:\<span class="marker-thickRed">Users</span>\</div>
</div>
<div class="column__item">
<p><strong>相対パス</strong></p>
<div class="ep-box es-BiconObi es-borderSolidS icon-folder"><span class="marker-thickRed marker-thickGreen">hogehoge</span>\<span class="marker-thickBlue">Desktop</span>\<span class="marker-thickYellow">fugafuga.txt</span></div>
</div>
</div>
<h5>相対パスのサンプル④（さらに深い場所にいる場合）</h5>
<div class="column column-2pc">
<div class="column__item">
<p><strong>現在地</strong></p>
<div class="ep-box es-BiconObi es-borderSolidS icon-location">C:\<span class="marker-thickRed">Users</span>\<span class="marker-thickRed marker-thickGreen">hogehoge</span>\<span class="marker-thickRed marker-thickGray">Documents</span>\<span class="marker-thickPink marker-thickGray">work</span>\</div>
</div>
<div class="column__item">
<p><strong>相対パス</strong></p>
<div class="ep-box es-BiconObi es-borderSolidS icon-folder"><span class="marker-thickRed marker-thickGray">..</span>\<span class="marker-thickGreen">..</span>\<span class="marker-thickBlue">Desktop</span>\<span class="marker-thickYellow">fugafuga.txt</span></div>
</div>
</div>
<ol data-start="822" data-end="898">
<li data-start="822" data-end="849">
<p data-start="824" data-end="849">1つ目の <code data-start="824" data-end="828">..</code> で、<span class="marker-thickGray">work</span> → <span class="marker-thickRed marker-thickGray">Documents</span> に移動</p>
</li>
<li data-start="850" data-end="881">
<p data-start="852" data-end="881">2つ目の <code data-start="852" data-end="856">..</code> で、<span class="marker-thickGray">Documents</span> → <span class="marker-thickGreen">hogehoge</span> に移動</p>
</li>
<li data-start="882" data-end="898">
<p data-start="884" data-end="898">そこから <span class="marker-thickBlue">Desktop</span> へ</p>
</li>
</ol>
</div>
<h4>メリット</h4>
<ul>
<li>絶対パスより、短いパスで済むことが多い。</li>
<li>ストレージ移行などでルートディレクトリが変わった場合でも、ファイルやフォルダの位置関係が以前と同じであれば参照可能。</li>
</ul>
<h4>デメリット</h4>
<ul>
<li>カレントディレクトリが変わると、位置関係が変わるのでパスも変わる必要がある。</li>
<li>カレントディレクトリと、目的のファイルやフォルダが遠い場合、冗長的になり且つ視認性が低くなる。</li>
</ul>
<div class="ep-box es-BiconBg icon-pushpin bgc-VPlime">
<h4>ルート相対パス</h4>
<p>相対パスは、ウェブシステムやウェブサイトで、よく活用されます。</p>
<p>具体的には、ドメイン内部ページへのリンクや、スタイルシート（CSSファイル）や画像ファイルを読み込む際などです。<br />
（もちろん、ドメイン外部ページへのリンクや、外部のリソースを読み込む際は、絶対パスしか使用できません。）</p>
<p>また、サイトやサーバーのルートディレクトリを基準にしたルート相対パスも、よく活用されます。<br />
ルート相対パスは、サイトやサーバーのルートディレクトリを表す「/」から書き始めます。絶対パスのドメイン部分（example.com）を省略するイメージです。<br />
メリットは、相対パスのように記載しますが、絶対パスと同様にルートディレクトリを基準にするので、短く記載して正確にファイルにアクセスすることができます。<br />
様々なページから呼び出されるナビゲーションメニューや、途中でフォルダ構造が変わる際に活用されます。</p>
</div>
<h2>パスの用途</h2>
<h4>絶対パスを使う場合</h4>
<p> 確実にファイルを参照する必要がある際に使います。例えばシステムの設定や環境変数の設定をする際です。</p>
<h4>相対パスを使う場合</h4>
<p> 参照先がカレントディレクトリから近い場合やフォルダ構造を変えずに移動する際に使います。</p>
<h2>初心者がつまずきやすいポイント</h2>
<h3>パスの区切り文字</h3>
<p>ファイル名やフォルダ名の間は区切り文字で区切られます。</p>
<div class="column column-2">
<div class="column__item ep-box es-BpaperRight es-grid bgc-VPsky">
<h4>Windowsの場合</h4>
<p style="text-align: center;"><strong>バックスラッシュ「\」</strong></p>
<p><img decoding="async" src="/dummy.gif" data-layzr="/assets/2025/11/150x150-backslash.png" alt="ファイルの区切り文字「\」（バックスラッシュ）" width="150" height="150" class="aligncenter wp-image-7885 size-full" data-wp-editing="1" /><img decoding="async" src="/dummy.gif" data-layzr="/assets/2025/11/150x150-backslash-yen.png" alt="ファイルの区切り文字「\」（￥マーク）" width="150" height="150" class="wp-image-7886 size-full aligncenter" /></p>
</div>
<div class="column__item ep-box es-BpaperRight es-grid bgc-VPsky">
<h4>LinuxやMacOSの場合</h4>
<p style="text-align: center;"><strong>スラッシュ「/」</strong></p>
<p><img decoding="async" src="/dummy.gif" data-layzr="/assets/2025/11/150x150-slash.png" alt="ファイルの区切り文字「/」（スラッシュ）" width="150" height="150" class="wp-image-7887 size-full aligncenter" /></p>
</div>
</div>
<p>Windowsのバックスラッシュは、環境によって、スラッシュを反転したものか、Yに二重線を重ねた円マークのいずれかで表現されますが、フォントに依存するもので文字コード（区切り文字としては）は同じです。</p>
<p>正しい記号以外は区切り文字として認識されないので、自分が使っているOSの確認や言語の確認をしっかり行ってから、区切り文字を入力するようにしましょう。</p>
<h3>ファイル構造の把握</h3>
<p>相対パスを使う際に起こりやすいのですが、ファイル構造を把握できておらず正しい場所を参照することができないことがあります。</p>
<p>カレントディレクトリと参照元のファイルの絶対パスを見比べることや、エクスプローラーやFinderなどのファイルマネージャーでファイルの構造視覚的に捉えるようにしましょう。</p>
<h3>拡張子の付け忘れ</h3>
<p> 「.txt、.png、.pdf」などの拡張子を忘れてファイル名のみを入力する場合があります。拡張子まで入力しないとファイル名と認識されないのでしっかり入力するようにしましょう。</p>
<h2>おわりに</h2>
<p><img src="/assets/2025/11/atda-eyecatch_pass.jpg" alt="" width="1920" height="1080" class="aligncenter size-full wp-image-7713"> </p>
<p>絶対パス・相対パスについて解説いたしました。</p>]]>
        
    </content>
</entry>

<entry>
    <title>【プログラミング初心者向け】DOMとは？DOMツリーも解説</title>
    <link rel="alternate" type="text/html" href="https://dev.tech-dream.school/archives/category/study/programming/lang/7706/" />
    <id>tag:192.168.15.111,2025://1.210</id>

    <published>2025-11-12T07:20:43Z</published>
    <updated>2026-03-21T04:36:58Z</updated>

    <summary> 	目次 	 	 	 DOMとは  DOM（Document Object Mo...</summary>
    <author>
        <name>MTAdmin</name>
        
    </author>
    
        <category term="archives" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラミング学習" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="学習ブログ" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発言語" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://dev.tech-dream.school/">
        <![CDATA[<div><div class="outline">
	<span class="outline__title">目次</span>
	<input class="outline__toggle" id="outline__toggle" type="checkbox" checked>
	<label class="outline__switch" for="outline__toggle"></label>
	<ul class="outline__list outline__list-2"></ul>
</div></div><h2>DOMとは</h2>
<p> DOM（Document Object Model）は、HTMLやXML文書をプログラムで操作するためのインターフェースです。 簡単に言えば、「HTMLの要素（例: &lt;h1&gt;タグや&lt;p&gt;タグ）をJavaScriptを通じて操作できるようにする仕組み」です。<br>
HTMLとCSSだけでは、基本的に静的なWebページしか作成できません（例外として、hoverエフェクトなどは可能です）。 しかし、JavaScriptを使用することで、動きのあるインタラクティブなWebページを実現でき、その際にDOMの理解が重要になります。 <br>
また、DOMを扱ううえで欠かせない要素として「DOMツリー」という概念があります。 まずは、DOMを使って何ができるのかを簡単に説明した後に、DOMツリーがなぜ必要なのかを具体的に説明します。</p>
<h3>DOMで何ができるのか</h3>
<p> DOMを使うことで、JavaScriptから以下のようなことができます。</p>
<ul>
<li>要素を取得する</li>
<li>内容を変更する</li>
<li>要素を追加する</li>
<li>スタイルを変更する</li>
<li>イベントに反応する</li>
</ul>
<p> 以下は操作するHTMLのサンプルソースです。</p>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-html" data-lang="HTML"><code class=" language-html" data-hcb-clip="1"><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h1</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>main-title<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>main-title<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>ページのタイトル<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h1</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>text<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>文章です。<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>button</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>button<span class="token punctuation">"</span></span><span class="token punctuation">&gt;</span></span>クリックしてみてください<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">&gt;</span></span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;1&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<p> DOMを操作することで、JavaScriptからHTMLの構造・内容・スタイル・動作を自由に制御することができます。 </br>
Webページに動きを加えたり、インタラクティブな機能を持たせたいときには、DOMの理解が欠かせません。 <br>
まずは基本的な取得・変更・追加・イベント処理から少しずつ慣れていきましょう。</p>
<h4>要素を取得する</h4>
<p> まずは、操作したい要素を「取得」する必要があります。</p>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-js" data-lang="JavaScript"><code class=" language-js" data-hcb-clip="2"><span class="token comment">// IDで要素を取得</span>
<span class="token keyword">const</span> mainTitle <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'main-title'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// クラス名で要素を取得</span>
<span class="token keyword">const</span> mainTitle <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">getElementsByClassName</span><span class="token punctuation">(</span><span class="token string">'main-title'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">// CSSセレクタで要素を取得（最も柔軟な方法）</span>
<span class="token keyword">const</span> mainTitle <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'.main-title'</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;2&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<h4>内容を変更する</h4>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-js" data-lang="JavaScript"><code class=" language-js" data-hcb-clip="3"><span class="token comment">// テキストを変更</span>
<span class="token keyword">const</span> text <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'.text'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
text<span class="token punctuation">.</span>textContent <span class="token operator">=</span> <span class="token string">'DOMを操作しました！'</span><span class="token punctuation">;</span>

<span class="token comment">// HTMLを変更（HTMLタグも含める場合）</span>
text<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>innerHTML <span class="token operator">=</span> <span class="token string">'これは&lt;strong&gt;太字&lt;/strong&gt;になります'</span><span class="token punctuation">;</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;3&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<h4>要素を追加する</h4>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-js" data-lang="JavaScript"><code class=" language-js" data-hcb-clip="4"><span class="token comment">//&lt;p&gt;タグを作成</span>
<span class="token keyword">const</span> newPar <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">createElement</span><span class="token punctuation">(</span><span class="token string">'p'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

<span class="token comment">//&lt;p&gt;タグの文章を作成</span>
newPar<span class="token punctuation">.</span>textContent <span class="token operator">=</span> <span class="token string">'JavaScriptで追加した段落です'</span><span class="token punctuation">;</span>

<span class="token comment">// bodyの最後に追加</span>
document<span class="token punctuation">.</span>body<span class="token punctuation">.</span><span class="token function">appendChild</span><span class="token punctuation">(</span>newPar<span class="token punctuation">)</span><span class="token punctuation">;</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;4&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<h4>イベントに反応する</h4>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-js" data-lang="JavaScript"><code class=" language-js" data-hcb-clip="6"><span class="token keyword">const</span> button <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'.button'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
button<span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">'click'</span><span class="token punctuation">,</span> <span class="token keyword def">function</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token function">alert</span><span class="token punctuation">(</span><span class="token string">'ボタンがクリックされました！'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;6&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<h2>DOMツリーとは</h2>
<p> DOMツリーとは、HTMLの要素が互いにどのような関係にあるかを表した「木」のような構造のことです。 </br>
皆さんは家系図や会社の組織図を見たことがありますか？それと同じように、HTML要素同士の「親子関係」や「兄弟関係」を表したものがDOMツリーです。 </br>
例えば、次のような簡単なHTMLがあるとします。</p>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-html" data-lang="HTML"><code class=" language-html" data-hcb-clip="7"><span class="token doctype">&lt;!DOCTYPE html&gt;</span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>html</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>head</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>title</span><span class="token punctuation">&gt;</span></span>はじめてのDOM<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>title</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>head</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>body</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h1</span><span class="token punctuation">&gt;</span></span>こんにちは！<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h1</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">&gt;</span></span>DOMを学んでいます<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>p</span><span class="token punctuation">&gt;</span></span>楽しいですね<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>p</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>body</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>html</span><span class="token punctuation">&gt;</span></span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;7&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<p> このHTMLをDOMツリーで表すと、このようになります：</p>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-plain" data-lang="Plain Text"><code class=" language-plain" data-hcb-clip="8">document
└── html
├── head
│ └── title
│ └── "はじめてのDOM"（テキスト）
└── body
├── h1
│ └── "こんにちは！"（テキスト）
└── div
├── p
│ └── "DOMを学んでいます"（テキスト）
└── p
└── "楽しいですね"（テキスト）<span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;8&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<p> この図を見ると、以下のような関係がわかります。</p>
<ul>
<li>htmlはdocumentの子要素</li>
<li>headとbodyはhtmlの子要素で、互いに兄弟関係</li>
<li>h1とdivはbodyの子要素で、互いに兄弟関係</li>
<li>2つのpタグはdivの子要素で、互いに兄弟関係</li>
</ul>
<h3>なぜDOMツリーが重要なの？</h3>
<p> DOMツリーを理解すると、JavaScriptで要素を取得・操作するときに、どのように「移動」すればよいかがわかります。 </p>
<p>例えば</p>
<div class="hcb_wrap">
<pre class="prism line-numbers  language-js" data-lang="JavaScript"><code class=" language-js" data-hcb-clip="9"><span class="token comment">// 親要素を取得する場合</span>
<span class="token keyword">const</span> div要素 <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'div'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> body要素 <span class="token operator">=</span> div要素<span class="token punctuation">.</span>parentNode<span class="token punctuation">;</span> <span class="token comment">// divの親（body）を取得</span>

<span class="token comment">// 子要素を取得</span>
<span class="token keyword">const</span> div要素 <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'div'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> 最初のp要素 <span class="token operator">=</span> div要素<span class="token punctuation">.</span>firstChild<span class="token punctuation">;</span> <span class="token comment">// divの最初の子を取得</span>
<span class="token keyword">const</span> すべての子要素 <span class="token operator">=</span> div要素<span class="token punctuation">.</span>children<span class="token punctuation">;</span> <span class="token comment">// divのすべての子を取得</span>

<span class="token comment">// 兄弟要素を取得</span>
<span class="token keyword">const</span> h1要素 <span class="token operator">=</span> document<span class="token punctuation">.</span><span class="token function">querySelector</span><span class="token punctuation">(</span><span class="token string">'h1'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> div要素 <span class="token operator">=</span> h1要素<span class="token punctuation">.</span>nextElementSibling<span class="token punctuation">;</span> <span class="token comment">// h1の次の兄弟（div）を取得</span><span aria-hidden="true" class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
<button class="hcb-clipboard" data-clipboard-target="[data-hcb-clip=&quot;9&quot;]" data-clipboard-action="copy" aria-label="コードをクリップボードにコピーする"></button></div>
<p> このように、要素間の「移動」ができるため、特定の要素から関連する要素を簡単に見つけられるのです。</p>
<h3>DOMツリーをイメージするコツ</h3>
<p> DOMツリーを理解するには、HTMLを「入れ子構造」で考えるとわかりやすいです。</p>
<ul>
<li>一番外側の&lt;html&gt;タグが大きな箱</li>
<li>その中に&lt;head&gt;と&lt;body&gt;という箱がある</li>
<li>&lt;body&gt;の中に&lt;h1&gt;と&lt;div&gt;という箱がある</li>
<li>&lt;div&gt;の中に2つの&lt;p&gt;という箱がある</li>
</ul>
<p> この入れ子構造がそのままDOMツリーの親子関係になります。入れ子の同じ階層にある要素同士が「兄弟」です。</p>
<h2>まとめ</h2>
<p> DOMはウェブページをプログラムから操作するための重要な概念です。HTMLが「ページの構造」を定義するのに対し、DOMは「その構造へのアクセス方法」を提供します。 </br>まずシンプルなHTMLを用意して、JavaScriptからいろいろな要素を操作する練習をすることです。<br> 要素の取得、テキストの変更、スタイルの適用など、基本操作をマスターすれば、次第に複雑なウェブアプリケーションも作れるようになります。 <br>DOMは最初は複雑に感じるかもしれませんが、少しずつ実践しながら理解を深めていきましょう。</p>]]>
        
    </content>
</entry>

</feed>
