본문 바로가기

Back-End13

메시지 큐(Message Queue) 정리 가까운 백엔드 개발자에게  종종 서버 과부하와 같은 문제는 어떻게 대처하냐고 물어보았는데 메시지 큐(Message Queue) 방식을 자주 활용한다고 했다. 메시지 큐는 비동기식으로 데이터를 프로세스나 프로그램 간에 전달할 수 있게 해주며, 시스템의 부하를 줄이고 안정성을 높이는 데 중요한 역할을 한다. 메시지 큐를 이해하기 위해서는 먼저 '큐(Queue)'의 개념을 알아둘 필요가 있다. 큐(Queue)Queue란 컴퓨터의 기본 자료구조 중 하나로 먼저 들어온 데이터가 먼저 나가는 구조로 되어 있는 선입선출(FIFO, First In First Out) 구조 이다. 큐의 데이터가 추가되는 한쪽을 Rear 라고 하고 데이터가 삭제되는 한쪽을 Front 라고 한다. 이를 기반으로 메시지 큐는 처리해야 할 작.. 2024. 9. 18.
[Spring security] 중복 로그인 방지 기능 만들다가 마주친 Maximum sessions of 1 for this principal exceeded 오류 + 리스너 개념 오늘은 로그인, 로그아웃, 권한 설정 기능을 만들고 있다. 일단 로그인과 권한 설정까지 완료했는데 로그아웃이 문제다.. .sessionManagement(session -> session .maximumSessions(1) .maxSessionsPreventsLogin(true) //동시 로그인 차단, false인 경우 기존 세션 만료(default)) 내가 원하는 설정은 넷상에 존재하는 다른 홈페이지들 처럼 클라이언트에서 1개의 세션만이 로그인 되도록 하는 것이기 때문에 위처럼 최대 세션수를 1개로 정해놓고 동시 로그인을 차단시켜놨다.원인은 세션이 종료된걸 서버에서 모르는 듯 한데... 근데 그러기엔 세션이 존재해야만 보이는 마이페이지 버튼도 안보였다.. 일단 세션이 끊겼는지 .. 2024. 9. 11.
[Spring] RestAPI와 @ResponseEntity Spring 공부를 하던 중 남에게 설명을 잘할 수 있는 수준이 그 개념에 대해 정확히 이해하는 것 아닐까 라는 생각이 들었다.생각해보면 막상 설명해보라하면 제대로 못하는 것 같아서 다시한번 개념을 찾아보고 내가 이해한 식대로 적어보는게 좋을 것 같아서 정리하면서 글을 써본다 RestAPIRestAPI는 웹에서 데이터를 주고받는 방식 중 하나로 HTTP프로토콜을 사용해 클라이언트와 서버간에 데이터를 교환하는 구조다. 리소스를 URL로 식별하고 GET,POST,PUT,DELETE 같은 HTTP 메서드를 통해 리소스를 처리한다.(여기서 리소스를 URL로 식별한다는 뜻은 API에서 다루는 대상을 URL을 통해 구분하고 식별한다는 뜻이다.) 여기서 Restful API라는 단어도 있는데 이것은 Rest의 아키텍.. 2024. 9. 10.
[Spring Security] spring security 에서 CSRF 작동시키는 이유 1. 프론트에서 입력한 데이터를 fetch Api 를 이용해서 서버에 보내주려고 하는 과정에서 문제가 발생했다.. 분명히 Spring security를 설정하지 않았을 때는 서버로 데이터 전달이 잘만 됐었는데.. 뭐지..?? 잘안됨... 그래서 Spring Security 에 대해서 더 공부해봤다 그래서 데이터 전송이 안된 이유는 CSRF설정 때문이었다CSRF는 사용자가 신뢰하는 웹사이트에서 의도치 않은 요청을 전송하게 만드는 공격 방식이다.  Spring security 에서는 CSRF가 기본적으로 설정이 되어있기 때문에 따로 비활성화 설정을 해주지 않으면 서버는 POST, PUT, DELETE와 같은 상태 변경 요청에서 CSRF 토큰을 요구하게 된다. 이 때문에 회원가입 페이지에서 서버에게 POST방.. 2024. 9. 9.