강의

멘토링

커뮤니티

NEW
Programming

/

Web Development

[Java Advanced Practical Project] Spring Core + H2 Based Food Truck Kiosk System Development

A Java advanced project course for beginner developers who want to develop practical skills! We'll build a console-based kiosk ordering system together using Spring Core, JdbcClient, and H2 DB.

10 learners are taking this course

  • Kevin
Java
Spring Boot
DDD
h2db
spring-framework

What you will learn!

  • Methods for Analyzing Requirements and Structuring Them by Functional Units

  • A method of separating console UI from customer/administrator perspectives and dividing functionality in a domain-centric manner

  • The ability to think about designing complex applications in domain units

  • Practical Application of Domain-Driven Design

  • Hands-on experience integrating DB with JdbcClient in Spring Core environment

  • Ability to implement a console-based order/sales system that operates like a real service

  • The ability to compose logic that controls state changes and flow beyond basic CRUD operations

  • Distinguishing the roles of classes and records

  • Practical Applications of Object Equality/Identity Comparison Using equals()

  • Template/Callback Pattern-Based Commonalization Technique

[Java Advanced Practical Project] Spring Core + H2 Based Food Truck Kiosk System Development

"Build practical implementation skills with an order system project using Java and Spring Core!"


This course is a hands-on project course where you'll directly implement a console-based food truck kiosk application.
It's prepared for beginners with Java fundamentals or those who have studied Spring a bit but lack confidence in implementing actual applications.
Building on the foundational project experience from Part 1, this time you'll use Spring Core, JdbcClient, and H2 database to implement a more complex ordering system step by step.

In this course, you can directly implement this realistic food truck kiosk ordering flow using Java and Spring Core.

⭐Why should you know the order domain?

'Order' domain is an essential core feature that cannot be omitted
in most practical applications such as commerce, delivery apps, reservation systems, kiosks, and POS systems.


Beyond simply "adding products to cart and making payment," all of the following complex business logic is contained within this.

  • Separating User/Administrator Perspective Flows

  • Shopping Cart → Payment → Order Status Change → Shipping/Order Processing Complete

  • Handling state transitions such as order modifications, cancellations, and returns

  • Payment Integration and Response Flow Management

  • Order History and Statistics Processing

The experience of directly designing and implementing this 'order flow'
serves as an important stepping stone to grow into a developer who can create "real applications" rather than simple CRUD operations.


Through this course, master 'the fundamentals of the order domain'.

I'm confident this will give you wings to become a Java developer.

🧱 Course Features

  • Project-Based Hands-On Practice:
    Rather than simple follow-along exercises, this is a hands-on practice-centered structure where students first think through and implement solutions based on given requirements.

  • Pre-learning → Direct Implementation → Implementation Explanation approach:
    When specific technologies are needed in the course, we first cover the concepts in separate lessons,
    then students implement first, followed by comparative learning with the instructor's code version and explanations.

  • Practice-Oriented Design:
    Structured to provide experience through the entire process from requirements analysis to structuring, implementation, and testing, following real-world workflows.

✨ Growth Points After Taking the Course

  • Gaining experience in implementing domain-driven applications that enhance thinking skills using Java + Spring Core

  • Gaining practical backend skills through improved implementation/design abilities

  • Strengthening foundational skills for web application development

  • Not just simple grammar, but gaining confidence that you can create actual programs

👀[Highlight Video Preview] From Design to Implementation

🎬 'Requirements Analysis Phase' Highlight Video


🎬 'Application Design Phase' Highlight Video

🎬 'Setting Up Basic Structure by Layer' Highlight Video

🎬 'Guest Mode Layer-by-Layer Logic Implementation' Highlight Video

🎬 'Code Refactoring' Highlight Video

🧰 Tech Stack Used

  • Java 17+

  • Spring Framework Core

  • Spring JdbcClient

  • H2 In-Memory Database

  • JUnit Testing Framework

  • Domain-Driven Design (DDD) Based Design

  • Layered Architecture Structure

👨‍🏫 We recommend this for people like this

  • Those who know Java syntax but lack confidence in implementing real-world projects

  • Those who have learned Spring Core but lack experience in direct application

  • People who want to create actual working console-based applications

  • Those who want to build a solid foundation as a Java backend developer

  • Those who have taken Part 1 lectures and want to implement more complex systems

❤️ The Instructor's Sincerity

This course is prepared to move beyond simply 'following along with code' and provide you with the experience of completing your own application by directly designing and implementing an application.

No matter how good a technology is, if I can't think about it myself and utilize it, I think it's like 'watching a spectacular fireworks display in a daze, unable to express that moving feeling outwardly'.


Rather than just staring at code, I'll help you all the way so that this can be your first step toward becoming 'someone who can write code on their own' in real-world situations.

Don't give up on your dream of becoming a Java developer, and I hope you'll do your best until the end to successfully enter the field as a developer!

✅ Do you have any questions?

Q. I haven't taken the Part 1 course - is it okay to just take this course?

It's possible.

However, since this course includes more complex structures and technologies than Part 1,
if you don't have experience with basic console application implementation flow and requirements analysis, we recommend taking Part 1 first before proceeding.

Q. I'm hearing about JdbcClient for the first time - isn't it difficult?
JdbcClient is a newly introduced feature from Spring 6.1, and it's more concise and intuitive than the existing JdbcTemplate.

Since the course explains the usage step by step, you don't need to worry about it.

Q. Isn't a console project too simple?
Beyond simple CRUD operations, you can experience order status management, user/admin role separation, statistics features, and other
structures and designs that can be directly applied to actual web-based systems.

As you'll see when you implement it, it's not as simple as you might think.

Q. Can I use this project as a portfolio?
Of course.

The order-related domain is a commonly seen domain in web-based services, so I think understanding this domain is important.

The fact that you can implement a console-based ordering system with an inconvenient UI, when thought about in reverse, can give the impression that "you've studied properly to master Java fundamentals", so I think it can make for a good portfolio.

💡Things to Note Before Taking the Course

Practice Environment

  • Operating System and Version (OS)

    • Any OS is fine as long as it's a PC environment OS.

    • However, you should be able to install JDK 17 or higher, and it's recommended that your computer has sufficient computing power (CPU, memory, etc.) to run IntelliJ IDE without issues during the hands-on exercises.

  • Tools Used

    • JDK 17 (minimum requirement)

    • IntelliJ IDE

      • The IntelliJ IDE used in the course is the Ultimate version, but using the free Community version will not cause any problems at all.

      • Even if you don't have IntelliJ IDE, you can use any code editing tool you're comfortable with (such as Visual Studio Code, etc.).

    • Spring Boot 3.x or higher

      • The course uses Spring Boot version 3.4.4, and if you have Spring 3.x version, there will be no problem taking the course.

    • Gradle 7.3 (minimum requirement) or higher

      • Since JDK 17 is compatible with Gradle version 7.3, I have matched the versions between the two.

      • If issues arise due to version compatibility, it would be good to refer to Java Compatibility and try to match the versions as much as possible.

    • JUnit 5 (minimum requirement) or higher

Important Notes

  • If you would like to use the learning materials and code from the course in your personal space such as a blog, you must include the course title and instructor's name, and add the course link. Please understand that unauthorized distribution is not permitted otherwise.

Recommended for
these people

Who is this course right for?

  • Someone who has learned Java syntax but has no experience building real-world applications

  • Those who know the basic concepts of Spring Core but lack hands-on experience applying them

  • Those who want to experience the entire flow from analyzing requirements and design to implementation, just like in real-world practice

  • Those who want to learn logic that goes beyond simple CRUD to control state changes and domain flows

  • Those who have taken Part 1 lectures and want to learn more complex structures and technologies

  • Those who want to build foundational skills with console projects before developing web applications

  • A junior developer who wants to think about "Why was this code written this way?" while implementing projects

Need to know before starting?

  • Java syntax and basic OOP concepts

  • Spring Core usage experience (Bean registration, DI, etc.)

  • JDBC or SQL Basic Concepts

  • Simple console project implementation experience

Hello
This is

6,340

Learners

235

Reviews

108

Answers

4.8

Rating

7

Courses

- 주력 언어 또는 기술 : Java, Spring Framework, RxJava, Reactor, Spring WebFlux

- (주)코드스테이츠(https://www.codestates.com)에서 Senior Educational Software Engineer(Backend)로 활동
(From 2022.03 To 2024.01.31)

- 프리랜서 개발자 및 강사로 활동(From 2024.02)

- 저서

안녕하세요? Kevin이라고 합니다. ^^

인프런에서 이렇게 강사로서 여러분들을 만나게 되어서 너무 반갑습니다.

어떤 분야든 마찬가지겠지만 특히나 소프트웨어 개발자는 끊임없이 변화하는 트렌드에 뒤처지지 않도록 항상 자기 자신을 갈고 닦는것이 개발자로써 살아남는 유일한 방법이라고 생각하며 항상 배우는 자세로 즐겁게 소프트웨어 개발을 하고 있는 개발자 중 한 명입니다.

제가 가지고 있는 지식과 경험이 다른 분들에게 조금이나마 도움이 되기를 바라면서 인프런에서 강좌를 시작하였습니다.

앞으로 수강생분들에게 현실적으로 도움이 되는 다양한 강좌로 꾸준히 찾아뵙도록 하겠습니다. 감사합니다.

 

질문이나 의견은 언제든지 환영하니, 이메일(it.village.host@gmail.com)로 편하게 얘기해주세요.

 

Curriculum

All

45 lectures ∙ (10hr 35min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

Not enough reviews.
Please write a valuable review that helps everyone!

Limited time deal

$35,750.00

35%

$42.90

Kevin's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!