강의

멘토링

커뮤니티

Programming

/

Back-end

Tạo nền tảng chat với Spring Boot

Thông qua việc sử dụng Spring Boot, bạn sẽ học về JWT, giao tiếp ws, và cách xử lý TPS dung lượng lớn.

(3.9) 27 đánh giá

278 học viên

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

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Cấu trúc cơ bản của Spring Boot

  • Máy chủ Stateful dùng ws

  • Quản lý và Xác thực Cookie với JWT

Xử lý TPS trò chuyện khối lượng lớn bằng Spring Boot 😘

Trong bài giảng này, bạn sẽ học cách cấu hình và quản lý các dịch vụ bằng giao thức ws, thường được sử dụng trong các nền tảng có tích hợp dịch vụ trò chuyện.

  • Chijijik , AfreecaTV, Bạn có thể muốn tham khảo Twitch , v.v.


Bài giảng này được xây dựng xoay quanh việc cấu hình dịch vụ trực tiếp bằng Spring Boot và Next.js và phương pháp xác thực bằng JWT. Nếu bạn tham gia bài giảng này, bạn sẽ có thể tìm hiểu thêm về Spring Boot và giao thức ws.

Sự khác biệt giữa HTTP và ws là gì? 😘

Tôi nghĩ rằng cho đến bây giờ, bạn chủ yếu xử lý Giao thức HTTP và thực hiện phát triển.

Tất nhiên, trong thực tế, HTTP chủ yếu được sử dụng. Tuy nhiên, có nhiều phương thức giao tiếp khác nhau như TCP, RPC và WS và bạn có thể xây dựng dịch vụ bằng cách áp dụng chúng một cách linh hoạt tùy theo tình huống.


Vậy sự khác biệt điển hình giữa HTTP và WS là gì? Nói một cách đơn giản, bạn có thể coi nó như sự khác biệt giữa Stateless và Stateful.

  • Bạn có thể hiểu nó như sự khác biệt giữa kết nối với máy khách là liên tục hay chung chung. Nếu bạn không hiểu bài viết, nếu bạn tham khảo bài giảng của tôi và học, bạn sẽ có thể hiểu đầy đủ.


Chúng ta không thể triển khai websocket bằng HTTP được sao? 🤔

📌 Có thể được. Đây không phải là phương pháp phát triển không thể thực hiện được.

📌 Tuy nhiên, các nhà phát triển máy chủ thường cần tận dụng tối đa tài nguyên máy chủ.

📌 Do đó, trong những trường hợp cần duy trì kết nối liên tục, chẳng hạn như máy chủ trò chuyện, thì việc sử dụng WebSocket là rất phù hợp.

Hãy học những điều này nhé 😘

1⃣ Cấu hình máy chủ sử dụng Spring Boot của lập trình viên Pangyo

Bạn có thể tìm hiểu về máy chủ thực bằng cách tạo máy chủ sử dụng cả HTTP và WS. Bạn cũng sẽ học cách tận dụng JWT để khai thác thông tin về người dùng.

2⃣ Mô hình tiêm sử dụng JPA và Bean

Điều quan trọng nhất cần học khi sử dụng Spring Boot là gì? Hầu hết các nhà phát triển Spring Boot sẽ đề cập chủ đề này và sử dụng nó nhiều nhất. Các nhà phát triển Pangyo có thể học cách sử dụng Spring Boot.

3⃣ Cung cấp các mẫu thực hành sử dụng Next.js và Typescript

Bài giảng này không phải là bài giảng chỉ đơn giản cấu hình máy chủ sử dụng ws và tiến hành thử nghiệm. Chúng tôi cung cấp nền tảng cơ bản để xây dựng một nền tảng hoàn chỉnh bằng cách cung cấp mã FE thực tế.

4⃣ Quản lý dữ liệu bằng MySQL

DB nào được sử dụng phổ biến nhất trong thực tế? RDB là cơ sở dữ liệu được sử dụng rất rộng rãi khi xây dựng dịch vụ.

Nó có những đặc điểm sau: 😘

1⃣ Một dự án được xây dựng bằng cách cùng viết code với các nhà phát triển thực tế.

2⃣ Định dạng JWT và các thành phần của nó

3⃣ Sự khác biệt giữa WebSocket và HTTP và lý do tiết kiệm tài nguyên

4⃣ Cùng nhau gỡ lỗi cho các dự án đã triển khai

Những điều cần lưu ý trước khi tham gia lớp học

Môi trường thực hành

  • Bài giảng giải thích dựa trên MacOS (M1).



  • Trong khóa học này chúng ta sẽ sử dụng Spring Boot và Next.js.

    • Video bài giảng được quay để đào tạo nhà phát triển máy chủ. Xin lưu ý rằng Next.js chỉ cung cấp mẫu.


  • Khóa học này nhằm mục đích cung cấp cho sinh viên một định hướng học tập. Bài giảng này triển khai các chức năng cơ bản, nhưng được cấu trúc để dành mục TODO cho phần sau, vì vậy, bạn nên tham khảo mục TODO để nghiên cứu thêm.

    • Phần TODO được để trong README.md .


  • IDE sử dụng Goland và vscode.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Lần đầu với Spring Boot

  • Các giao thức ngoài HTTP

Cần biết trước khi bắt đầu?

  • Spring Boot

  • Kiến thức cơ bản về mạng

Xin chào
Đây là

3,802

Học viên

287

Đánh giá

104

Trả lời

4.6

Xếp hạng

18

Các khóa học

자기 소개

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

 

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

 

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

 

지식공유자 경력

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

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

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

 

인터뷰 이력

Chương trình giảng dạy

Tất cả

29 bài giảng ∙ (3giờ 46phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

27 đánh giá

3.9

27 đánh giá

  • maintainker님의 프로필 이미지
    maintainker

    Đánh giá 3

    Đánh giá trung bình 4.3

    4

    100% đã tham gia

    Đó là một bài giảng rất hay. Có rất nhiều nội dung hay về WS và API, bao gồm các ví dụ hay và phương pháp thử nghiệm. Tuy nhiên, điều đáng tiếc là có một số việc cần phải thực hiện trước tiên, chẳng hạn như cài đặt DB và cài đặt IDE nếu sử dụng vscode nhưng chúng lại không được liệt kê. Một điều nữa là có một ví dụ về mã nhưng còn thiếu phần giải thích. Khi thực hiện thay đổi, thiếu sự giải thích về lý do tại sao những thay đổi đó được thực hiện. Tuy nhiên, như câu cuối cùng đã nói, các nhà phát triển là những người giải quyết vấn đề, đó là một bài giảng đủ hay cho những người có thể tìm kiếm và giải quyết vấn đề. Cảm ơn

    • jhong
      Giảng viên

      안녕하세요, 강의를 잘 봐주셔서 감사합니다. 더 많은 만족을 드리고 싶었지만 아쉬운 부분이 있어서 죄송합니다 ㅠㅠ 아무래도 저런 관점이 제가 개발 공부를 혼자서 하고 실제로 따오기보다는 실제 개발을 하고 혼자서 스스로 검색하고 해결해나가는 과정에서 많은 도움이 되었다고 느끼다보니 이러한 부분이 강의에서도 자연스럽게 녹아들었던거 같습니다. 개발자는 단순히 다른사람이 친 코드를 복사하거나 붙이는 사람은 아니라고 생각합니다. 개념을 알고 해당 개념을 적용하면서 발생가능한 Trade Off를 고려하는 개발자가 좋은 개발자라고 생각을 합니다. 솔직히 그러다보니 모든 부분을 알려드리고 싶지는 않았어요 ㅎㅎ 스스로 해보는 습관을 알려드리고 싶었습니다. 앞으로 더 좋은 강의로 찾아뵙도록 하겠습니다. 날이 많이 추우니 감기 조심하시고 감사합니다 :)

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

    Đánh giá 23

    Đánh giá trung bình 4.8

    4

    100% đã tham gia

    Trước hết xin cám ơn bài giảng. Tôi rất thích nghe nó! Tuy nhiên, tôi muốn chia sẻ cẩn thận một vài phần đáng thất vọng. Điều đáng thất vọng nhất là bố cục có phần thiếu tổ chức. Thay vì kiểm tra giữa chừng, chúng tôi đã triển khai tất cả các tính năng và sau đó kiểm tra chúng ở phần cuối, vì vậy tôi đoán tôi nên nói rằng không có điểm kết thúc cho từng tính năng... Không có điểm kết thúc cho từng điểm, vì vậy tôi có một cảm giác mạnh mẽ rằng tôi rất bận rộn khi phải quay lại sau khi triển khai một tính năng khác. Công cụ này cũng đáng thất vọng. Bạn có thể sử dụng vscode vì một lý do cụ thể, nhưng đã có nhiều lúc luồng bị gián đoạn do thường xuyên xảy ra lỗi nhập, v.v. Cá nhân tôi tự hỏi liệu có lý do nào để tiếp tục với vscode không. Cuối cùng, tôi nghĩ sẽ tốt hơn nếu tôi lựa chọn và tập trung. Tiêu đề của bài giảng là "Tạo nền tảng trò chuyện bằng Spring Boot" không thấy. Vì về cơ bản nó là một 'nền tảng trò chuyện' nên tôi nghĩ bài giảng sẽ tự nhiên tập trung vào ổ cắm web, nhưng thật đáng thất vọng khi có nhiều phần bị lược bỏ. Tuy nhiên, thật tuyệt khi có thể theo dõi những phần mà tôi chưa từng nghĩ đến khi tạo nền tảng trò chuyện, chẳng hạn như nhu cầu về cú pháp SQL hơi phức tạp và những phần có thể bị bỏ sót trong thiết kế DB. Tôi có thể nói ngay trong suốt bài giảng rằng bạn là một nhà phát triển rất có tay nghề cao, nhưng tôi đã viết nhiều hơn chủ đề với hy vọng rằng bạn sẽ trở thành một người hướng dẫn giỏi hơn. Tôi nghĩ sẽ thật tuyệt nếu cấu trúc bài giảng tinh tế hơn một chút!

    • jhong
      Giảng viên

      Xin chào. Cảm ơn bạn đã để lại một đánh giá tốt. Tôi cũng đã tính đến việc tiến hành từng bài kiểm tra một, nhưng tôi chuẩn bị bài giảng như thế này vì muốn thể hiện bài kiểm tra bằng cách liên kết nó với phần thực tế. Lần sau tôi sẽ tham khảo phần đó nhiều hơn. Lý do tôi sử dụng VsCode làm IDE là vì tôi nghĩ một số người có thể ít quen thuộc với nó hơn nên tôi đã sử dụng một IDE được sử dụng rộng rãi nhất có thể. Tôi thích dòng JetBrains, nhưng tôi nghĩ VsCode sẽ được sử dụng cho nhiều phần hơn. Khi chuẩn bị một bài giảng về chức năng WebSocket để trò chuyện, tôi đã nghĩ rằng bạn sẽ thu được rất ít lợi ích nếu chỉ đề cập đến chủ đề đó. Kết quả là chủ đề bài giảng có xu hướng hơi mất tập trung. Cảm ơn bạn một lần nữa vì đã để lại đánh giá tốt. Chúng tôi mong muốn được cung cấp cho bạn những bài giảng thú vị và ý nghĩa hơn trong tương lai. Cảm ơn!!

  • dkstmdwn176216님의 프로필 이미지
    dkstmdwn176216

    Đánh giá 37

    Đánh giá trung bình 4.8

    5

    100% đã tham gia

    Bản thân bài giảng rất hay vì bạn có thể xem hết trong 3-4 ngày ngay cả khi bạn đầu tư rất nhiều thời gian. Nếu để ý nhanh, bạn có thể xem hết trong khoảng một ngày. Bài giảng đề cập đến việc tạo một nhà cung cấp đơn giản để xác thực và mặc dù đây không phải là chủ đề chính nhưng tôi đã có thể tìm hiểu ngắn gọn về phương pháp xác thực jwt. Về trò chuyện, anh ấy giải thích về mô hình phụ pub, kể cho tôi nghe về phương pháp A và kể cho tôi nghe một chút về phương pháp B. Một kết thúc mở về cách tự tìm hiểu và thực hiện? Nó bảo bạn thế này. Điều tôi nhận thấy khi tiếp tục làm việc là trong thực tế, tôi thường dành nhiều thời gian để làm những việc thực sự vô lý. Đặc biệt là về xử lý lỗi. Bài giảng diễn biến nhanh, giảng viên thường mắc lỗi. Ví dụ: khi tạo thực thể thông tin xác thực người dùng, tên bảng được khai báo là "người dùng" hoặc phương thức ánh xạ được đặt tên khác, dẫn đến lỗi 404 ở mặt trước. create_at -> Phần cần khai báo là create_at Khi một vấn đề xảy ra, tôi thích đoạn bạn phải tự mình tìm ra và giải quyết nó trước khi xem bài giảng về cách giải quyết lỗi đó, tôi cũng cảm thấy hơi thực tế haha. Tại sao người mới bắt đầu không thể làm điều này? Tôi nghĩ có một số người đang lo lắng. Và sau khi xem bài giảng này, tôi sẽ cung cấp một ứng dụng trò chuyện. Đây không phải là một bài giảng. Tôi nghĩ tôi muốn tạo ra một dịch vụ trò chuyện chất lượng. !

    • jhong
      Giảng viên

      Xin chào, cảm ơn bạn đã để lại đánh giá tốt. Thời gian của bạn và của tôi đều quý giá. Mục tiêu là thực hiện càng nhiều chức năng càng tốt. Nếu bạn triển khai một chức năng như thế này, một số phần nhỏ sẽ tuân theo. Vì vậy, chúng tôi tập trung vào việc triển khai các chức năng cốt lõi. Thay vì một bài giảng hoàn chỉnh, tôi muốn thể hiện khía cạnh con người hơn bằng cách cùng nhau sửa lỗi. Trên đời này không có ai là hoàn hảo nên có sai sót cũng không sao cả. Tôi cũng đã suy nghĩ một chút về việc tạo ra một ứng dụng hoàn hảo và đi đến kết luận rằng việc tạo ra nó bằng cách chỉ làm theo những phần tôi đưa ra không phải là một cách học hay, vì vậy tôi muốn cung cấp cho bạn danh sách TODO và những phần bạn có thể xem xét trong tương lai. Xin vui lòng đặt câu hỏi phát sinh trong quá trình này. Tôi sẽ tiếp tục đến thăm bạn với những bài giảng hay. Cảm ơn :)

  • wsde43665님의 프로필 이미지
    wsde43665

    Đánh giá 24

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Hiện tại, tôi đã thử áp dụng vào dự án phụ của mình. Là người chỉ làm backend, tôi hiểu về cả mặt mã hóa và giao tiếp ws khi sử dụng WebSocket và STOMP để kết nối ws và trao đổi tin nhắn, nhưng khi thực sự kết nối với frontend mà không cần thiết lập tệp mà chỉ cần bật cổng 3000 và kết nối, tôi cảm thấy rất bối rối. Tôi không thể tải package.json bằng WebStorm và chỉ có thể tạo một dự án mới, sao chép tất cả các tệp trong gói client và thử, nhưng tôi gặp nhiều vấn đề về phụ thuộc, phiên bản react, createContext... v.v... Là người chỉ làm backend, tôi không biết cách bật máy chủ cổng 3000.... Là một nhà phát triển backend, tôi đã học được cách sử dụng chú thích Swagger gọn gàng và phần chat bằng WebSocket - STOMP. Tôi chưa thử chat nhưng....

    • jhong
      Giảng viên

      Xin chào. Cảm ơn bạn đã để lại đánh giá. Vì phần mẫu là về công việc front-end nên tôi cảm thấy rằng sẽ rất dễ dàng để truyền đạt những kiến ​​thức không chính xác để tôi với tư cách là nhà phát triển back-end xử lý. Vì tôi biết cách thực hiện ở một mức độ nhất định nên tôi đã sử dụng nó làm giao diện người dùng để thử nghiệm. Tuy nhiên có vẻ như bạn đang gặp rất nhiều khó khăn khi chạy phiên bản hay gì đó 😭😭 Khi chuẩn bị cho bài giảng tiếp theo, chúng ta sẽ cấu hình nó để sử dụng thuận tiện hơn và tránh xung đột phiên bản bằng cách xử lý nó dưới dạng image bằng Docker. Cảm ơn

  • yuhojin8037329님의 프로필 이미지
    yuhojin8037329

    Đánh giá 6

    Đánh giá trung bình 5.0

    5

    90% đã tham gia

    Mình là sinh viên đang sử dụng Spring trong công việc thực tế. Tôi tham gia khóa học vì tôi tò mò về nó và nó thật tốt vì tôi có thể học cả giao tiếp HTTP và Socket. Trong trường hợp HTTP thì mọi người đều sử dụng nó và JPA được sử dụng ở mức độ nào? Vì biết nên tôi lấy nó với ý định xem lại. Mặc dù tôi chưa xử lý Socket nhưng tôi có thể hiểu ngắn gọn lý do tại sao nó nên được sử dụng, nó hiệu quả trong những tình huống nào và tại sao nó hiệu quả. Việc thực hiện đơn giản cũng có thể thực hiện được. Thay vì cảm thấy như bài giảng đã dạy tôi mọi điều, tôi lại cảm thấy như nó đang cho tôi một con đường rõ ràng. Tôi có cảm giác mạnh mẽ rằng nó đang cho tôi biết những phương pháp phát triển nào và những gì tôi nên nghiên cứu khi phát triển. Cảm ơn bạn vì bài giảng tuyệt vời.

    • jhong
      Giảng viên

      Xin chào, cảm ơn vì những lời tốt đẹp của bạn. Tôi đã chuẩn bị bài giảng bằng cách đề cập đến các khía cạnh cơ bản của việc định cấu hình nền tảng. Tôi cảm thấy vui vì có vẻ như bạn đã tự mình vẽ ra được một bức tranh sơ bộ về hướng học tập của mình. Tôi sẽ trở lại với một bài giảng hay trong tương lai. Cảm ơn :)

1.193.004 ₫

Khóa học khác của Hong

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!