Gateway & RabbitMQ 적용 결과

sua·2022년 12월 17일
0

우당탕탕 개발

목록 보기
3/3
post-thumbnail

'채삐' 프로젝트에 사용된 Gateway와 RabbitMQ 기술이 어떻게 적용되어있는지 보여주도록 하겠다. 아키텍처 그림만 존재하고 실제 동작하는 사진이 없어서 작성하게 되었다.

Gateway 적용

먼저 gateway server 적용된 결과이다.

첫번째 요청은 ae_springServer(식단 및 사용자 서비스)에 보낸 것이고, 두번째 요청은 ae_communityServer(커뮤니티 서비스)에 보낸 것으로 서로 다른 서비스인데 동일한 호스트인 43.200.~(보안상 뒷부분은 가렸다)로 요청하는 것을 알 수 있다!



RabbitMQ를 이용한 비동기 통신 적용

우리 프로젝트에선 RabbitMQ를 이용한 비동기 통신이 이런 상황일 때 일어난다.
사용자가 회원 탈퇴를 하면 사용자 서비스가 커뮤니티 서비스로 메시지를 보내어 큐에 메시지가 쌓이게 되고, 메시지를 비동기 처리하여 받은 커뮤니티 서비스는 해당 사용자가 작성했던 커뮤니티 게시글의 닉네임을 (알수없음)으로 보이게 마스킹 처리한다. 또한, 해당 사용자의 스크랩과 좋아요 기록을 삭제하여 우리 팀에서 정했던 회원 탈퇴 정책을 준수할 수 있도록 하였다! 테스트로 잘 되고 있는지 확인해 보겠다.

먼저, 탈퇴전 사용자를 보면 220이고 관리자라는 닉네임을 가지고 있다.

해당 사용자의 userIdx를 이용하여 커뮤니티 서비스의 내가 쓴 게시글 조회 api에 요청을 보내본다.

응답을 확인해보면 사용자가 쓴 게시글에도 nickname이 관리자로 되어있는 것을 알 수 있다.

해당 사용자가 scrap한 게시글도 확인해보면 1개의 스크랩한 게시글일 존재함을 알 수 있다.

이제 탈퇴를 진행해보겠다. 탈퇴를 진행하면 응답값으로 회원 탈퇴 되었습니다.를 리턴한다.

RabbitMQ의 큐도 살짝쿵 확인해본다. chaebbiQueue가 생성되었고, 해당 큐를 클릭해서 메시지를 확인하면 탈퇴한 사용자의 userIdx가 메시지로 담겨있게 구현하였다.

이제 사용자가 탈퇴 완료되었으므로, 해당 사용자가 작성한 게시글이 정책대로 (알수없음) 마스킹 처리가 되었는지 확인해 보겠다. DB로 확인해보면

user_idx가 220 즉, 탈퇴한 사용자의 nickname이 알수없음으로 변경된 것을 알 수 있다. RabbitMQ를 이용한 비동기 메시징 처리가 잘 되었음을 알 수 있다.

또한 scrap한 게시글도 없어졌는지 확인해보기 위해 scrap 테이블을 확인해보면 탈퇴한 사용자의 데이터가 없어졌음을 알 수 있다.

user_idx가 220인 데이터가 없다! 마찬가지로 thumbup 테이블도 동일하기 때문에 생략하겠다.


이렇게 우리가 사용하고자 계획했던 기술스택들을 이용하여 서비스를 개발 완료할 수 있었고, 막히는 부분도 많았지만.. 완성된 모습을 보니 뿌듯한 것 같다. ㅎㅎ

profile
가보자고

0개의 댓글