演習の目的と、これから作るアプリについて
この演習の目的
この演習の目的は、学んだ Spring の知識を「実際に動くアプリ」として形にすることである。 理論を読むだけでは掴みにくい「動作の流れ」や「仕組みの必要性」を、手を動かすことで体得していく。
プログラミングの習得では、文法の理解よりも実際に書いて試すことが重要である。 実際の開発現場でも、理解してから実践する のではなく、実践しながら理解していく ことのほうが多い。
「解説を読んでもピンとこなかったが、実際に手を動かしたら理解できた」 ― その体験を意図的に作り出すのが、このハンズオンの狙いである。
この演習を一度最後までやりきったあとは、何度も繰り返し挑戦してほしい。 たとえば「見ないでどこまで作れるか」をタイムアタック形式で試すのも良い練習になる。 反復することで、アプリ開発の流れが自然と身体に染み込み、コードを書くスピードも確実に上がっていく。
この章を最初から最後まで完走すれば、次のような EC サイトが完成する。
これから作るアプリの概要
| 項目 | 内容 |
|---|---|
| アプリ名 | Spring EC ショップ |
| 開発環境 | Spring Boot / Thymeleaf / MyBatis / PostgreSQL |
| 目的 | Web アプリの基本構成(MVC・DB・セッション・認証)を一通り体験する |
| 主な機能 | - 商品一覧・詳細の表示 - カートへの追加・削除(セッション管理) - 会員登録とログイン(HttpSession による認証) - 注文確認・完了ページ表示 |
| データ構成 | users(会員) / products(商品) / orders(注文) / order_items(注文詳細) |
| 想定シナリオ | ① ユーザーがログインする ② 商品一覧から商品を選ぶ ③ カートに追加する ④ 注文を確定する |
| ゴール | Web アプリの基本構造と Spring の仕組みを理解し、自ら機能を拡張できるようになること |
なぜ EC サイトなのか
EC サイトは、Web アプリの基本的な仕組みをすべて含む題材である。 たとえば次のような学習要素を自然に体験できる。
- 商品一覧表示 → Controller と View の連携(MVC)
- ユーザー登録 → リクエストとバリデーション
- カート → セッションの扱い(HttpSession)
- ログイン → 認証とセッション管理
- 購入処理 → データベースとの連携(MyBatis)
EC サイトというテーマは、学習効果が高く、かつイメージしやすい。 日常で馴染みのある仕組みを作ることで、Web 開発の全体像を直感的に理解できる。
学習の進め方
このハンズオンでは、解説よりも実装を優先する。 まずはコードを書いて動かし、動作の裏にある仕組みを後から理解する、という流れで進める。
各ステップで扱う Spring の機能は、対応する解説章(例:「コントローラとルーティング」 「バリデーション」など)に詳細が記載されている。 必要に応じて該当章を参照しながら進めるとよい。
デザインは最低限にとどめる
このハンズオンでは、アプリの見た目(デザイン)にはこだわらない。 目的はあくまで「Spring と Thymeleaf の仕組みを理解すること」であり、 HTML や CSS の細かい装飾を学ぶことではない。
実際のWebアプリ開発では、デザインやスタイル指定は重要な要素である。 しかし、初学者の段階では、HTML に複雑な装飾コードが多いと、 データの流れや処理の意味といった本質的な部分に意識を向けにくくなる。 そのため、この演習では見た目の装飾を最小限にし、 Spring の仕組みや Thymeleaf でのデータの扱い方に集中できる構成としている。
この演習では、画面の構成をシンプルに保ち、次の点を重視している。
- コードを見たときに、どこで何をしているのかが明確に分かること
- MVC間のデータの流れ に集中できること
- 学習の本質と無関係なコードをできるだけ含めないこと
そのため、HTML はあえて最小限の構造で記述している。 レイアウトや色の調整は、すべての機能を実装し終えてから自由に追加してよい。
最終的にデザインを整えるのは悪いことではない。 むしろ、全機能を動かせるようになったあとに自分の手で見た目を改良していくのは、 「仕組みを理解した上での応用練習」として非常に良い経験になる。
まずは見た目ではなく、アプリの動作とデータの流れに集中して取り組もう。
練習問題について
各章の最後には、機能改修 や 機能追加 に挑戦するための練習問題を用意している。 これらは、章で作成したコードをもとに、より実践的な課題へ発展させることを目的としている。
練習問題では、あえて細かな手順は提示していない。 どんなコードを追加し、どのファイルを修正すべきかを自分で考えることも、プログラマとして欠かせないスキルである。
初学者のうちは、エラーが多発し、1つの不具合を直すのに長時間かかることもある。 しかし、その「悩み、調べ、修正する」過程こそが、最も効果的な学習時間である。 実務でも、問題を自力で切り分け、解決に導く力が最も求められる。
また、練習問題はすべてスキップ可能である。 「とにかく手を動かして慣れたい」 「まずは全体像を掴みたい」という段階であれば、章末課題を飛ばして進めても構わない。 ハンズオン自体は、練習問題を解かなくても成立するよう設計している。
理解が深まった後に戻って取り組めば、より多くの発見が得られるはずだ。
次の章では、Spring Boot のプロジェクトを作成し、ブラウザでの起動確認を行う。