강의

멘토링

로드맵

Programming

/

Back-end

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.8) 25 reviews

274 learners

  • Hong
tps
실습 중심
채팅프로그램
Spring Boot
JWT
websocket
MySQL
JPA

Reviews from Early Learners

What you will learn!

  • 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

3,137

Learners

212

Reviews

85

Answers

4.6

Rating

16

Courses

자기 소개

집에서 빈둥대다 개발에 흥미를 느껴 개발 공부를 시작하였고 현재는 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.

 

제가 공부를 했던 방법과 실무에서 접하실 수 있는 여러가지 문제점들과 해결책을 여러분들에게 제공하고 싶어 지식공유자 활동을 이어나가고 있습니다.

 

강의는 오로지 저만의 지식을 통해 만들어지지 않습니다. 모든 강의는 함께하시는 분들이 계십니다.

 

지식공유자 경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[] 판교에서 고여가는 서버 개발자

 

인터뷰 이력

Curriculum

All

29 lectures ∙ (3hr 46min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

25 reviews

3.8

25 reviews

  • 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 :)

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

    Reviews 20

    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!!

  • dkstmdwn176216님의 프로필 이미지
    dkstmdwn176216

    Reviews 37

    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. :)

  • wsde43665님의 프로필 이미지
    wsde43665

    Reviews 24

    Average Rating 5.0

    5

    100% enrolled

    I tried to apply it to my current side project. As someone who has only worked on the backend, I understand the code and the ws communication of connecting to ws using WebSocket and STOMP and exchanging chat messages, but I was very confused when I connected to the actual front end by simply turning on port 3000 without setting up a file. I couldn't load package.json in WebStorm, so I just created a new project and copied and pasted all the files in the client package, but I had various dependency issues, react version issues, createContext issues, etc. As someone who has only worked on the backend, I have no idea how to turn on the port 3000 server.... As a backend developer, I learned how to use clean Swagger annotations and the WebSocket - STOMP for chat. I haven't tried the chat yet....

    • jhong
      Instructor

      Hello. Thank you for leaving a comment. Since the template part is a part of the front-end work, I thought it would be too easy to convey incorrect knowledge if I, a back-end developer, handled it. Since I only knew how to do it to some extent, I used it as a UI for testing. However, it seems that you are having a lot of trouble with version conflicts and running it 😭😭 When preparing the next lecture, I will try to configure it so that you can use it more easily by using Docker to handle it as an image to prevent version conflicts. Thank you.

  • yuhojin8037329님의 프로필 이미지
    yuhojin8037329

    Reviews 6

    Average Rating 5.0

    5

    90% enrolled

    I am a junior who uses Spring in my work. I took the course because I was curious about the lecture, and it was good because I could learn both HTTP and Socket communication. In the case of HTTP, everyone uses it, and I know JPA to some extent?? So I took the course with the idea of reviewing it. I didn't deal with Socket, but I was able to briefly understand why it should be used, in what situations it is efficient, and why it is efficient. I was also able to implement a simple implementation accordingly. Rather than feeling like the lecture taught me everything, I felt like it showed me the right path. It felt like it taught me what development methods and what I should study for development. Thank you for the great lecture.

    • jhong
      Instructor

      Hello, thank you for your kind words. I prepared the lecture while covering the basics of configuring the platform. I feel good because it seems like you have drawn a rough study direction and picture yourself. I will come back with a good lecture in the future. Thank you :)

Limited time deal

$33.00

25%

$44.00

Hong's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!