강의

멘토링

로드맵

Programming

/

Back-end

Spring Boot を活用して チャットプラットフォーム を 作ってみる

Spring Bootを活用し、JWT、ws通信、大容量TPSの処理方法について学習できます。

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

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

こんなことが学べます

  • Spring Bootの基本構造

  • ws通信を活用したStatefulサーバー

  • JWTを活用したCookie管理および認証

Spring Bootを大容量チャットTPSで処理する😘

このレッスンでは、チャットサービスが入っているプラ​​ットフォームで代表的に使用されるwsプロトコルを活用して、サービスをどのように構成して管理できるかを学ぶことができます。

  • 歯肉アフリカテレビ、 Twitchなどを参考にしてください。


このレッスンでは、Spring Boot、Next.jsを使用して直接サービスを設定し、JWTを活用した認証方式をテーマにレッスンを構成し、このレッスンを受講すれば、あなたはSpring Bootとws protocolについて深く学習することができます。

HTTPとwsの違いは何ですか? 😘

皆さんはこれまでHTTP Protocolだけ主に取り上げて開発を進めたと思います。

もちろん実際の実務ではHTTPを主に使用します。しかし、他にもTCP、RPC、wsなど様々な通信方式が存在し、状況に応じて柔軟に適用してサービスを構築することができなければなりません。


では、代表的なHTTPとwsの違いは何ですか?簡単に言えば、ステートレスとステートフルの違いで見ることができます。

  • Clientとのつながりが持続的なのか一般的なのかという違いで理解すればよく、その文が理解できない場合は、講義を受講しながら学習すれば、十分に理解できます。


websocketをただHTTPで実装すればいいのではないでしょうか? 🤔

📌可能です。不可能な開発方法ではありません。

📌しかし、サーバー開発者は通常、サーバーのリソースをできるだけ節約する必要があります。

📌だから、チャットサーバーのような継続的なConnectionが維持されるべき通信のような場合にはWebSocketを使うのが非常に適しています。

こんなことを学びます😘

1⃣板橋開発者のSpring Bootを活用したサーバー構成

HTTPとwsの両方を活用するサーバーを作成しながら、実際のサーバーについて学ぶことができます。また、JWTを活用して、userに関する情報を活用する方法について学習できます。

2⃣ JPA、Beanを活用した注入モデリング

Spring Bootを活用したときに最も重要なことは何ですか?ほとんどのSpring Boot開発者はその内容を主に扱い、最もよく使用します。板橋の開発者はどのようにSpring Bootを活用するかを学ぶことができます。

3⃣ Next.js、Typescriptを活用した練習テンプレートを提供

このレッスンは、単にwsを活用するサーバーのみを構成してテストを行う講義ではありません。実際のFEコードを提供して、完成度の高いプラットフォームを構築するための基本的なSkeltonを提供します。

4⃣MySQLを活用したデータ管理

実務で最も代表的に使用するDBは何ですか?サービスを構築する上で、RDBは非常によく使われるデータベースです。

このような特徴を持っています。 😘

1⃣実際の開発者と一緒にコードを書いて構成するプロジェクト

2⃣ JWTの形態とそれに従った構成要素

3⃣ WebソケットとHTTPとの違いとリソース削減の理由

4⃣実装したプロジェクトについて一緒にデバッグ

受講前の注意

練習環境

  • 講義はMacOS(M1)ベースで説明されています。



  • レッスンでは、Spring BootとNext.jsを使用します。

    • 講義撮影者はサーバー開発者の学習のために撮影になりました。 Next.jsについては、テンプレートのみを提供することを学んでください。


  • この講義は、受講生に学習の方向性を提供することを目指しています。基本的な機能を実装しますが、今後TODOを残す講義として構成されていますので、該当TODOを参考に追加の学習をしてください。

    • TODOの部分はREADME.mdに残りました。


  • IDEはGolandとvscodeを使用します。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Spring Bootが初めての方

  • HTTP以外のプロトコルが気になる方

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

  • Spring Boot

  • ネットワーク基本知識

こんにちは
です。

3,490

受講生

262

受講レビュー

104

回答

4.6

講座評価

17

講座

자기 소개

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

 

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

 

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

 

지식공유자 경력

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

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

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

 

인터뷰 이력

カリキュラム

全体

29件 ∙ (3時間 46分)

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

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

受講レビュー

全体

27件

3.9

27件の受講レビュー

  • maintainker님의 프로필 이미지
    maintainker

    受講レビュー 3

    平均評価 4.3

    4

    100% 受講後に作成

    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
      知識共有者

      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

    受講レビュー 22

    平均評価 4.8

    4

    100% 受講後に作成

    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
      知識共有者

      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

    受講レビュー 37

    平均評価 4.8

    5

    100% 受講後に作成

    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
      知識共有者

      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

    受講レビュー 24

    平均評価 5.0

    5

    100% 受講後に作成

    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
      知識共有者

      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

    受講レビュー 6

    平均評価 5.0

    5

    90% 受講後に作成

    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
      知識共有者

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

¥6,818

Hongの他の講座

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

似ている講座

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