토이 프로젝트45 Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (9) Kurento 를 이용한 그룹 화상 채팅 코드 분석 0. 시작하면서 1) MediaServer 의 구현 - SFU 의 모습을 기억해두자. 특히 이 모습과 코드를 비교하면서 보면 더욱 이해가 쉽다. 2) 동작은 어떻게?? 대략 이런 느낌이구나하고 넘어가고, 아래의 코드를 보면서 더 자세한 내용을 확인한다. 1. roomMap 을 통해 전체 room 을 조회, 추가, 수정, 삭제 한다 2. KurentoRoom 을 통해 화상 채팅 방을 만든다. 3. KurentoRoomManager 를 통해 KurentoRoom 에 대한 자세한 관리 - 조회, 추가, 수정, 삭제 -를 한다. 4. KurentoRegistry 는 이런 room 에 접속한 유저 - kurentoUserSession - 를 관리한다. 5. KurentoUserSession webrtc 를 위해 .. 토이 프로젝트/Spring&Java 갖고놀기 2023. 1. 27. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (8) Kurento 를 이용한 그룹 화상 채팅&실시간 화면 공유 1. 시작하면서 드디어 기다리고 기다리던 Kurento 를 이용한 N:M 그룹 화상 채팅이 완료되었습니다! 사실 매번 이번 코딩은 너무 어려웠습니다 하고 시작했지만...이번에는 정말 최고 난이도 였던 것 같습니다. 이게 다른 것보다는 한글로 적혀있는 정보를 찾기가 너무 힘들어서 오류가 나거나 했을 때 해결하기가 정말 힘들었던 것 같습니다. 시간이 가장 많이 들어갔던 부분은 서버설정과 쿠렌토 미디어 서버와 연결하기 위한 코딩 부분이었습니다. 서버 설정에서는 Kurento Media Server - 쿠렌토 - 와 turn server - coturn - 을 설치한 후 spring 프로젝트와 연결시킬 때 정말 많이 오류가 발생했었습니다. 단순히 서버 설정이 잘못된 건지 java 쪽에서 쿠렌토 서버와 연결하는 .. 토이 프로젝트/Spring&Java 갖고놀기 2023. 1. 24. 1일 1커밋 git push 자동화 만들기 - IT 뉴스 사이트 웹 크롤링 && crontab 이용 본 내용은 오직 공부를 위한 내용이며 제 코드를 복제, 수정하여 사용할때 일어날 수 있는 웹 크롤링과 관련된 불법적인 내용에서는 책임질 수 없습니다 1. "개발자는 귀찮아해야 해" 전 회사에서 엑셀 파일로 업무를 하면서 엑셀 함수를 짜는 저를 보신 매니저님께 들었던 이야기였습니다. 사실 당시까지만 해도 "왜...? 귀찮아해야한다는거지?" 라고 궁금해 했었습니다. 그런데 최근에는 조금씩 이해가 가기 시작했습니다. 실제로 귀찮아 해야지만 그걸 어떻게 발전시킬 수 있을지 고민하게되고, 말 그대로 여러가지를 "개발" 할 수 있게 되니까 그런게 아닐까라고 이제서야 조금씩 이해가 가더라구요ㅋㅋ 왜 이 이야기를 먼저 꺼냈냐하면 사실 올해 목표로 잡은 것 중 하나가 1일 1커밋 입니다. 아무래도 git 잔디를 관리해야.. 토이 프로젝트/Python 갖고놀기 2023. 1. 1. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (7) WebRTC 를 이용한 실시간 화면 공유 이전 글에 이어서 WebRTC 를 사용해서 실시간 화면 공유를 구현해보았습니다. 저번 글에 '화면 공유 기능 목표!!' 라고 이야기했던게 사실 오래 걸릴 줄 알았는데 의외로 금방? 끝났습니다ㅋㅋ 라고 이전에 글을 썼었는데...생각해보니 공유 되는 나의 화면을 나만 볼 수 있었고, 내 화면을 다른 사람이 보는 내가 생각했던 진짜 '화면 공유' 기능이 아니었다는 걸 깨달았습니다. 결국 빠르게 글을 잠금표시로 전환해두고 코드를 뜯어고치기 시작했습니다. 솔직히 금방 끝나서 다행이다! 했는데 결국 이렇게 또 한주가 가버렸네요ㅠ.ㅠ JS 부분만 고치면 되는거여서 Java 부분의 코드 수정은 전혀 없었습니다 코드는 언제나 처럼 git 참고!! https://github.com/SeJonJ/Spring-WebSocke.. 토이 프로젝트/Spring&Java 갖고놀기 2022. 10. 31. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (6) WebRTC 를 이용한 실시간 화상 채팅 구현하기(feat. https 인증서 적용) 1. 실시간 화상 채팅 구현하기! 사실 실시간 화상 채팅이고 뭐고 순서상 JPA 를 사용한 회원가입을 구현하는게 먼저였지만...갑자기 화상 채팅에 꽂혀버려서 구현해봤습니다ㅋㅋㅋㅋ 솔직히 이번에는 다른 것보다 어렵겠구나 라는 생각을 했었습니다. 왜냐하면 아주 단순하게 생각해도 화상 채팅을 구현하기 위해서는 클라이언트끼리의 화면 연결, 음성 연결 등등등 정말 생각하고 고려할게 많았기 때문입니다. 그래도 만들려보고 키보드를 두들겼던 가장 큰 이유는 이전 채팅처럼 쉬운 예제가 많이 있다고 생각했었기 때문입니다. 그러나 의외로 참고할 자료가 많이 없었고, 이 부분이 굉장히 큰 에러였던 것 같습니다ㅠㅠ 처음에 예제를 찾아봤을 때 대부분이 스프링 대신 node.js 로 구현한 경우가 많았습니다. 솔직히 중간부터는 나.. 토이 프로젝트/Spring&Java 갖고놀기 2022. 10. 29. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (5) OAuth2 를 활용한 소셜 로그인 10.29 추가 : 일반(문자) 채팅만 구현하는 코드는 git 의 master 브렌치를 참고해주시기 바랍니다. master-Webrtc-jpa 는 화상 채팅과 jpa 를 이용한 DB 연결을 포함하는 브렌치입니다. 소셜 로그인 후 실시간 채팅만들기 이제 저번 시간까지해서 실시간 채팅을 하기 위한 기본 요소들은 모두 만들었습니다. 이제는 조금 더 업그래이드 하기 위해서! 로그인 기능을 덧붙여볼까 합니다. 근데 언제나 하던 일반 로그인은 시시하고, 조금 색다르게 소셜 로그인 기능을 먼저 추가해볼까 합니다. 정확히는 소셜 로그인 시 아이디(닉네임)을 채팅명으로 만든 후 해당 닉네임으로 채팅을 할 수 있도록 기능을 추가하겠습니다. 단 이번에는 DB 에 회원 정보를 저장하지 않고 소셜 로그인을 하는 것 까지만! 하.. 토이 프로젝트/Spring&Java 갖고놀기 2022. 9. 21. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (4) 채팅방 비밀번호 설정, 인원수 제한, 삭제(feat. 업로드된 S3 파일 삭제) 10.29 추가 : 일반(문자) 채팅만 구현하는 코드는 git 의 master 브렌치를 참고해주시기 바랍니다. master-Webrtc-jpa 는 화상 채팅과 jpa 를 이용한 DB 연결을 포함하는 브렌치입니다. 시작하면서 - 지난번에 S3 파일 업로드 & 다운로드까지 완료하고 나니까 좀 더 여러가지 기능을 넣어보고 싶어서 채팅방에 관한 설정을 추가해보았다. - 구체적으로는 채팅방 생성 시 비밀번호 설정, 채팅방 인원수 제한과 채팅방 삭제 기능이다. 특히 삭제 기능의 경우 채팅방이 삭제되면 해당 채팅방에 올라온 파일도 필요가 없어짐으로 S3 에서 해당 채팅방에 관련된 모든 파일을 삭제하는 방식으로 코드를 작성하였다. - 이왕 이렇게 된거 최종적인 완성본은 카카오 오픈 채팅방의 그것처럼 만들어보려고 한다... 토이 프로젝트/Spring&Java 갖고놀기 2022. 9. 13. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (3) S3 기반 채팅 파일 업로드 & 다운로드 10.29 추가 : 일반(문자) 채팅만 구현하는 코드는 git 의 master 브렌치를 참고해주시기 바랍니다. master-Webrtc-jpa 는 화상 채팅과 jpa 를 이용한 DB 연결을 포함하는 브렌치입니다. - 최근 스터디에서 파일 업로드와 관련된 프로젝트를 하자고 이야기가 나왔고, 이에 만들어두었던 채팅에 이어서 만들어보고 싶어서 부랴부랴 AWS S3 와 연동해서 S3 기반 파일 업로드를 구현하였다. - 원래는 S3의 bucket 만들기부터 시작해서 ACL 설정 등등 만져줄게 많은데 이것들은 담에 설명하기로 하고, 이번에는 코드만 정리하고 넘어가려고 한다. => 혹시나 필요하신 분들을 위해서 이 부분은 아래에 참고 사이트를 넣어두었으니 확인 부탁드립니다! - 아래의 추가된 모든 내용은 해당 git.. 토이 프로젝트/Spring&Java 갖고놀기 2022. 9. 7. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기(2) chatDTO, DAO, Socket.js 코드 알아보기 10.29 추가 : 일반(문자) 채팅만 구현하는 코드는 git 의 master 브렌치를 참고해주시기 바랍니다. master-Webrtc-jpa 는 화상 채팅과 jpa 를 이용한 DB 연결을 포함하는 브렌치입니다. 1. 기본 개념 설명 STOMP - STOMP 는 Simple Text Oriented Messaging Protocol 의 약자로 메시지 전송을 위한 프로토콜이다. 기본적인 Websocket 과 가장 크게 다른 점은 기존의 Websocket 만을 사용한 통신은 발신자와 수신자를 Spring 단에서 직접 관리를 해야만 했다. 즉 WebSocketHandler 를 만들어서 WebSocket 통신을 하는 사용자들을 Map 등으로 저장하고 이를 직접 관리하며 클라이언트에서 들어오는 메시지를 다른 사용.. 토이 프로젝트/Spring&Java 갖고놀기 2022. 9. 1. Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기(1) stomp, socketjs, websocket 각 브렌치 및 포스팅 별 내용- 일반 채팅 : master => 2 ~더보기2022.09.01 - [토이 프로젝트/Spring&Java 갖고놀기] - Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기(2) chatDTO, DAO, Socket.js 코드 알아보기 - 시그널링 서버를 구현한 화상채팅 & 화면 공유(P2P) : master-webrtc-jpa => 6~7 번 포스팅더보기2022.10.29 - [토이 프로젝트/Spring&Java 갖고놀기] - Spring Boot Web Chatting : 스프링 부트로 실시간 채팅 만들기 (6) WebRTC 를 이용한 실시간 화상 채팅 구현하기(feat. https 인증서 적용) - Kurento 미디어 서버를 활용한 화상채.. 토이 프로젝트/Spring&Java 갖고놀기 2022. 8. 29. Spring Web Chatting : 스프링 채팅 만들기 웹소켓 맛보기 시작하면서 오랜만에 돌아온 자바 갖고놀기 프로젝트!! 이번에는 예전부터 정말정말정말 해보고 싶었던 spring 과 웹소켓을 이용한 채팅 프로그램 구현을 해보려고 합니다. 오늘 뼈대 만들기를 시작해서 stomp 를 사용한 채팅 구현, 파일 업로드, DB 와 연결 등등 여러가지를 더해서 만들겠습니다! 추가로 아래 코드 및 설명에서 등장하는 새로 공부하게된 어노테이션과 개념들은 따로 정리하도록 하겠습니다 그럼 시작하겠습니다 필수 라이브러리 임포트 - gradle 에 websocket 임포트 // WebSocket implementation 'org.springframework.boot:spring-boot-starter-websocket' websocket Handler 작성 웹 소켓 클라이언트로부터 채팅 메.. 토이 프로젝트/Spring&Java 갖고놀기 2022. 8. 24. DataPlay Project - 2 : 이미지 텍스트 번역기 (2) 코드 정리 DataPlay - 데이터 갖고 놀기 2탄 : 이미지 번역기 코드 정리 이번 글에는 해당 프로젝트의 코드를 정리해보겠습니다 1. 파파고 API - 파파고 API 는 네이버의 파파고 라는 번역기를 사용할 수 있도록 하는 API 이다. - 당연히 파파고 api 를 사용하기 위한 시크릿키와 아이디값이 있는데 해당 값들은 APIdata 라는 인터페이스 안에 따로 선언해두었다. - 파파고 API 를 사용해서 view 에서 들어오는 데이터를 번역 할 수 있도록 한다. - 네이버 개발자 API 센터에 어떻게 사용하는지 아주 자세하게!! 정말 자세하게 적혀있다. 아래 있는 코드는 해당 코드를 내가 필요한것에 맞게 변형시켜서 만든 코드이다. - 내가 추가한 코드는 주로 번역될 언어를 선택하는 getSource 메소드, .. 토이 프로젝트/Spring&Java 갖고놀기 2022. 6. 11. 이전 1 2 3 4 다음 728x90 반응형