Building a Chat Platform Using Spring Boot

You can learn about JWT and ws communication using Spring Boot, and how to handle high TPS.

(3.9) 27 reviews

291 learners

Level Basic

Course period Unlimited

Spring Boot
Spring Boot
JWT
JWT
websocket
websocket
MySQL
MySQL
JPA
JPA
Spring Boot
Spring Boot
JWT
JWT
websocket
websocket
MySQL
MySQL
JPA
JPA

Reviews from Early Learners

3.9

5.0

Anfield

100% enrolled

The lecture itself was good because it could be watched in 3~4 days even if you invested a lot of time. If you watch it quickly, you can probably watch it in about a day. The lecture content is about creating a simple provider for authentication and processing it, and although it is not the main content, I was able to briefly learn about the jwt authentication method. Regarding chat, he explained the pub sub model, and he explained method A and a little about B. He told me about how to find it myself and do it, like an open ending? As I continued to work, I realized that in practice, there are many times when I spend a lot of time on really ridiculous things. Especially when it comes to error handling. The lecture goes by quickly, but the instructor often makes mistakes. For example, when creating a usercredential entity, declaring the table name as "user", or using a different name for the mapping method, causing a 404 error on the front. create_at -> The part that needs to be declared as created_at When a problem occurs, I liked the part where you can find and solve it yourself before watching the lecture on solving errors, and it also feels a bit practical. ㅎㅎ Beginners may wonder why it doesn't work. And this is not a lecture that says you can service a chat application after watching one lecture. I want to complete a complete chat service. !

5.0

Deck

55% enrolled

It was good that it covered several parts together rather than just one topic. I liked the part that covered JPA and JWT Token in detail, and the part that showed why IO is reduced in wss communication compared to general HTTP by analyzing actual requests was impressive. Thank you for the great lecture. :)

5.0

테렌

62% enrolled

It is a lecture that provides a good amount of content to view in a day and delivers it in a clean manner.

What you will gain after the course

  • Basic Structure of Spring Boot

  • Stateful server using ws communication

  • Cookie Management and Authentication with JWT

Handling high-volume chat TPS with Spring Boot 😘

In this lecture, you will learn how to configure and manage services using the ws protocol, which is typically used in platforms where chat services are included.

  • Chijijik , AfreecaTV, You may want to refer to Twitch , etc.


This lecture is structured around configuring services directly using Spring Boot and Next.js, and authentication methods using JWT. If you take this lecture, you will be able to learn more about Spring Boot and ws protocol.

What is the difference between HTTP and WS? 😘

I think that up until now, you have mainly dealt with HTTP Protocol and carried out development.

Of course, in actual practice, HTTP is mainly used. However, there are various communication methods such as TCP, RPC, and WS, and you should be able to build a service by flexibly applying them depending on the situation.


So what are the typical differences between HTTP and WS? To put it simply, you can think of it as the difference between Stateless and Stateful.

  • You can understand it as the difference between whether the connection with the client is persistent or general. If you don't understand the article, if you take my lecture and learn, you will be able to fully understand it.


Can't we just implement websocket with HTTP ? 🤔

📌 It is possible. It is not an impossible development method.

📌 However, server developers generally need to take advantage of server resources as much as possible.

📌 Therefore, in cases where a continuous connection must be maintained, such as a chat server, it is very suitable to use WebSocket .

Learn these things 😘

1⃣ Server configuration using Spring Boot by Pangyo developer

You can learn about real servers by creating a server that utilizes both HTTP and WS. You can also learn how to utilize information about users by utilizing JWT.

2⃣ Injection modeling using JPA and Bean

What is the most important part to learn when using Spring Boot? Most Spring Boot developers mainly deal with this content and use it the most. Pangyo developers can learn how to use Spring Boot.

3⃣ Providing practice templates using Next.js and Typescript

This lecture is not a lecture that simply configures a server that utilizes ws and conducts tests. It provides a basic skeleton for configuring a complete platform by providing actual FE code.

4⃣ Data Management Using MySQL

What is the most commonly used DB in practice? RDB is a very widely used database when building services.

It has these features 😘

1⃣ A project that is structured by writing code together with actual developers.

2⃣ JWT format and its components

3⃣ Differences between WebSocket and HTTP and Reasons for Resource Saving

4⃣ Debugging together for implemented projects

Things to note before taking the class

Practice environment

  • The lecture explains based on MacOS (M1).



  • In this course we will use Spring Boot and Next.js.

    • The video was taken for the purpose of learning server developers. Please note that only templates are provided for Next.js.


  • This lecture aims to provide a learning direction for students. It is structured as a lecture that implements basic functions but leaves TODOs for later, so it would be good to refer to the TODOs for additional learning.

    • The TODO part is left in README.md .


  • IDE uses Goland and vscode.

Recommended for
these people

Who is this course right for?

  • Someone new to Spring Boot

  • Those curious about non-HTTP protocols

Need to know before starting?

  • Spring Boot

  • Network Fundamentals

Hello
This is Hong

8,190

Learners

526

Reviews

149

Answers

4.7

Rating

27

Courses

Introduction

I started studying development after finding an interest in it while idling at home, and I am currently in charge of platform server development in Pangyo. I am continuing my activities as a knowledge sharer because I want to provide you with the methods I used to study, as well as the various problems and solutions you may encounter in practice.

 

These lectures are not created solely through my own knowledge. Every lecture is made together with others.

 

Instructor Experience

[Former] Blockchain developer related to Sandbox IP

[Former] Metaverse Backend Developer

[Current] A veteran server developer in Pangyo

 

Interview History

Other Inquiries

  • unduck2022@gmail.com

More

Curriculum

All

29 lectures ∙ (3hr 46min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

27 reviews

3.9

27 reviews

  • springtaki님의 프로필 이미지
    springtaki

    Reviews 38

    Average Rating 4.8

    5

    100% enrolled

    The lecture itself was good because it could be watched in 3~4 days even if you invested a lot of time. If you watch it quickly, you can probably watch it in about a day. The lecture content is about creating a simple provider for authentication and processing it, and although it is not the main content, I was able to briefly learn about the jwt authentication method. Regarding chat, he explained the pub sub model, and he explained method A and a little about B. He told me about how to find it myself and do it, like an open ending? As I continued to work, I realized that in practice, there are many times when I spend a lot of time on really ridiculous things. Especially when it comes to error handling. The lecture goes by quickly, but the instructor often makes mistakes. For example, when creating a usercredential entity, declaring the table name as "user", or using a different name for the mapping method, causing a 404 error on the front. create_at -> The part that needs to be declared as created_at When a problem occurs, I liked the part where you can find and solve it yourself before watching the lecture on solving errors, and it also feels a bit practical. ㅎㅎ Beginners may wonder why it doesn't work. And this is not a lecture that says you can service a chat application after watching one lecture. I want to complete a complete chat service. !

    • jhong
      Instructor

      Hello, thank you for leaving a good review. Your time and mine are both precious. I aimed to implement the functions as much as possible. If you implement the functions like this, the secondary parts will follow to some extent. So I focused on implementing the core functions, and rather than a completely finished lecture, I want to show you a more human side by debugging together. Since no one is perfect in the world, it's okay if there are mistakes and bugs. I also thought a little about the perfect application, and I concluded that making it by only following the parts I tell you is not a good way to study, so I wanted to provide you with a TODO list and parts that you can think about later. Feel free to ask questions during this process. I will continue to visit you with good lectures. Thank you. :)

  • newbeginner님의 프로필 이미지
    newbeginner

    Reviews 36

    Average Rating 4.8

    1

    100% enrolled

    The lecture quality itself was disappointing, including noises heard intermittently during the lecture and parts where it didn't proceed smoothly and cut off, and the lecture content was also disappointing. They taught minor things like Lombok, JPA method naming conventions, and JWT, but it was regrettable that for the lecture's main topic, the important STOMP, they only provided simple implementation code without any explanation. It was particularly puzzling why JWT was explained in relatively detail across 4 sections, but for WebSockets, they finished the explanation with a single simple image, and for STOMP, they didn't explain it at all. Furthermore, I also wondered why about 6 minutes of content where a bug was not found was uploaded as a lecture, and the lack of any mention in the lecture where the bug occurred made me think that the post-processing was not properly done. The incorrectly written code in the 7th lecture was corrected in the 28th lecture, but even if the 7th lecture isn't revised, I think it would be better to specify the cause of the bug. Besides the mentioned points, there were many other regrettable aspects, making me quite dissatisfied, and I would not be able to recommend this lecture to others.

    • jhong
      Instructor

      Hello Baeksu Chwijunsaeng-nim, thank you for leaving this review. Since I've just begun lecturing, this particular course is quite a sore spot for me 😭😭. To supplement this, I'm preparing a chat platform that handles multiple instance situations, so please keep this in mind, and I'd be grateful for another chance when it's released later. Once again, I apologize for not meeting your satisfaction.

  • coffee님의 프로필 이미지
    coffee

    Reviews 1

    Average Rating 1.0

    1

    100% enrolled

    I am a student studying Spring. Through this lecture, I wanted to gain more in-depth knowledge about WebSocket and how to implement it in Spring. However, The entire lecture time was about 3 hours and 46 minutes, but the actual content related to WebSocket was about 51 minutes, and the remaining time was spent on how to use JPA or writing basic HTTP-based APIs that I already knew. Even in the part that deals with WebSocket, they only write code. I felt that there was almost no explanation of the concepts or operating methods that I wanted to know through this lecture. As a result, all I could get from this lecture was the code for an unfinished chat room service using STOMP, and it lacked the in-depth understanding of WebSocket that I expected or the in-depth explanation of how to integrate it with Spring. I am a bit disappointed because it is a paid lecture with a high price of 40,000 won.

    • jhong
      Instructor

      Hello, thank you for taking the class!! In preparing this lecture, I prepared the lecture to inform you about the time it takes to implement basic functions and simple sockets. I thought I had sufficiently included it in the lecture introduction, but I think I didn't convey it well... I'm sorry that I couldn't satisfy you because I'm not good at it. ㅠㅠ As you'll know if you listen to the lecture, WebSockets are not much different from HTTP. So I prepared the lecture to generally explain the difference between the theoretical part and the resource part, but I'm sorry that I couldn't satisfy you. ㅠ.ㅠ I also prepared the lecture in the form of leaving some TODOs for the project. I think that it's meaningless to tell you 100% about development. I think you can feel and understand more if you try it yourself. That's why I left some, but I'm sorry that I couldn't satisfy you about this part. I will reflect on the parts you mentioned in preparing future lectures and come back with a better lecture. Thank you for taking the lecture!

  • 100yen님의 프로필 이미지
    100yen

    Reviews 24

    Average Rating 4.8

    4

    100% enrolled

    First of all, thank you for the lecture. I enjoyed it! However, I would like to carefully share some of the parts that I was disappointed with. The most disappointing thing is that the composition was somewhat scattered. Since the test was performed at the end after implementing all the functions instead of checking them in the middle, I should say that there was no conclusion for each function.. Since there was no conclusion for each point, I felt very disoriented when I had to return to implementing other functions. The tool was also disappointing. You may use vscode for some reason, but there were many times when the flow was interrupted due to frequent import errors, etc. I personally wondered if there was a reason to proceed with vscode. Lastly, I think it would have been better if there had been more selection and focus. The title of the lecture is "Creating a Chat Platform Using Spring Boot". Since it is basically a 'chat platform', I thought the lecture would naturally focus on web sockets, but I was disappointed that there were many parts omitted. However, it was great to be able to follow along step by step with the parts that I hadn't thought of when creating a chat platform, such as the need for slightly complex SQL statements and the parts that I might have missed in DB design. I could tell right away that you are a very capable developer throughout the lecture, but I wrote a bit too much because I wanted you to be a better instructor. I think it would be really great if the lecture structure was just a little bit more refined!

    • jhong
      Instructor

      Hello. Thank you for leaving a good review. I considered a method of conducting tests one by one, but I wanted to show you the test by linking it to the actual Front, so I prepared the lecture like this. ㅠㅠ I will refer to that part more from next time. The reason I used VsCode as an IDE is because I thought there might be some people who are less familiar with it, so I used an IDE that is used as much as possible. JetBrains is good, but I thought that VsCode would be used for more parts. When preparing a lecture on the web socket function for chat, I thought that there was too little for you to gain if I only covered that topic. As a result, the lecture topic tended to be a little distracting. ㅠㅠ I apologize for that. Thank you again for leaving a good review, and I will come back with a more fun and meaningful lecture in the future. Thank you!!

  • maintainker님의 프로필 이미지
    maintainker

    Reviews 3

    Average Rating 4.3

    4

    100% enrolled

    It was a really good lecture. There are a lot of good contents such as good examples and testable methods for WS and API. However, the regrettable thing is that there are some things that need to be done first, such as DB settings and IDE settings if using vscode, but they are not listed. Another thing is that there are code examples, but the explanations for them are lacking. When modifying, there is a lot of explanation about why the modifications were made. However, as the last sentence says, developers are problem solvers, so it was a good enough lecture for those who can search and solve problems. Thank you.

    • jhong
      Instructor

      Hello, thank you for watching the lecture. I wanted to give you more satisfaction, but I'm sorry that there are some shortcomings. ㅠㅠ Since I felt that such a perspective was very helpful in the process of studying development on my own and actually getting it done, rather than copying and pasting code written by someone else, I think this part naturally became part of the lecture. I don't think a developer is someone who simply copies and pastes code written by someone else. I think a good developer is someone who understands the concept and considers the possible trade-offs that may occur while applying the concept. To be honest, I didn't want to tell you everything. ㅎㅎ I wanted to teach you the habit of trying things out on your own. I will come back with a better lecture in the future. It's very cold, so take care of your cold and thank you :)

Hong's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!