inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

섹션6. 메시지 읽음처리, 채팅방 나가기, 11분 25초

해결됨

웹소켓/STOMP 채팅서비스(spring, vue, redis)

안녕하세요 선생님, 섹션6. 메시지 읽음처리, 채팅방 나가기, 11분 25초 쯤에 findByChatRoomAndMember(chatRoom, member); 코드로 모든 readStatus를 가져와서 읽음 처리를 하는 것으로 보입니다. 읽지 않음 상태의 readStatus만 가져와서 읽음 상태로 바꿔주어도 상관이 없을까요 ? 좋은 강의 정말 감사합니다.

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
김태우 댓글 2 좋아요 0 조회수 133

프런트쪽을 vue를 사용하지 않고도 구현 가능할까요??

해결됨

웹소켓/STOMP 채팅서비스(spring, vue, redis)

안녕하세요 ㅎㅎ 채팅 시스템이 있는 프로젝트를 구현하고 싶어서 강의 수강중에 있습니다 :) 현재 진행중인 프로젝트 구조는 msa 구조로 프런트-게이트웨이-유레카-백엔드 이런식으로 있고 프런트쪽은 html+js+spring feignClient로 이루어져 있습니다. 다른 프레임워크를 사용하지 않고 html과 js로만 구현이 가능케 해야하는데 vue를 사용하지 않고도 강의에서 다루고 있는 채팅 시스템을 문제없이 구현이 가능한지 궁금해서 여쭤봅니다!!

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
신현섭 댓글 2 좋아요 0 조회수 187

타입체크 관련질문입니다.

미해결

[최신] Vue 강의 끝판왕 : Nuxt 3 완벽 마스터

이와같이 npm install -D vue-tsc typescript를 했음에도 타입체크가 안되고있는모습입니다 이유를 알수있을까요? 또한 강의교안대로 했을때 이렇게되고 npm run lint를하면 kimchanghun@gimchancBookAir learn-nuxt-3 % npm run lint > lint > eslint "**/*.{ts,tsx,vue,js}" --fix Oops! Something went wrong! :( ESLint: 8.57.1 Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './config' is not defined by "exports" in /Users/kimchanghun/learn-nuxt-3/node_modules/eslint/package.json imported from /Users/kimchanghun/learn-nuxt-3/eslint.config.js at exportsNotFound (node:internal/modules/esm/resolve:314:10) at packageExportsResolve (node:internal/modules/esm/resolve:661:9) at packageResolve (node:internal/modules/esm/resolve:774:12) at moduleResolve (node:internal/modules/esm/resolve:854:18) at defaultResolve (node:internal/modules/esm/resolve:984:11) at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:685:12) at #cachedDefaultResolve (node:internal/modules/esm/loader:634:25) at ModuleLoader.resolve (node:internal/modules/esm/loader:617:38) at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:273:38) at ModuleJob._link (node:internal/modules/esm/module_job:135:49) 이런오류가뜹니다!

  • vue.js
  • nuxt.js
  • pinia
  • vue-3
김창훈 댓글 1 좋아요 1 조회수 264

강의 듣기 전 질문

해결됨

웹소켓/STOMP 채팅서비스(spring, vue, redis)

프로젝트에서 IOT와 결합한 게임을 만들 예정인데, 실시간 통신인 Websocket이 필요하다고 해서 강의를 급하게 결제하였습니다. 여기에서는 실시간 채팅을 구현하는 걸로 보이는데 혹시 여기 내용을 공부하면 프로젝트에 실시간 통신 방식에서도 활용할 수 있을까요? 실시간 방 생성이나 IOT 현물과의 통신에서 WebSocket을 이용할거 같습니다.

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
edwin.dkim 댓글 1 좋아요 0 조회수 116

jwt 인증, 검증 질문입니다.

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

안녕하세요. jwt 11 버전 설명해주시면서 생성과 검증에 대한 궁금증이 생기는데요. 생성을 위해서는 base64로 인코딩 된 값을 디코더 하신 뒤 SecretKeySpec을 이용한 뒤 HS512로 암호화 하셨는데요. 검증 부분에서는 base64로 인코딩 된 값(디코더와 SecretKeySpec가 이루어지지 않은 채로)으로 토큰 검증 및 claims를 추출하는데 이 부분에서 문제가 없는 걸까요?

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
sw 댓글 2 좋아요 0 조회수 176

소켓 메모리낭비

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

안녕하세요. 강의를 보고 소켓이 연결될 때 로그를 남겨봤는데, 살펴보니 이유 없이 소켓 연결이 많이 생성되어 있는 것을 확인했습니다. 이런 경우 선생님께서는 어떻게 해결하셨나요? 소켓 메모리 낭비를 해결하셨다고 들었던 것 같아서 여쭤봅니다.

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
우유소보루 댓글 2 좋아요 0 조회수 152

subscribe와 publish시 인증

해결됨

웹소켓/STOMP 채팅서비스(spring, vue, redis)

현재 코드에 if (StompCommand.CONNECT==accessor.getCommand()){ System.out.println("connect 요청 시 토큰 유효성 검증"); String bearerToken = accessor.getFirstNativeHeader("Authorization"); String token= bearerToken.substring(7); Connect 시에만 인증을 요구하는데 Stomp 연결 이후 publish와 subscribe 시에는 STOMP에서 인증이 자동으로 되는건가요? 아니면 현재 코드에서 작성하지 않은 것인가요?

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
심심이 댓글 2 좋아요 0 조회수 165

사람인 글자수 세기 강의에서 관련자료 문의 건

미해결

핵심만 골라 배우는 Vue.js

안녕하세요. 사람인 글자수 세기 강의를 수강중인데, 관련자료가 다운받은 예제 코드의 8.computed&watch 폴더 하위의 12번 예제 코드를 확인해달라고 하셨는데 12번 폴더가 누락되어 문의드립니다 .

  • vue.js
  • pinia
  • vue-3
JEK 댓글 2 좋아요 0 조회수 231

post/[id]/index.vue에서 layouts/default.vue가 안 나오는 데 어떤 이유일까요?

미해결

Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)

현재 디폴트 레이아웃이 나오지 않아, 막히고 있습니다ㅠ quasar.config.js 실행시 localhost:9000/ 경로에서는 잘 나오고 있습니다 확인결과 아래 코드를 추가해주어야만 헤더가 잘 뜹니다.. <route lang="yaml"> meta: layout: default </route>

  • vue.js
  • firebase
  • quasar
  • algolia
  • vue-3
NODE 댓글 2 좋아요 0 조회수 180

실시간 메시지 읽지 않음 표시 SSE 질문 드립니다.

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

읽지 않은 메시지 표시를 SSE로 한번 구현 해보라고 하셨는데, 웹소켓이나 stomp를 써도 상관 없나요? 토큰 정보는 상황에 따라 저장 위치(쿠키 or 로컬스토리지)를 다르게 개발 하나요? 그렇다면 통상 실무에서는 토큰 정보를 어디에 저장 하는지 그리고 몇 가지 예시 좀 부탁 드립니다.

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
ㅌㅇ 댓글 2 좋아요 0 조회수 242

세션이 종료되는데 이유를 찾지 못하겠습니다..

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

채팅방 목록 메뉴에서 참여하기를 눌렀을때 connect sessiond IDnubkqe0a total session1 subscribe 검증 sub 토큰 검증 완료 Destination: /topic/1 roomId: 1 Hibernate: select cr1_ 0.id ,cr1_0.created_time,cr1_ 0.is _group_chat,cr1_ 0.name ,cr1_0.updated_time from chat_room cr1_0 where cr1_ 0.id =? disconnect sessiond IDnubkqe0a total session0 서버에서 세션 종료 감지: nubkqe0a 세션이 자동으로 종료됩니다.. 당연히 채팅 메세지도 화면에 안나오는데 토큰 검증은 StompWebSocketConfig 에서 다 되는 것 같은데... 잘모르겠습니다 의심가는 로직이 있으신가요 ?

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
열심인 참새 댓글 4 좋아요 0 조회수 305

로컬 스토리지에 토큰 저장하는 방식 질문입니다!

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

보통 토큰을 로컬 스토리지에 저장하나요? 그러면 명시적으로 로그아웃을 누르지 않는이상은 클라이언트가 로컬스토리지 비우는 방식을 사용해서 토큰을 초기화 하지는 않을 것 같은데 혹시 강의에서 로컬 스토리지 말고 쿠키 같은 것에 저장하는 내용이 뒤에서 나오나요? 안나온다면 어떤식으로 처리해야하나요? 서버에서 토큰을 내려보내줄때 쿠키에 담아서 내려보내주어야 하는건가요 ?

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
열심인 참새 댓글 2 좋아요 0 조회수 166

강사님 질문있습니다~

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

http,websocket의 비교라는 챕터에서는(12:07) 처음에 http 요청으로 연결을 맺는다라고 하셨는데 순수웹소켓-백엔드 강의에서는 (6:20) http 요청이 아니기 때문에 컨트롤러에서 안받고 핸들러에서 받는다고 하셨는데 중요한 개념인 것 같아서 어떻게 이해하면 될까요? 검색해보니까 처음에 연결은 http 요청에 get이 맞고 헤더에 웹소켓 요청이라는 정보가 있으므로 http 요청과는 구분된다라는 정보가 있는데 잘 모르겠어요~

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
열심인 참새 댓글 2 좋아요 1 조회수 166

강사님 프로젝트 디렉토리 구조에 대해서 질문있어요!

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

보통 contoller service repository 이렇게 폴더 두고 그 안에서 여러개의 MemerConroller ChatController 이런식으로 나누는 것만 봐서 chat과 member 디렉토리를 나누고 그 안에서 다시 controller 디렉토리하고 만드는 방법을 처음 써보는데요~ 저는 강사님 방법이 더 좋은데 보통 어떻게 사용하나요? 특별히 강사님 처럼 디렉토리 나눈 이유가 있을까요 ??

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
열심인 참새 댓글 2 좋아요 0 조회수 137

싱글톤 객체 질문있습니다.

해결됨

웹소켓/STOMP 채팅서비스(spring, vue, redis)

@Bean public PasswordEncoder makePassword() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } 이거를 싱글톤 객체로 만들어주셨는데요 그런데 String encodedPassword = passwordEncoder.encode(memberSaveReqDto.getPassword()); 이부분을 static 으로 두고 참조변수를 사용해서 사용하는 것과 어떤 차이가 있나요? 찾아보니 전역변수는 static 이니까 메모리에 미리 올라가고 싱글톤은 사용할떄 올라가는 장점이 있다고 하는데 이 예시는 어차피 클래스 초기화될 때 생성되니까 그런 장점이 없을 것 같은데... 궁금합니다.

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
열심인 참새 댓글 2 좋아요 0 조회수 135

메시지 저장순서에 대한 질문입니다.

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

안녕하세요 수업을 바탕으로 프로젝트 적용중입니다. 프론트에서 채팅입력하면 백엔드의 연결된 소켓에서 이를 redis 로 publish 하고 이때 같이 채팅메시지를 db에 저장하는 방식으로 구현했습니다. 나중에 채팅방에 다시 입장하는 경우 채팅 저장 날짜를 기반으로 일부 가져오려하니 초까지 같은 경우 순서가 엉키는 현상이 발생하는데 auto_increment 로 저장한 pk 를 순서로 가져와도 될까요? redis 는 싱글스레드이지만 websocket 가 병렬처리되면 결국 pk 순서가 실제 순서를 보장할 수 있을까요?

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
minjun 댓글 2 좋아요 0 조회수 128

Cross-Origin-Opener-Policy policy would block the window.closed call.

미해결

Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)

Pinia setup stores user 사용자 관리 8분 32초에 아래 에러가 나오는데, 별다른 언급이 없는데, 뒤에 해결을 하는지요? 답변 주시면 감사하겠습니다. Cross-Origin-Opener-Policy policy would block the window.closed call.

  • vue.js
  • firebase
  • quasar
  • algolia
  • vue-3
댓글 2 좋아요 0 조회수 484

채팅 메시지 저장에 관한 질문입니다.

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

채팅 메시지를 보낼 때마다 db에 접근해서 저장하는 방식이면 디스크 io 작업이 굉장히 잦아질 거 같은데 보통 이런 경우에는 redis 를 쓴다면 redis에 저장해두었다가 스케줄링같은 방식으로 한번에 db에 저장하는 방식을 사용하는 걸까요?

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
minjun 댓글 2 좋아요 0 조회수 132

stomp관련 질문입니다.

미해결

웹소켓/STOMP 채팅서비스(spring, vue, redis)

현재 메세지만 redis에 저장해서 공통적으로 사용되는 것으로 생각하는데 사용자의 연결정보는 각각의 서버가 가지고 있고 redis에서 메세지가 발행되는 경우 각각의 서버에서 연결된 사용자에게 메세지를 전달한다고 이해하면 될까요?

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
hxcva1 댓글 2 좋아요 0 조회수 141

인기 태그

인프런 TOP Writers

주간 인기글