강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Back-end

トビーのスプリングブート - 理解と原理

スプリングブートの重要な機能を直接作成しながら、スプリングブートの動作原理を理解し、これを通じてスプリングブートをよく学習して使用する方法を学ぶ講義です。スプリングブートが使用するスプリングフレームワークのさまざまな使用法を学ぶことができます。

  • tobyilee
토비의스프링
Spring Boot
Spring
spring-jdbc

学習した受講者のレビュー

こんなことが学べます

  • スプリングブートの動作原理

  • Spring Bootが提供する技術と構成を特定して活用する方法

  • Spring Frameworkの核心技術と活用法

  • 独自のスプリングブートモジュールを作成する方法

私の手でフレームワークを作成しながら
スプリングブートの根本を確実に! 🌱

トビーのスプリングブート

Spring Bootのコア機能と動作原理

Spring Bootは、Springアプリケーションを迅速かつ快適に開発するのに役立つツールです。非常に迅速かつ便利にSpringアプリケーションの開発を始めることができるので、魔法のように見えないところで多くの部分を処理してくれます。

Spring Bootは、Springフレームワークを使用するアプリケーションを作成するために使用する事実上の標準になりました。しかし、その利便性の後ろに隠れた動作原理を知らないと、さまざまな限界と障壁に出会うことになります。アプリケーションが成長し、より多くのスキルを適用し、状況に合わせて適用するには、Spring BootがSpring開発をどのようにサポートしているかを知る必要があります。

もしかしたら、こんな悩みましたか? 🤔

スプリングブートでAPIサーバーやバックエンドサービスを開発していますが、スプリングをちゃんと知って使っているのかわかりません。

コミュニティや検索で知ったヒントを適用したところ、スプリングブートで作ったシステム機能が変わって困惑しています。

スプリングフレームワークだけで開発してスプリングブートに移ってきましたが、私が知っていたスプリングの活用方法が無用物になったようです

スプリングとスプリングブートは何が違うのか、スプリングブートが一体何なのか分かりません。

スプリングブートに新しい技術を追加したり、使い方を変えたいのですが、どうするのが合うのか悩みます。

スプリングブートのように自動的に適用できる独自の技術や機能モジュールを作ってみたいです。

このレッスンでは、スプリングブートを効果的に学習して活用するために必要なスプリングブートの重要な動作原理を学びます。あなたは以下の3つのステップでスプリングブートを正しく理解し活用することができます。

1) スプリングブートの動作原理を理解する

スプリングブートの動作原理を知ると、スプリングブートの多くの技術に適用される一貫した方法がわかり、新しい技術パーツを導入する際に素早く学習し、正確に応用できるようになります。毎回検索に依存して、断片的な解決策を見つける手間をかけなくてもいいです。スプリングブートにさまざまな技術が適用された一貫した方法とアプリケーションを習得することで、問題を正確に分析して解決策を見つけることができます。

2)私の手でスプリングブートを作る

Spring Bootの動作原理を知るための最善の方法は、Spring Bootを直接作成することです。 Spring Bootは、Springフレームワークの使い方を学ぶための優れた例でもあります。自分で作ってみながら、スプリングブートの誕生の背景と追求する目標、そしてスプリングフレームワークがどのように利用されて作られたのかなどを考えてみることができます。シンプルだが、コアを詰め込んだコードで直接作成する過程で、スプリングとバックエンドのJava開発の様々な知識を得ることができます。スプリングブートの作成方法を習得したら、独自のスプリングブートモジュールを作成したり、スプリング技術を応用した便利なツールも作成できます。

3) スプリングブートがスプリングフレームワークを利用する方法を理解する

スプリングブートの動作原理を理解すると、スプリングブートがスプリングフレームワークをどのように活用するかがわかります。また、スプリングブートの各種機能についてさらに詳しく見て把握することができます。

  • Spring Frameworkの活用法をアプリケーション開発に直接応用できます。
  • スプリングブートのように、スプリングフレームワークをうまく扱うことができます。
  • Spring Bootスタイルで私が作ったコードをモジュール化して便利に再利用することもできます。

こんな方におすすめですよ🙋

スプリングブートを実務で使用している方

スプリングとスプリングブートをよりよく知って活用したい方

スプリングからスプリングブートへの切り替えを心配している方

Spring Bootをより効果的に学びたい人

スプリンググル(Guru)、トビさんと一緒にいます! 🤗

  • Java言語の基礎知識と、Spring BootでHello Worldレベルのサーバーを作成した経験だけであれば十分に始めることができます。
  • 開発段階ごとに登場するJava Web開発技術、スプリングフレームワークの核心原理、スプリング技術の使い方などを詳しく説明します。
  • スプリングブートのコア動作原理が含まれたコードを直接作成しながら、スプリングブートの構成を分析し、正確に使用できるようにお手伝いします。
  • 私はSpringフレームワークをよりよく知ります。

学習内容📚

1. スプリングブートを見る

スプリングブートが作成された理由、特徴、目標を調べます。スプリングブートがコンテナレスとは何を言うのか、自己主張が強いということは、何が意味するのかを説明し、スプリングブートを理解しなければならない理由を説明します。混乱しやすいコンテナという概念も詳しく扱います。

2. スタンドアロン型アプリケーション

スプリングブートの特徴の1つであるスタンドアロンアプリケーションは、どのように可能かを直接スタンドアロンサーブレットアプリケーション、スタンドアロンスプリングアプリケーションを作成しながら説明します。これにより、Spring Webテクノロジがどのように作成されたか、その過程でSpringコンテナがどのように使用されるかがわかります。

3. Dependency Injection

スプリングするとDIを外せません。 DIの概念とSpringがどのようにDIをサポートするか、テストにどのように適用されるかを調べます。作成しているコードにDIを適用できるようにSpringコンテナを使用します。 DIを使用したデコレータとプロキシの適用についても説明します。






4. 自動構成ベースのアプリケーション

Springの設定情報の種類を調べて、Spring Bootでこれをどのように扱うかについて説明します。 Spring Bootが導入した自動設定(auto configuration)と開発者が作成するユーザ設定(user configuration)について説明します。 Spring Bootで開発したアプリケーションの構造を理解できるようになります。スプリングブートの自動構成がスプリングのさまざまな技術を利用してどのように作られたかを実際の開発を通じて確認することができます。スプリングブートが活用する様々なスプリングアノテーション活用法も習得されます。

5. 条件付き自動構成

Springの@Conditional条件付きBean登録技術をSpring Bootが自動設定にどのように活用しているかを見てください。さまざまな条件を変えることで、アプリケーション構成情報が異なることを直接体験できます。 Spring Bootに直接空の設定を置いたときに自動設定にどのような影響を与えるかを学びます。




6. 外部設定を活用する自動構成

スプリングブートの便利な自動構成は、開発をあまりにも硬く、一方的な方法で制限するわけではありません。 Spring Bootが提供するスキルを簡単かつ柔軟にカスタマイズするための外部設定の活用法を直接実装します。 SpringのEnvironment抽象化とプロパティソースの適用優先順位、置換子の使い方についても学びます。 application.propertiesにリストされている多数のプロパティが、自動設定Beanにどのように関連付けられているか、どのユニットにグループ化されているのかがわかります。

7. Spring JDBC自動構成の開発

Spring JDBCテクノロジの自動構成を直接設計して実装します。これにより、Spring Bootに適用された自動構成の構造を特定するための戦略を学ぶことができます。スプリングブートのようにいくつかの選択肢を置いて設計する方法、そして条件に応じて適切な機能が自動構成を通じて適用されることを実際のコードを作成しながら体験できます。



8. Spring Boot 詳細を見る

これまで自分で作成したSpring Bootに似たコードをSpring Bootに切り替えても、アプリケーションコードが同じように動作することを確認します。これで、Spring Bootで開発するとき、その下で何が起こるのかが頭の中に描かれるようになります。スプリングブートが提供する膨大な自動構成に置かず、次々と分析する方法を学びます。そして、Spring Boot CoreとSpring Web、JDBCに登場する自動設定コードを分析します。


受講前の注意事項📢

練習環境

  • オペレーティングシステムとバージョン(OS) :Windows、Mac、LinuxなどのJavaテクノロジを使用できるデスクトップオペレーティングシステムが必要です。
  • 使用ツール: JDK 11バージョンをインストールしてJavaプロジェクトを開発、実行できる開発環境であるIDEが必要です。
    • 講義では、IntelliJ IDEA Ultimateバージョンを使用します。
    • 無料で利用できる IntelliJ IDEA Community バージョンや STS (SpringSource Tool Suite) を使用することもできます。

学習資料

  • FitHubからサンプルコードを受け取ることができます。各レッスンステップごとにコミットされているので、好きな部分をチェックアウトして見ることができます。
  • 講義に使用するスライドを130ページ分のスライドをPDFファイルにダウンロードできます。
  • 各授業で説明する内容の簡単な説明や参考資料などをまとめた講義ノートをセクションごとにPDF形式で提供します。これは引き続き更新できます。

選手の知識と注意

  • Java言語で書かれたコードを理解するのに十分な言語知識が必要です。 Java5のアノテーションや、匿名クラス、Java8のラムダ式とストリームの使い方をよく理解してください。
  • 全体の流れが気になったら、一例に従わずに映像をすべて視聴してもいいです。その後、再び次々と例に従い、自分でコードを改善したり応用してみることをお勧めします。
  • Spring Boot 3.0でサンプルをアップグレードする方法のビデオを更新する予定です。
  • 追加の説明が必要な部分がある場合は、関連するビデオも追加されます。

予想される質問 Q&A 💬

Q.なぜSpring Bootの動作原理を理解する必要がありますか?

使用するすべての技術の動作原理を知る必要はありません。ちなみに、スプリングブートは動作原理を知ったら、よりよく使用できます。スプリングブートが多くの作業を目に見えないように自動的に処理します。また、これを拡張してアプリケーションで必要な作業を行うことができます。スプリングブートに含まれるスプリングフレームワークの活用方法を習得することも、スプリングベースのアプリケーションを開発するのに役立ちます。

Q. スプリングフレームワークがよく分からないのに講義を聞くことができますか?

Spring Bootが使用するSpringフレームワークの技術を紹介しながら、Springの重要な概念も説明します。スプリングコンテナの動作方法やDI、適用できるデザインパターンまで取り上げます。もちろん、この講義を見てから、関心のあるスプリングフレームワークを技術や動作原理をさらに深く勉強することをお勧めします。

Q.レッスンでは、Spring Boot 2.7を使用していますが、最近リリースされた3.0を使用するのにも役立ちますか?

レッスンのすべての例は、ライブラリのバージョンといくつかの変更されたパッケージ名のみを変更すると、Spring Boot 3.0でも動作します。 Spring Boot 3.0から例を移行する方法もレッスンで説明します。


知識共有者の紹介✒️

履歴

  • 実務開発30年、スプリングフレームワーク開発経歴20年の経験を持っています。
  • 製造、物流、金融、移動通信、コマース、教育、サービスドメインで様々なシステムとサービスを開発してきました。
  • TobyのSpring 3.0と3.1の本を書いた。
  • 韓国スプリングユーザー会(KSUG)を設立し、開発者コミュニティで長期間活動してきました。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • スプリングブートをよりよく理解し、自由に活用したい方

  • スプリングブートを使用していますが、スプリングについてはわからないと感じる方

  • Spring Bootを効果的に学びたい人

  • 自分だけのスプリングブートモジュールを作って使いたい方

前提知識、
必要でしょうか?

  • Java言語(Java 8+)

こんにちは
です。

13,642

受講生

748

受講レビュー

343

回答

5.0

講座評価

7

講座

호주에 살고 있는 소프트웨어 개발자입니다. 30년간 다양한 분야의 시스템과 서비스를 개발해본 경험이 있습니다. 

스프링 프레임워크와 관련 기술을 좋아하고 JVM 기반 언어를 주로 사용합니다.

한국스프링사용자모임(KSUG)을 설립하고 활동했고, 토비의 스프링이라는 책을 쓰기도 했습니다.

개발과 관련된 다양한 주제에 관해 이야기하는 것을 좋아합니다. 

 

 

カリキュラム

全体

68件 ∙ (11時間 6分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

367件

5.0

367件の受講レビュー

  • 오길환님의 프로필 이미지
    오길환

    受講レビュー 2

    平均評価 5.0

    5

    96% 受講後に作成

    안녕하세요. 저는 만 7년 이상 스프링 실무경력을 가지고 있는 개발자입니다. 강의 수강 후 느낀 결론부터 이야기하면, 토비의 스프링 책과 마찬가지로 많은 개발자가 이 강의를 보셨으면 하는 바람입니다. 스프링을 공부하면서 토비의 스프링을 접하게 되었고 자연스레 토비님도 알게 되었습니다. 토비의 스프링 책을 읽으려고 하면 주변 개발자들은 "토비의 스프링은 나중에 경력이 생기면 읽어라" 라는 이야기를 했습니다. 당연히 주변 선임 개발자들이 그렇게 이야기하는 이유가 있을 거로 생각했고 결국 토비님의 책을 늦게 읽었습니다. 어느 책에서든 설명하는 기술적인 내용뿐 아니라, 개발하며 개발자가 문제를 직면했을 때 해결해 나가는 인사이트를 받았고, 책을 다 완독하고 나서 '내가 조금 더 일찍 책을 읽었으면 더 좋은 개발자로 성장할 수 있지 않았을까?'라는 아쉬움이 남았습니다. 토비의 스프링 부트도 책과 마찬가지로 기술적인 부분도 다루지만, 웹의 기본 원리도 강의에 포함되면서 초보자들의 진입장벽을 낮췄고, 정말 강의 구성을 섬세하게 하셨다는 생각이 들었습니다. 문제를 제시하고, 그 문제를 해결하고 리팩터링 하면서 테스트 코드를 통해 문제가 없는 것을 확인해주는 과정이 너무 인상 깊었고, 강의 중에 궁금한 점이 생길때 즈음 CCTV로 저를 보고있으신가..? 싶을 정도로 딱 그 궁금한 점을 풀어주시는 부분, 나만의 스프링 부트를 만들어 나가면서 조금씩 '나만의'를 제거하며 스프링 부트로 변환해 가는 과정이 신기했습니다. "나만의"가 사라지면 사라질 수록 스프링 부트는 내 것이 되는 게 아닌가 싶었습니다. 마지막으로 개발하면서 문제를 직면했을 때 동작을 확인하기 위해 Bean들간의 의존성이 어떻게 엮여있는지 파악 후 로직 확인을 하며 약간의 딥다이브를 하게 됩니다. 이때 의존성을 알기 위해서 Break-Point를 걸어서 확인하는데, 그 방법이 아니라 어떤 Bean이 올라왔는지 확인할 수 있도록 알려주셔서 다른 개발자들 또한 딥다이브를 쉽게 할 수 있는 방법을 알려주신 것 같습니다. 토비의 스프링을 읽고 나서 다음 책은 언제 나올지 항상 궁금했었는데, 강의를 통해 토비님을 뵙게 되어서 너무 좋았습니다! 좋은 목소리와 목소리 톤 그리고 쉽게 흡수될 수 있도록 하는 섬세한 설명이 정말 최고였습니다. 주변 초보 개발자분들께도 강의를 추천하며 다음 강의도 정말 기대하겠습니다! 감사합니다 :D

    • 토비
      知識共有者

      상세한 수강평 감사합니다.

  • 에반황님의 프로필 이미지
    에반황

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

    스프링을 스프링 부트로 처음 접한 현직자입니다. 스프링 부트를 도구로서 사용하는 데는 문제가 없었습니다. 하지만 항상 스프링 부트가 왜 나왔는지, 어떻게 발전되어왔는지에 대한 가려움이 있었죠. 이 강의는 그 간지러운 부분들을 아주 속속들이 긁어주는 명강의입니다. 가려운 부분을 정말 쉽게 긁어주신 토비님 정말 감사합니다. 👍 (MyXXX 어노테이션들이 스프링 부트의 어노테이션들로 변경되는 부분은 정말 소름이 돋았습니다. 🥶)

    • 토비
      知識共有者

      평소 가지셨던 궁금증이 잘 풀리고, 부트를 사용하는데 도움이 되었다니 제가 기분이 좋습니다. 부트처럼 문제를 풀어내는 방법을 이해하게 되셨으니 이를 또 잘 응용하실 수 있다면 더욱 좋겠습니다. 감사합니다.

  • OMG님의 프로필 이미지
    OMG

    受講レビュー 205

    平均評価 5.0

    5

    100% 受講後に作成

    강의가 나오기 까지 많은 시간이 걸린 것으로 알고있습니다. 첫 강의의 스타트를 끊었으니 앞으로도 좋은 강의 부탁드립니다 :)

    • 토비
      知識共有者

      그동안 주변 개발자들, 동료들하고만 나누었던 많은 이야기들을 강의 형식으로 더 넓게 공유해보고 싶은 마음이 있습니다. 기대해주세요. 감사합니다.

  • Taewook Kim님의 프로필 이미지
    Taewook Kim

    受講レビュー 3

    平均評価 3.3

    5

    100% 受講後に作成

    스프링 부트에서 마법처럼 편하게 해주는 것들이 실제로 어떻게 되는것인지에 대해서 직접 만들어가면서 이해할수있는 좋은 시간이었고, 그 과정에 진행하는 학습테스트가 너무 좋았던거같습니다. 개인적으로는 전체적으로 스프링 부트 핵심 원리와 개념을 익히는 것도 좋았지만, 1. 간단히 해결할 수 있는 방법으로 만들고는 조금 더 나은 방식으로 리팩터링 2. 리팩터링 하고는 테스트를 통해 이전과 이후가 같은 결과를 보이는가 확인 3. 처음에는 직접 실행시켜가며 결과 확인 했지만, 복잡해지고 반복됨에 따라 자동화된 테스트로 변경 이런 진행방식이 더 흥미로웠고, 많이 배웠습니다. 다음 강의도 기다리고있겠습니다! :)

    • 토비
      知識共有者

      실전에서도 이와 같은 방식으로 차근차근 문제를 풀어나가시면 좋겠습니다. 과연 그런가 의심이 들면 테스트를 작성해보세요. 감사합니다.

  • soono991님의 프로필 이미지
    soono991

    受講レビュー 66

    平均評価 5.0

    5

    100% 受講後に作成

    좋은 강의 감사합니다. 스프링 부트가 제공하는 편리함에 익숙해져 실제 동작 원리나 개념에 대해서 소홀히 하게 되었는데, 토비님 덕분에 제 부족함을 채울 수 있었고 또 좋은 자극이 되었던 것 같습니다. 감사합니다. 스프링 6도 기다리고 있겠습니다

    • 토비
      知識共有者

      스프링 부트가 동작하는 원리를 이해하면 부트가 제공하는 편리함을 더 누릴 수 있더라고요. 다음 스프링 강의도 열심히 준비해보겠습니다. 감사합니다.

¥11,714

tobyileeの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!