inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

아키텍처 질문입니다

미해결

웹소켓/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

비동기 await 관련

해결됨

실전! FastAPI 활용(비동기)

기존에는 fastapi를 간략하게 이해하고, async def를 쓰면 비동기처리를 수행한다고 해서, 사용하였지만, 비동기처리가 안 되길래, 무슨 문제인지 몰랐는데, await를 추가해줘야 한다는 것을 알게 되었습니다. 그러면 강의에서는 네트워크 IO를 발생시키는 작업에 대해서는 await를 사용하신다고 하고, ORM 객체 명령어는 동기처리를 해도 된다고 하셨는데, commit이랑 DB에서 사용되는 CRUD가 주로 네트워크 IO를 발생시키는 작업이라고 이해해도 되는걸까요?

  • python
  • FastAPI
  • websocket
  • asyncio
  • pubsub
문승주 댓글 2 좋아요 0 조회수 122

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

소스파일

해결됨

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

깃 또는 소스파일은 어디서 확인할 수 있죠?

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

비동기 API 사용시 단점? 주의사항? 이 따로 있을까요?

해결됨

실전! FastAPI 활용(비동기)

안녕하세요 강사님. 해당 강의 정말 재밌게 잘 들었습니다. 다름이 아니라 강의 들으면서 커리큘럼 내에 비동기 API 사용시 단점이라거나 문제점 또는 주의사항 같은 내용을 못봤던 것 같은데 실무에서 비동기 API 를 적용하려 할 때 일반적인 동기 API 개발에 비해 주의해야 할 사항 같은 게 있을까요? run_in_threadpool 동작하는 걸 보면 거의 완벽한 프레임워크 같고, 장고나 다른 프레임워크에 비해 단점도 없어보여서 질문드립니다.

  • python
  • FastAPI
  • asyncio
  • pubsub
박상훈 댓글 2 좋아요 0 조회수 320

쿼리, jpa 질문 있습니다.

해결됨

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

16:00 초에 보면 채팅 메세지를 가져오는데 이때 멤버 정보도 같이 가져오는 것 같다고 보여지는데 findByRoomOrderByCreatedTimeAsc를 호출할때 쿼리가 어떻게 날아가는지 이해가 잘 안되서 질문드립니다. 메세지의 개수마다 멤버 테이블에 join해서 가져오는게 맞는걸까요?

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

erd 관련 질문있습니다.

해결됨

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

participant를 복합키인 채팅방id와 회원아이디를 message에 1대다로 연결하는것과 회원과 채팅방의 pk를 가져와 메세지에 연결하는 방식의 차이 부분이 잘 이해가 안되서 두 방식의 차이와 성능의 차이가 있는지에 대해 조금 더 자세한 설명을 들을 수 있을까요?

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

강의 자료 질문

해결됨

실전! FastAPI 활용(비동기)

안녕하세요! 혹시 강의 진행 시 사용하는 강의 자료를 공유받을 수 있을까요?

  • python
  • FastAPI
  • websocket
  • asyncio
  • pubsub
leorivk 댓글 2 좋아요 0 조회수 126

메시지 브로커

해결됨

실전! FastAPI 활용(비동기)

안녕하세요, Redis Pub/Sub 수강 중 위와 같이 메시지 브로커에 문제가 있는 것 같은데, 백엔드 지식이 부족해서 정확히 어떤 부분에서부터 원인을 찾아야할지 모르겠습니다. 서버/컨테이너 재시작 해봤는데 동일한 걸로 봐서 다른 문제인 것 같아서 도움 요청드립니다. https://github.com/wozlsla/fastapi-async/blob/prac/src/shared/message_broker.py

  • python
  • FastAPI
  • websocket
  • asyncio
  • pubsub
짐니 댓글 2 좋아요 0 조회수 140

인기 태그

인프런 TOP Writers

주간 인기글