Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
Programming

/

Back-end

Toby's Spring Boot - Understanding and Principles

This course will help you understand the operating principles of Spring Boot by creating the core functions of Spring Boot yourself, and learn how to learn and use Spring Boot well through this. You can learn various ways to utilize the Spring Framework used by Spring Boot.

(5.0) 365 reviews

6,641 learners

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

Reviews from Early Learners

What you will learn!

  • How Spring Boot Works

  • How to understand and leverage the technologies and configurations provided by Spring Boot

  • Core technologies and usage of Spring Framework

  • How to create your own Spring Boot module

Creating a framework with my own hands
Get the basics of Spring Boot straight! 🌱

Toby's Spring Boot

Spring Boot core features and operating principles

Spring Boot is a tool that helps you develop Spring applications quickly and easily. It allows you to start developing Spring applications very quickly and conveniently, and it handles a lot of the work behind the scenes, almost like magic.

Spring Boot has become the de facto standard for building applications using the Spring Framework. However, without understanding the underlying principles behind its convenience, you'll encounter various limitations and barriers. To grow your application, incorporate more technologies, and adapt to your specific needs, you need to understand how Spring Boot supports Spring development.

Have you ever had these concerns? 🤔

I'm developing an API server or backend service with Spring Boot, but I'm not sure if I understand and use Spring properly .

I'm confused because the system functionality created with Spring Boot has changed after applying a tip I found through the community or search.

I was developing only with the Spring Framework, but then I switched to Spring Boot, and it seems like the Spring utilization methods I knew have become useless .

I don't really understand what the difference is between Spring and Spring Boot, and what Spring Boot is all about .

I want to add a new technology to Spring Boot or change how it is used , but I am not sure how to do it correctly.

I want to create my own technology or feature module that can be applied automatically like Spring Boot.

In this course, you'll learn the core operating principles of Spring Boot, essential for learning and utilizing it effectively. You'll be able to fully understand and utilize Spring Boot through the following three steps.

1) Understand how Spring Boot works

Understanding how Spring Boot works will help you learn and apply new technologies quickly and accurately, as you'll gain a consistent approach across its many technologies. This will eliminate the need to resort to searching for fragmented solutions every time. By mastering the consistent approach and application methods used across various Spring Boot technologies, you'll be able to accurately analyze problems and find solutions.

2) Building Spring Boot with my own hands

The best way to understand how Spring Boot works is to build one yourself. Spring Boot is also an excellent example for learning how to use the Spring Framework. By building one yourself, you can reflect on the origins of Spring Boot, its goals, and how the Spring Framework was developed. By building simple yet essential code yourself, you can gain a wealth of knowledge about Spring and backend Java development. By learning how Spring Boot was built, you can create your own Spring Boot modules or even create convenient tools that apply Spring technology.

3) Understand how Spring Boot leverages the Spring Framework.

Understanding how Spring Boot works will help you understand how it leverages the Spring Framework. You'll also be able to delve deeper into the various features of Spring Boot.

  • You can directly apply the Spring Framework's usage to application development.
  • You will be able to handle the Spring Framework well, like Spring Boot.
  • I can also modularize the code I created in Spring Boot style for convenient reuse.

I recommend this to these people 🙋

Anyone who uses Spring Boot in practice

Those who want to know and utilize Spring and Spring Boot better

For those considering switching from Spring to Spring Boot

Those who want to learn Spring Boot more effectively

Join Spring Guru, Toby! 🤗

  • If you have basic knowledge of the Java language and experience creating a Hello World-level server with Spring Boot, you can get started.
  • We'll explain in detail the Java web development technologies that appear at each stage of development, the core principles of the Spring Framework, and how to use Spring technology.
  • We'll help you analyze Spring Boot's configuration and use it correctly by creating code that embodies the core operating principles of Spring Boot.
  • You will get to know the Spring Framework better.

What you'll learn 📚

1. Taking a look at Spring Boot

We'll explore the reasons for Spring Boot's creation, its features, and its goals. We'll explain what it means for Spring Boot to be containerless, what it means to be opinionated, and why understanding Spring Boot is crucial. We'll also delve into the potentially confusing concept of containers.

2. Standalone applications

Let's explore how standalone applications, a key feature of Spring Boot, are possible by creating standalone servlet applications and standalone Spring applications. Through this, we'll also learn how Spring web technology is built and how the Spring container is used in the process.

3. Dependency Injection

When talking about Spring, you can't leave out DI. We'll explore the concept of DI, how Spring supports it, and how it applies to testing. We'll use the Spring container to apply DI to our code. We'll also explore decorators and proxy implementations using DI.






4. Auto-configuration-based applications

This course explores the types of Spring configuration metadata and explains how Spring Boot handles them. It explores the auto-configuration introduced by Spring Boot and the user configuration created by developers. This course will help you understand the structure of applications developed with Spring Boot. Through actual development, you'll demonstrate how Spring Boot's auto-configuration leverages various Spring technologies. You'll also learn how to utilize various Spring annotations utilized by Spring Boot.

5. Conditional automatic configuration

We'll explore how Spring Boot leverages Spring's @Conditional conditional bean registration technology for auto-configuration. You'll experience firsthand how application configuration information changes by varying conditions. We'll also explore how directly adding bean configurations to Spring Boot affects auto-configuration.




6. Automatic configuration using external settings

Spring Boot's convenient auto-configuration doesn't limit development in a rigid, one-sided way. We'll explore how to leverage external configuration to easily and flexibly customize the technologies Spring Boot provides through hands-on implementation. We'll also explore Spring's Environment abstraction, property source precedence, and the use of placeholders. We'll also explore how the numerous properties listed in application.properties are linked to auto-configured beans and how they are grouped.

7. Spring JDBC Auto-Configuration Development

You'll design and implement autoconfiguration for Spring JDBC technology yourself. This will teach you strategies for understanding the structure of autoconfiguration applied in Spring Boot. You'll learn how to design with multiple options, similar to Spring Boot, and experience how autoconfiguration applies appropriate features based on conditions, all while creating actual code.



8. A Closer Look at Spring Boot

You'll see that even if you convert the Spring Boot-like code you've been developing directly to Spring Boot, your application code will still behave the same. Now, you'll have a clearer picture of what's happening underneath the surface when developing with Spring Boot. You'll learn how to analyze Spring Boot's extensive auto-configuration without getting overwhelmed. You'll also analyze the auto-configuration code found in Spring Boot Core, Spring Web, and JDBC.


Things to note before taking the course 📢

Practice environment

  • Operating System and Version (OS) : You will need a desktop operating system that supports Java technology, such as Windows, Mac, or Linux.
  • Tools to use: You will need to install JDK 11 version and an IDE, which is a development environment that allows you to develop and run Java projects.
    • The course uses IntelliJ IDEA Ultimate version.
    • You can use the free IntelliJ IDEA Community version or STS (SpringSource Tool Suite).

Learning Materials

  • You can access example code on GitHub. Each lesson step is committed, so you can check out and explore any section you want.
  • You can download the 130-page slides used in the lecture as a PDF file.
  • Lecture notes, including brief explanations of the content covered in each class and reference materials, are provided in PDF format for each section. These notes may be continuously updated.

Player Knowledge and Precautions

  • You need sufficient knowledge of the Java language to understand code written in it. Familiarize yourself with Java 5 annotations, anonymous classes, and Java 8 lambda expressions and streams .
  • If you're curious about the overall flow, you can watch the entire video without following the examples. Afterward, I recommend going back and following the examples step by step, improving or adapting the code yourself.
  • We will update the video with information on how to upgrade the example to Spring Boot 3.0.
  • If there is any part that needs further explanation, related videos will also be added.

Expected Questions Q&A 💬

Q. Why do I need to understand how Spring Boot works?

You don't need to understand the workings of every technology you use, but understanding how Spring Boot works will help you use it more effectively. Spring Boot handles many tasks automatically and behind the scenes, so understanding this will allow you to leverage its features without missing anything. You can also extend it to perform the tasks your application requires. Learning how to utilize the Spring Framework embedded in Spring Boot will also help you develop Spring-based applications.

Q. I don't know much about the Spring Framework. Can I still take the course?

This course introduces the Spring Framework technology used by Spring Boot and also explains core Spring concepts. It covers the Spring container's operation, dependency injection, and applicable design patterns. Of course, after completing this course, it's recommended to delve deeper into the Spring Framework's technology and operating principles if you're interested.

Q. The course uses Spring Boot 2.7. Will it be helpful when using the recently released 3.0?

All examples presented in this lecture will work with Spring Boot 3.0, with only minor changes to the library version and some package names. The lecture also covers how to migrate examples to Spring Boot 3.0.


Introducing the Knowledge Sharer ✒️

History

  • I have 30 years of experience in practical development and 20 years of experience in Spring Framework development.
  • We have developed various systems and services in the manufacturing, logistics, finance, mobile communications, commerce, education, and service domains.
  • Author of Toby's Spring 3.0 and 3.1 books.
  • I founded the Korean Spring User Group (KSUG) and have been active in the developer community for a long time.

Recommended for
these people

Who is this course right for?

  • For those who want to better understand Spring Boot and use it freely

  • If you are using Spring Boot but feel like you don't know much about Spring,

  • Anyone who wants to learn Spring Boot effectively

  • Anyone who wants to create and use their own Spring Boot module

Need to know before starting?

  • Java language (Java 8+)

Hello
This is

13,561

Learners

736

Reviews

341

Answers

5.0

Rating

7

Courses

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

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

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

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

 

 

Curriculum

All

68 lectures ∙ (11hr 6min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

365 reviews

5.0

365 reviews

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

    Reviews 2

    Average Rating 5.0

    5

    96% enrolled

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

    • 토비
      Instructor

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

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

    Reviews 2

    Average Rating 5.0

    5

    100% enrolled

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

    • 토비
      Instructor

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

  • OMG님의 프로필 이미지
    OMG

    Reviews 205

    Average Rating 5.0

    5

    100% enrolled

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

    • 토비
      Instructor

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

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

    Reviews 3

    Average Rating 3.3

    5

    100% enrolled

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

    • 토비
      Instructor

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

  • soono991님의 프로필 이미지
    soono991

    Reviews 66

    Average Rating 5.0

    5

    100% enrolled

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

    • 토비
      Instructor

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

$77.00

tobyilee's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!