inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

CORS 설정 어떻게 하셨나요?

미해결

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

원래는 백엔드에서 진행 하는걸로 알고 있는데, 간단하게 하기 위해서 프론트쪽에서 설정을 몇 번이고 진행 했는데도 불구하고 계속해서 cors 에러가 납니다. 강의에서는 따로 cors 설정을 하셨던건 안 나온거 같은데, cors 설정 어떻게 하셨는지 질문 드립니다. (vue.config.js) const { defineConfig } = require('@vue/cli-service'); module.exports = defineConfig({ transpileDependencies: true, devServer: { proxy: { member: { target: 'http://localhost:8080', changeOrigin: true, pathRewrite: { '^/member': '', }, }, }, }, });

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

강의 내 1 번 방법에 대한 질문

미해결

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

강의 설명중 1 번 방법에서 누가 서버에 커넥션을 맺고 있고 subscribe 하는지 서버에 메모리를 만들어서 관리하는 로직을 사용한다고 하셨는데 이전에 강의에서 배운내용에 따르면 스프링과 stomp 는 기본적으로 세션관리를 내부적으로 처리한다고 하셔서 즉 저희가 직접 접근을 하지못하는데 이러면 이벤트 리스너로 따로 sessions라는 자료구조를 만든 것을 활용해서 코드를 작성해야 하잖아요 ? 그리고 세션은 랜덤으로 스프링에서 생성하는데 이러면 세션이 몇개인지 카운트 및 각각 세션id가 부여되긴하는데 그게 어떤 사용자인지 구분이 안되기에 StompHandler에서 connect 맺을때 검증 후에 추가적으로 이메일정보를 String email = claims.getSubject(); accessor.getSessionAttributes().put("email", email); 로 설정해서 이벤트 리스너에 넘겨서 세션을 저장하는 식으로 생각했는데 맞을까요 ? 이후 서버에서 처리할때 subscribe하면서 , 동시에 누가 서버에 커넥션을 맺고있는지 아닌지 여부를 파악하는 (다소 복잡한) 로직을 작성해서 처리할 수 있다 이게 맞는 흐름일까요 ?

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

(해설) computed 사용하기 -2 자료 누락

미해결

핵심만 골라 배우는 Vue.js

자료가 누락되었네요~ 확인 요청 드립니다~

  • vue.js
  • pinia
  • vue-3
김주원 댓글 2 좋아요 0 조회수 216

radio 에서 name 생략 가능여부

미해결

핵심만 골라 배우는 Vue.js

안녕하세요~ radio 에서 name 을 안적어도 정상 작동하는데, name을 생략해도 될까요? 답변 주시면 감사하겠습니다. <input type="radio" value="male" v-model="field" /> male <input type="radio" value="female" v-model="field" /> female

  • vue.js
  • pinia
  • vue-3
김주원 댓글 2 좋아요 0 조회수 153

npm 한번에 추가하기

해결됨

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

npm install vue-router && npm install axios && npm install vuetify@3 && npm install jwt-decode && npm install sockjs-client && npm install webstomp-client 질문은 아니고 한번에 추가할수 있는 명령어 공유하면 좋을거 같아서 작성합니다!

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
nhs0912 댓글 1 좋아요 1 조회수 150

jwt토큰 & 시큐리티 질문이요

미해결

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

안녕하세요. 토큰 발행, 검증 및 시큐리티 코드가 좀 복잡 하다고 느끼는데요. 이거는 한번만 개발 해놓으면 다른 곳에서도 그대로 혹은 유사하게 가져다 쓸 수 있는건가요? 시큐리티 코드는 반복 되는 패턴 혹은 개념인가요?

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

return type ?에 대해서

미해결

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

@PostMapping("/doLogin") public ResponseEntity<?> doLogin(@RequestBody MemberLoginRequestDto memberLoginRequestDto) { //email, password 검증 Member member = memberService.login(memberLoginRequestDto); //일치할 경우 access token 발행 String jwtToken = jwtTokenProvider.createToken(member.getEmail(), member.getRole().toString()); Map<String, Object> loginInfo = new HashMap<>(); loginInfo.put("id", member.getId()); loginInfo.put("token", jwtToken); return new ResponseEntity<>(loginInfo, HttpStatus.OK); } 어찌보면 자바 질문일수도 있는데요. 수업 내용 듣다가 궁금해서요! 여기 메서드 보시면 return type이 ? 사용하였는데요. ?는 어떤 타입이 와도 통과 되는 거라고 알고 있는데요. 명시적으로 특정타입으로 표현을 해도 될거 같은데 그냥 교육상 ?로 하신건가요? 실제 실무에서도 ?를 자주 사용할까요?? 코딩하다가 궁금해서 여쭤봅니다 ㅋㅋ

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
nhs0912 댓글 2 좋아요 1 조회수 107

jwt 인증 질문입니다.

미해결

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

현재 connect 할때 토큰이 올바른지 확인하는데 이후 메세지를 저장할때 보낸 유저를 판단할때 이메일 정보를 이용해 보낸사람의 이메일로 유저를 찾는데 이경우 잘못될 가능성이 높을것 같아 처음 connection을 할때 저장해 두고 이걸 이용해서 보낸 유저를 구분하고 싶은데 어떻게 하는게 좋을까요?

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

redis-cli 명령어로 pubsub channels 확인하는 방법

미해결

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

redis-cli 명령어로 pubsub channels 확인하는 방법 강사님 처럼 하고나서 3000 포트와 3001 포트에서 서로 채팅하는 것 까지 테스트 해봤습니다. 근데 여기서 pubsub channels 명령어로 저는 chat 이라는 값이 나올줄 아랑ㅆ는데 empty array라는 값이 나옵니다. 원래 이런가요?

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

아키텍처 질문입니다

미해결

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

이 아키텍처 기준으로 질문이 있습니다. client1번 -> LB -> 서버 -> 레디스 -> 서버 -> client2 이런 식으로 메세지를 주고 받는다고 하셨는데, 그렇다면 만약에 레디스 서버가 다운이 된다면 client2번은 메세지를 못 받게 되는건가요? 이런 경우는 어떻게 대비 해야 하나요? 레디스는 서버 한대에만 구성 해놓나요?

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

수업자료 한번에 다운받기

미해결

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

수업자료 한번에 다운 받고 싶은데요. 압축파일로 올려주실수 있나요?

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

웹소켓,stomp 개념 질문 !

미해결

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

바로 이전 강의에서는 순수 웹소켓에서는 토큰인증 구현안하고 기능만 돌아가도록 했음 최종강의 목표는 (stomp에서 고도화 하는 것이므로) 물론 할라면 할 수있음 예시): 쿼리 파라미터 방식으로 토큰을 포함한 WebSocket 연결 그리고 WebSocket 자체는 HTTP 헤더를 설정하는 기능을 제공하지 않기 때문에 순수 웹소켓에서는 헤더에 인증 토큰을 추가할 수 없음. ............................................................................ 이번강의에서는 토큰인증 구현할때 SockJS와 STOMP 같은 라이브러리를 사용하면 HTTP 헤더에 인증 정보를 포함시킬 수 있기에 헤더에 인증정보 포함 시켜 서버로 넘기는 식으로 구현 ! 그리고 뷰 메인에서 axios.interceptors.request.use( config => { const token= localStorage.getItem("token"); if(token){ config.headers['Authorization']= Bearer ${token} } return config; }, error => { return Promise.reject(error); } ) 이런 식으로 추가 하는 것은 HTTP 요청에 한에서 이므로 별도임 stomp의 connection 은 HTTP 엔드포인트긴하지만 HTTP 요청이 아닌 ws 요청임 따라서 뷰 메인에서 가로채서 요청에 인증 정보 넣지 않음 따라서 connec t할때 직접 헤더에 넣어야 함 .......................................................................................... 으로 이해했는데 맞을까요 ? 혹시 틀린 개념이나 빠진 부분이 있으면 알려주시면 감사하겠습니다!

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

로컬이 안뜹니다..

미해결

Vue 3 시작하기

로컬 화면이 강사님과 동일하게 뜨지 않는데.. 어떻게 하면 될까요..?

  • javascript
  • vue.js
  • vue-3
seoyeun406 댓글 1 좋아요 0 조회수 141

eslint prettier 설정 오류

미해결

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

강의 교안대로 따라 설정했는데.. 문서 작성만하면 이런 빨간 오류들이 뜹니다,,

  • vue.js
  • nuxt.js
  • pinia
  • vue-3
너굴판다 댓글 2 좋아요 0 조회수 233

Stomp과 웹소켓 프로토콜

미해결

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

connect할 때 웹소켓은 ws프로토콜 stomp는 http프로토콜을 사용하는건가요? 연결 후 메시지를 주고 받을 때 웹소켓은 ws프로토콜 stomp도 ws프로토콜을 사용하는건가요?

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

질문있습니다!!

해결됨

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

container.addMessageListener(listenerAdapter, new PatternTopic("chat")); 해당 코드에서 chat은 redis에서 저장될 key 값인가요??

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

질문있습니다

해결됨

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

채팅과 관련된 API를 설계할 때 보면 Controller 레이어에서 @AuthenticationPrincipal 파라미터를 사용해서 사용자의 정보를 가지고 오는 것이 아닌 Service 레이어에서 SecurityContextHoler를 통해 사용자의 정보를 가지고 오는데 이는 웹소켓 같은 경우에는 Header에 JWT 토큰 정보를 담을 수 없기 때문이다라고 이해하면 될까요??

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

프론트코드 받을 수 있나요

해결됨

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

정말 강의잘 듣고있습니다 다름이아니라 빠르게 서버만 진행하고싶은데 프론트 코드저장소가있으시다면 받을 수 있나요? 아니면은 스톰프를 테스트할 수 있는 팁이있나요?

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

DISCONNECT 질문이 있습니다.

미해결

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

안녕하세요, 일단 양질의 강의를 올려주셔서 감사하다는 말씀을 드립니다.다름이 아니라, 화면을 그리지 않고 단순히 백엔드 소스를 구현하면서 강의를 진행하고있습니다.https://jiangxy.github.io/websocket-debug-tool/라는 사이트에서 Connect(STOMP), pub/sub을 테스트 중입니다.그 과정에서 DISCONNECT를 진행할 경우, 아래와 같은 에러 메세지가 발생합니다. ava.lang.IllegalStateException: Message will not be sent because the WebSocket session has been closed at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:455) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlockInternal(WsRemoteEndpointImplBase.java:313) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:266) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:250) at org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:223) at org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:48) at org.springframework.web.socket.adapter.standard.StandardWebSocketSession.sendTextMessage(StandardWebSocketSession.java:217) at org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:108) at org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator.tryFlushMessageBuffer(ConcurrentWebSocketSessionDecorator.java:190) at org.springframework.web.socket.handler.ConcurrentWebSocketSessionDecorator.sendMessage(ConcurrentWebSocketSessionDecorator.java:163) at org.springframework.web.socket.messaging.StompSubProtocolHandler.sendToClient(StompSubProtocolHandler.java:529) at org.springframework.web.socket.messaging.StompSubProtocolHandler.handleMessageToClient(StompSubProtocolHandler.java:516) at org.springframework.web.socket.messaging.SubProtocolWebSocketHandler.handleMessage(SubProtocolWebSocketHandler.java:386) at org.springframework.messaging.support.ExecutorSubscribableChannel$SendTask.run(ExecutorSubscribableChannel.java:152) at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572) at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:317) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java) at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1583) 해당 문제를 해결하기 위해, 관련해서 자료를 검색해보았지만 해결하지 못해 질문을 드립니다. 혹시 확인을 해보아야할 메소드나 검색 키워드를 알려주실 수 있을까요? 이미지도 첨부드립니다.

  • spring-boot
  • websocket
  • stomp-websocket
  • pubsub
  • vue-3
John 댓글 3 좋아요 1 조회수 284

인기 태그

인프런 TOP Writers

주간 인기글