8/25 TIL 채팅대화저장 / 쿠키와 세션의 대하여

이승준·2023년 8월 25일
0
post-thumbnail

프로젝트

🤔 온라인인 사용자, 오프라인 사용자를 어떻게 구분하지?

온라인인 상대는 소켓으로 처리해야할 것 같고, 오프라인인 사용자면 API로 처리해야 할 것 같은데 어떻게 구분할까..

  1. 유저 테이블에 온라인 오프라인 테이블 넣기
  2. SQS 서비스 이용하기
  3. 관계없이 소켓으로 처리하기

질문 결과 BEST 는 2번이였고 나머지 둘은 비슷한 것 같다.
퍼블리셔에게 많은 부담을 주는 것..같긴 하다.

기한과 피로도 때문에 SQS를 배워 적용하는 것은 포기하고 소켓으로 처리하기로 했다.

🤔 소켓으로 보내면서 어떻게 저장을 할까?

메시지를 보낼때마다 db에 접근하게 되면 비효율적이라는 확신이 선다. 다행히 저장만 하면 되긴할 것 같지만

요거는 확실히 캐시메모리를 사용해야겠다.
접속 후 오고 간 대화를 모두 캐시에 저장했다가
나갈 때 모두 db에 저장하는 로직을 내일 구현해봐야겠다.

🤔 방을 GET 하는 api 에서 만약 방이 없다면 새로 만드는 로직을 구현하면 안될까?

당연히 가능하지만 그렇게 쓰면 안된다고.. 피드백을 받았다

리소스 낭비라고 생각했지만 사실 그안에서의 로직도 있으니 리소스를 비교할 문제는 아닌 것 같다.
그리고 REST 방식을 벗어나는 것 같기도 하고, 메소드 사용도 잘못된 것 같다.
이상한데서아끼려고하지마

✏️기술면접 8번 쿠키와 세션의 대하여

쿠키 (Cookies):

쿠키는 클라이언트(사용자의 브라우저) 측에 저장되는 작은 데이터 조각입니다.
주로 사용자의 로그인 상태, 사용자 선호 설정, 장바구니 등과 같은 정보를 저장하고 유지하기 위해 사용됩니다.
서버에서 클라이언트로 전송되어 브라우저에 저장되며, 만료 날짜/시간이 지나면 자동으로 삭제될 수 있습니다.
보안 상 취약할 수 있으며, 중요한 정보를 담아서 보내면 보안 위험을 초래할 수 있습니다.

세션 (Sessions):

세션은 서버 측에서 사용자의 상태를 관리하는 데 사용되는 메커니즘입니다.
사용자가 웹사이트에 접속하면 서버는 사용자마다 고유한 세션을 생성하며, 이 세션은 서버에 저장됩니다.
세션은 쿠키와 달리 클라이언트에 직접 저장되지 않으므로 상대적으로 보안성이 높습니다.
일반적으로 세션 식별자가 쿠키를 통해 클라이언트에 전송되어 후속 요청에서 서버는 해당 식별자를 사용하여 사용자의 세션 데이터를 찾습니다.
세션은 서버에 저장되므로 사용자가 브라우저를 종료하거나 로그아웃하면 자동으로 만료됩니다.

쿠키와 세션의 차이:

  • 장소: 쿠키는 클라이언트(브라우저)에 저장되고 세션은 서버에 저장됩니다.
  • 보안성: 세션은 클라이언트에 저장되지 않으므로 상대적으로 보안성이 높습니다. 반면 쿠키는 클라이언트에 저장되기 때문에 보안에 취약할 수 있습니다.
  • 용도: 쿠키는 주로 클라이언트 측에서 사용자 데이터를 유지하거나 추적하는 데 사용되며, 세션은 주로 서버 측에서 사용자 상태를 관리하는 데 사용됩니다.
  • 저장 용량: 쿠키의 용량 제한이 있어서 작은 데이터만 저장할 수 있지만, 세션은 서버 측에 저장되므로 보다 많은 데이터를 저장할 수 있습니다.
  • 수명: 쿠키는 만료 날짜/시간을 설정하여 지속적으로 유지되거나 만료될 수 있습니다. 세션은 보통 사용자의 활동이 끝나면(로그아웃, 브라우저 종료 등) 만료됩니다.

0개의 댓글