묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
미해결핵심만 골라 배우는 Vue.js
vscode extension에서 volar검색하면 Vue Language Features(Volar)가 검색이 안되는데요
제목의 질문 내용과 동일 합니다.
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
return type ?에 대해서
@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이 ? 사용하였는데요. ?는 어떤 타입이 와도 통과 되는 거라고 알고 있는데요. 명시적으로 특정타입으로 표현을 해도 될거 같은데 그냥 교육상 ?로 하신건가요? 실제 실무에서도 ?를 자주 사용할까요?? 코딩하다가 궁금해서 여쭤봅니다 ㅋㅋ
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
jwt 인증 질문입니다.
현재 connect 할때 토큰이 올바른지 확인하는데이후 메세지를 저장할때 보낸 유저를 판단할때 이메일 정보를 이용해 보낸사람의 이메일로 유저를 찾는데 이경우 잘못될 가능성이 높을것 같아 처음 connection을 할때 저장해 두고 이걸 이용해서 보낸 유저를 구분하고 싶은데 어떻게 하는게 좋을까요?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
redis-cli 명령어로 pubsub channels 확인하는 방법
redis-cli 명령어로 pubsub channels 확인하는 방법강사님 처럼 하고나서 3000 포트와 3001 포트에서 서로 채팅하는 것 까지 테스트 해봤습니다.근데 여기서 pubsub channels 명령어로 저는 chat 이라는 값이 나올줄 아랑ㅆ는데 empty array라는 값이 나옵니다. 원래 이런가요?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
아키텍처 질문입니다
이 아키텍처 기준으로 질문이 있습니다.client1번 -> LB -> 서버 -> 레디스 -> 서버 -> client2이런 식으로 메세지를 주고 받는다고 하셨는데,그렇다면 만약에 레디스 서버가 다운이 된다면client2번은 메세지를 못 받게 되는건가요?이런 경우는 어떻게 대비 해야 하나요?레디스는 서버 한대에만 구성 해놓나요?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
수업자료 한번에 다운받기
수업자료 한번에 다운 받고 싶은데요. 압축파일로 올려주실수 있나요?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
웹소켓,stomp 개념 질문 !
바로 이전 강의에서는 순수 웹소켓에서는 토큰인증 구현안하고 기능만 돌아가도록 했음 최종강의 목표는 (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할때 직접 헤더에 넣어야 함 ..........................................................................................으로 이해했는데 맞을까요 ? 혹시 틀린 개념이나 빠진 부분이 있으면 알려주시면 감사하겠습니다!
-
미해결Vue 3 시작하기
로컬이 안뜹니다..
로컬 화면이 강사님과 동일하게 뜨지 않는데.. 어떻게 하면 될까요..?
-
미해결[최신] Vue 강의 끝판왕 : Nuxt 3 완벽 마스터
eslint prettier 설정 오류
강의 교안대로 따라 설정했는데.. 문서 작성만하면 이런 빨간 오류들이 뜹니다,,
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
Stomp과 웹소켓 프로토콜
connect할 때 웹소켓은 ws프로토콜 stomp는 http프로토콜을 사용하는건가요? 연결 후 메시지를 주고 받을 때 웹소켓은 ws프로토콜 stomp도 ws프로토콜을 사용하는건가요?
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
질문있습니다!!
container.addMessageListener(listenerAdapter, new PatternTopic("chat")); 해당 코드에서 chat은 redis에서 저장될 key 값인가요??
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
질문있습니다
채팅과 관련된 API를 설계할 때 보면 Controller 레이어에서 @AuthenticationPrincipal 파라미터를 사용해서 사용자의 정보를 가지고 오는 것이 아닌 Service 레이어에서 SecurityContextHoler를 통해 사용자의 정보를 가지고 오는데 이는 웹소켓 같은 경우에는 Header에 JWT 토큰 정보를 담을 수 없기 때문이다라고 이해하면 될까요??
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
프론트코드 받을 수 있나요
정말 강의잘 듣고있습니다 다름이아니라 빠르게 서버만 진행하고싶은데 프론트 코드저장소가있으시다면 받을 수 있나요? 아니면은 스톰프를 테스트할 수 있는 팁이있나요?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
DISCONNECT 질문이 있습니다.
안녕하세요, 일단 양질의 강의를 올려주셔서 감사하다는 말씀을 드립니다.다름이 아니라, 화면을 그리지 않고 단순히 백엔드 소스를 구현하면서 강의를 진행하고있습니다.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)해당 문제를 해결하기 위해, 관련해서 자료를 검색해보았지만 해결하지 못해 질문을 드립니다.혹시 확인을 해보아야할 메소드나 검색 키워드를 알려주실 수 있을까요?이미지도 첨부드립니다.
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
소스파일
깃 또는 소스파일은 어디서 확인할 수 있죠?
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
쿼리, jpa 질문 있습니다.
16:00 초에 보면 채팅 메세지를 가져오는데 이때 멤버 정보도 같이 가져오는 것 같다고 보여지는데 findByRoomOrderByCreatedTimeAsc를 호출할때 쿼리가 어떻게 날아가는지 이해가 잘 안되서 질문드립니다. 메세지의 개수마다 멤버 테이블에 join해서 가져오는게 맞는걸까요?
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
erd 관련 질문있습니다.
participant를 복합키인 채팅방id와 회원아이디를 message에 1대다로 연결하는것과 회원과 채팅방의 pk를 가져와 메세지에 연결하는 방식의 차이 부분이 잘 이해가 안되서 두 방식의 차이와 성능의 차이가 있는지에 대해 조금 더 자세한 설명을 들을 수 있을까요?
-
미해결[최신] Vue 강의 끝판왕 : Nuxt 3 완벽 마스터
clearNuxtState() 사용 문의
<q-btn label="clear" @click="clearNuxtState()" />안녕하세요. Nuxt 상태관리 : useState() 강의를 듣던 중 그대로 코딩을 따라했는데요. clearNuxtState() 이 버튼을 생성하자 이 메서드에서 사용할수 없다고 빨간색으로 표시 되는데요. ERROR(vue-tsc) Property 'clearNuxtState' does not exist on type 'CreateComponentPublicInstanceWithMixins<ToResolvedProps<{}, {}>, { counter: Ref<number, number>; sameCounter: Ref<number, number>; }, {}, {}, {}, ComponentOptionsMixin, ... 19 more ..., {}>'. FILE /Users/Documents/workspace/onego-front/pages/about.vue:43:42 41 | </div> 42 | <div> > 43 | <q-btn label="clear" @click="clearNuxtState()" /> | ^^^^^^^^^^^^^^ 44 | </div> 45 | </div> 46 |[vue-tsc] Found 1 error. Watching for file changes. 이와 같이 에러가 나는데요..왜 나는지 도저히 모르겠네요.. 짐코딩님 repository에서 about 페이지 소스 그대로 복사해서 붙여놨는데도 해당부분에 빨간색이 나오더라고요 ㅠ
-
미해결[최신] Vue 강의 끝판왕 : Nuxt 3 완벽 마스터
nuxt 빌드 환경 질문드립니다!
안녕하세요, 짐코딩님!항상 좋은 강의 제공해 주셔서 감사합니다. 덕분에 많은 도움을 받고 있습니다! 😊 Nuxt 3를 빌드할 때 기본적으로 production 모드로 진행되는 것으로 알고 있는데요.이를 local, dev, prod 등의 환경 기준으로 변경하려면 어떤 방식으로 설정하면 좋을까요?감사합니다! 🙏
-
미해결[최신] Vue 강의 끝판왕 : Nuxt 3 완벽 마스터
피니아 persist 질문드립니다!
안녕하세요 짐코딩님,강의 잘 듣고 있습니다!강의 듣다가 궁금한게 있어서 질문드려요!피니아 persist 사용하면서 localStorage 또는 sessionStorage에 저장할 때 암호화해서 저장하는 방법이 있을까요?
주간 인기글
순위 정보를
불러오고 있어요