실시간 메시지 읽지 않음 표시 SSE 질문 드립니다.
217
작성한 질문수 43
읽지 않은 메시지 표시를 SSE로 한번 구현 해보라고 하셨는데, 웹소켓이나 stomp를 써도 상관 없나요?
토큰 정보는 상황에 따라 저장 위치(쿠키 or 로컬스토리지)를 다르게 개발 하나요?
그렇다면 통상 실무에서는 토큰 정보를 어디에 저장 하는지 그리고 몇 가지 예시 좀 부탁 드립니다.
답변 2
1
1.sse와 웹소켓 모두 실시간 통신이기 때문에 둘중 어떤걸 쓰셔서 구현하든지 크게 상관은 없습니다. 다만, sse가 구현의 편의가 있어 알림목적으로 편하게 많이 사용되기에 sse를 한번 써보라고 말씀드렸습니다.
2,3. jwt토큰을 프론트엔드에서 제 경험상 크게는 2가지 방법으로 저장하는것 같습니다.

위 그림을 보시면 localstorage와 쿠키저장소가 있습니다. 보통 둘중하나에 저장하는것으로 생각됩니다. 일반적으로 보안을 강화하려면 cookie를 사용합니다. 다만, 쿠키는 쿠키안에 jwt토큰을 꺼내서 payload등을 쉽게 사용할수가 없기에 코드의 복잡도가 올라가고 편의가 감소하는 단점은 있습니다. 둘다 많이 사용하는 방법이기에 적절한 예시를 찾아서 장단점을 비교해보시면 좋을것 같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. ㅌㅇ님.
질문해 주신 내용에 대해 하나씩 답변 드리도록 하겠습니다.
읽지 않은 메시지 표시 구현:
- SSE(Server-Sent Events)와 WebSocket/STOMP는 모두 서버가 클라이언트에 데이터를 푸시할 수 있는 기술입니다. SSE는 상대적으로 단순한 구현을 제공하지만, 데이터 전송 방향이 서버에서 클라이언트로만 가능합니다. WebSocket/STOMP는 양방향 통신을 지원하여 더 복잡한 상호작용을 가능하게 합니다.
- 읽지 않은 메시지를 구현할 때 웹소켓이나 STOMP를 사용해도 문제는 없습니다. 다만, 실시간 양방향 통신을 필요로 하지 않거나 단순한 푸시가 목적이라면 SSE가 더 적합할 수 있습니다.
- SSE(Server-Sent Events)와 WebSocket/STOMP는 모두 서버가 클라이언트에 데이터를 푸시할 수 있는 기술입니다. SSE는 상대적으로 단순한 구현을 제공하지만, 데이터 전송 방향이 서버에서 클라이언트로만 가능합니다. WebSocket/STOMP는 양방향 통신을 지원하여 더 복잡한 상호작용을 가능하게 합니다.
토큰 저장 위치:
- 보안 및 사용성 요구 사항에 따라 토큰을 쿠키 또는 로컬 스토리지에 저장할 수 있습니다. 각각의 방법은 장단점이 있습니다. 로컬 스토리지는 사용이 간편하지만, 클라이언트에서 스크립트를 통해 접근이 가능하므로 민감한 정보 저장에는 주의해야 합니다. 반면에, 쿠키는
HttpOnly속성을 설정하여 클라이언트 측 스크립트에서의 접근을 방지할 수 있습니다.
- 보안 및 사용성 요구 사항에 따라 토큰을 쿠키 또는 로컬 스토리지에 저장할 수 있습니다. 각각의 방법은 장단점이 있습니다. 로컬 스토리지는 사용이 간편하지만, 클라이언트에서 스크립트를 통해 접근이 가능하므로 민감한 정보 저장에는 주의해야 합니다. 반면에, 쿠키는
실무에서의 토큰 저장 위치:
- 로컬 스토리지: 간편한 액세스가 요구되는 경우 사용되지만 스크립트 공격에 취약할 수 있습니다. 주로, 비중요 데이터나 세선 관리에 많이 사용합니다.
- 쿠키:
HttpOnly와Secure옵션을 설정하여 보안성을 높입니다. 주로 세션 유지 등에 사용되며, 민감한 정보는 이렇게 처리하는 것이 안전합니다.
- 로컬 스토리지: 간편한 액세스가 요구되는 경우 사용되지만 스크립트 공격에 취약할 수 있습니다. 주로, 비중요 데이터나 세선 관리에 많이 사용합니다.
이와 관련된 더 많은 정보를 알고 싶으시다면 아래의 유사한 질문 링크를 참고해 보세요:
- 웹소켓, stomp 개념 질문 ! - 웹소켓과 STOMP 관련 개념 설명
- 로컬 스토리지에 토큰 저장하는 방식 질문입니다! - 토큰 저장 위치 선택에 대한 추가적인 설명
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
ERD 질문
0
54
2
StompHandler 관한 질문
0
80
2
리프레시 토큰은 알아서 구현하면 되는건가요??
0
79
2
cors, csrf 직접 구현
0
64
1
JWT 필터구현
0
97
2
강의 잘듣고 있습니다. 혹시 다음 강의 계획은 없으신가요?
0
57
1
STOMP 동작 과정 질문
0
48
1
chain.doFilter()
0
45
1
자바 21로 소스 작성해도 되나요?
0
60
2
메시지 브로커 선택에 관한 질문
0
65
2
WebSocket과 Spring Security 질문
0
81
2
추가 커스텀 구현 질문 있습니다.
0
59
2
connect와 동시에 구독하는데 구독 검증이 꼭 필요한가요?
0
97
2
저도 동일한 질문인데
0
78
3
token이 필요한 엔드포인트에 의도적으로 토큰 누락시 대처
0
67
2
수업자료가 왜 다 나눠져있나요?
0
78
2
메시지 전송 시 검증
0
61
2
JWT 생성 시 subject 설정에 대한 질문
0
157
3
StompHandler 질문 있습니다.
0
82
2
앱 서비스일 경우
0
83
2
웹소켓 서버 재배포시 고려해야 할 상황 질문
0
107
2
배포 오류 질문
0
123
2
/connect 경로에 대한 토큰 검증의 필요성
0
77
1
JwtTokenProvider 작성중 오류 발생으로 문의드립니다.
0
96
2





