묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
안녕하세요 리프레시 토큰을 사용하면 대략적으로 어떤 점이 바뀌게 되는건가요??
안녕하세요 강사님. 혹시 Refresh Token 을 사용하면 프론트엔드 코드에서 대략적으로 어떤 점이 바뀌게 되는건가요?
-
미해결핵심만 골라 배우는 Vue.js
사람인 글자수 세기 강의에서 관련자료 문의 건
안녕하세요.사람인 글자수 세기 강의를 수강중인데,관련자료가 다운받은 예제 코드의8.computed&watch 폴더 하위의 12번 예제 코드를 확인해달라고 하셨는데12번 폴더가 누락되어 문의드립니다.
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
post/[id]/index.vue에서 layouts/default.vue가 안 나오는 데 어떤 이유일까요?
현재 디폴트 레이아웃이 나오지 않아, 막히고 있습니다ㅠ quasar.config.js 실행시 localhost:9000/ 경로에서는 잘 나오고 있습니다 확인결과 아래 코드를 추가해주어야만 헤더가 잘 뜹니다.. <route lang="yaml"> meta: layout: default </route>
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
실시간 메시지 읽지 않음 표시 SSE 질문 드립니다.
읽지 않은 메시지 표시를 SSE로 한번 구현 해보라고 하셨는데, 웹소켓이나 stomp를 써도 상관 없나요?토큰 정보는 상황에 따라 저장 위치(쿠키 or 로컬스토리지)를 다르게 개발 하나요?그렇다면 통상 실무에서는 토큰 정보를 어디에 저장 하는지 그리고 몇 가지 예시 좀 부탁 드립니다.
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
세션이 종료되는데 이유를 찾지 못하겠습니다..
채팅방 목록 메뉴에서 참여하기를 눌렀을때 connect sessiond IDnubkqe0atotal session1subscribe 검증sub 토큰 검증 완료Destination: /topic/1roomId: 1Hibernate: 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 IDnubkqe0atotal session0서버에서 세션 종료 감지: nubkqe0a세션이 자동으로 종료됩니다..당연히 채팅 메세지도 화면에 안나오는데토큰 검증은 StompWebSocketConfig 에서 다 되는 것 같은데... 잘모르겠습니다의심가는 로직이 있으신가요 ?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
로컬 스토리지에 토큰 저장하는 방식 질문입니다!
보통 토큰을 로컬 스토리지에 저장하나요?그러면 명시적으로 로그아웃을 누르지 않는이상은클라이언트가 로컬스토리지 비우는 방식을 사용해서 토큰을 초기화 하지는 않을 것 같은데혹시 강의에서 로컬 스토리지 말고 쿠키 같은 것에 저장하는 내용이 뒤에서 나오나요?안나온다면 어떤식으로 처리해야하나요?서버에서 토큰을 내려보내줄때 쿠키에 담아서 내려보내주어야 하는건가요 ?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
강사님 질문있습니다~
http,websocket의 비교라는 챕터에서는(12:07)처음에 http 요청으로 연결을 맺는다라고 하셨는데순수웹소켓-백엔드 강의에서는 (6:20)http 요청이 아니기 때문에 컨트롤러에서 안받고 핸들러에서 받는다고 하셨는데중요한 개념인 것 같아서 어떻게 이해하면 될까요?검색해보니까 처음에 연결은 http 요청에 get이 맞고 헤더에 웹소켓 요청이라는 정보가 있으므로 http 요청과는 구분된다라는 정보가 있는데 잘 모르겠어요~
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
강사님 프로젝트 디렉토리 구조에 대해서 질문있어요!
보통 contoller service repository 이렇게 폴더 두고 그 안에서 여러개의 MemerConrollerChatController이런식으로 나누는 것만 봐서chat과 member 디렉토리를 나누고그 안에서 다시 controller 디렉토리하고 만드는방법을 처음 써보는데요~저는 강사님 방법이 더 좋은데 보통 어떻게 사용하나요? 특별히 강사님 처럼 디렉토리 나눈 이유가 있을까요 ??
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
싱글톤 객체 질문있습니다.
@Bean public PasswordEncoder makePassword() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); }이거를 싱글톤 객체로 만들어주셨는데요그런데String encodedPassword = passwordEncoder.encode(memberSaveReqDto.getPassword()); 이부분을 static 으로 두고 참조변수를 사용해서 사용하는 것과 어떤 차이가 있나요?찾아보니 전역변수는 static 이니까 메모리에 미리 올라가고 싱글톤은 사용할떄 올라가는 장점이 있다고 하는데 이 예시는 어차피 클래스 초기화될 때 생성되니까 그런 장점이 없을 것 같은데...궁금합니다.
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
메시지 저장순서에 대한 질문입니다.
안녕하세요 수업을 바탕으로 프로젝트 적용중입니다.프론트에서 채팅입력하면 백엔드의 연결된 소켓에서 이를 redis 로 publish 하고 이때 같이 채팅메시지를 db에 저장하는 방식으로 구현했습니다.나중에 채팅방에 다시 입장하는 경우 채팅 저장 날짜를 기반으로 일부 가져오려하니 초까지 같은 경우 순서가 엉키는 현상이 발생하는데 auto_increment 로 저장한 pk 를 순서로 가져와도 될까요?redis 는 싱글스레드이지만 websocket 가 병렬처리되면 결국 pk 순서가 실제 순서를 보장할 수 있을까요?
-
미해결Vue 3 & Firebase 10 커뮤니티 만들기 풀스택 - "활용편" (with Pinia, Quasar, Tiptap, VueUse)
Cross-Origin-Opener-Policy policy would block the window.closed call.
Pinia setup stores user 사용자 관리8분 32초에 아래 에러가 나오는데, 별다른 언급이 없는데,뒤에 해결을 하는지요?답변 주시면 감사하겠습니다. Cross-Origin-Opener-Policy policy would block the window.closed call.
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
채팅 메시지 저장에 관한 질문입니다.
채팅 메시지를 보낼 때마다 db에 접근해서 저장하는 방식이면 디스크 io 작업이 굉장히 잦아질 거 같은데보통 이런 경우에는 redis 를 쓴다면 redis에 저장해두었다가 스케줄링같은 방식으로 한번에 db에 저장하는 방식을 사용하는 걸까요?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
stomp관련 질문입니다.
현재 메세지만 redis에 저장해서 공통적으로 사용되는 것으로 생각하는데 사용자의 연결정보는 각각의 서버가 가지고 있고 redis에서 메세지가 발행되는 경우 각각의 서버에서 연결된 사용자에게 메세지를 전달한다고 이해하면 될까요?
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
CORS 설정 어떻게 하셨나요?
원래는 백엔드에서 진행 하는걸로 알고 있는데,간단하게 하기 위해서 프론트쪽에서 설정을 몇 번이고 진행 했는데도 불구하고 계속해서 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': '', }, }, }, }, });
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
강의 내 1 번 방법에 대한 질문
강의 설명중 1 번 방법에서누가 서버에 커넥션을 맺고 있고 subscribe 하는지 서버에 메모리를 만들어서 관리하는 로직을 사용한다고 하셨는데 이전에 강의에서 배운내용에 따르면 스프링과 stomp 는 기본적으로 세션관리를 내부적으로 처리한다고 하셔서즉 저희가 직접 접근을 하지못하는데 이러면 이벤트 리스너로 따로 sessions라는 자료구조를 만든 것을 활용해서 코드를 작성해야 하잖아요 ? 그리고 세션은 랜덤으로 스프링에서 생성하는데 이러면 세션이 몇개인지 카운트 및 각각 세션id가 부여되긴하는데그게 어떤 사용자인지 구분이 안되기에 StompHandler에서 connect 맺을때 검증 후에 추가적으로 이메일정보를 String email = claims.getSubject();accessor.getSessionAttributes().put("email", email);로 설정해서 이벤트 리스너에 넘겨서 세션을 저장하는 식으로 생각했는데 맞을까요 ?이후 서버에서 처리할때 subscribe하면서 , 동시에 누가 서버에 커넥션을 맺고있는지 아닌지 여부를 파악하는 (다소 복잡한) 로직을 작성해서 처리할 수 있다 이게 맞는 흐름일까요 ?
-
미해결핵심만 골라 배우는 Vue.js
(해설) computed 사용하기 -2 자료 누락
자료가 누락되었네요~확인 요청 드립니다~
-
미해결핵심만 골라 배우는 Vue.js
radio 에서 name 생략 가능여부
안녕하세요~radio 에서 name 을 안적어도정상 작동하는데,name을 생략해도 될까요?답변 주시면 감사하겠습니다. <input type="radio" value="male" v-model="field" /> male <input type="radio" value="female" v-model="field" /> female
-
해결됨웹소켓/STOMP 채팅서비스(spring, vue, redis)
npm 한번에 추가하기
npm install vue-router && npm install axios && npm install vuetify@3 && npm install jwt-decode && npm install sockjs-client && npm install webstomp-client질문은 아니고 한번에 추가할수 있는 명령어 공유하면 좋을거 같아서 작성합니다!
-
미해결웹소켓/STOMP 채팅서비스(spring, vue, redis)
jwt토큰 & 시큐리티 질문이요
안녕하세요.토큰 발행, 검증 및 시큐리티 코드가 좀 복잡 하다고 느끼는데요.이거는 한번만 개발 해놓으면 다른 곳에서도 그대로 혹은 유사하게 가져다 쓸 수 있는건가요?시큐리티 코드는 반복 되는 패턴 혹은 개념인가요?
-
미해결핵심만 골라 배우는 Vue.js
vscode extension에서 volar검색하면 Vue Language Features(Volar)가 검색이 안되는데요
제목의 질문 내용과 동일 합니다.
주간 인기글
순위 정보를
불러오고 있어요