그동안 개인 프로젝트만 진행해오다. 백엔드 개발자 혼자서는 사용자들에게 제공가능한 서비스를 만드는 게 어렵다는 생각이 들어서 비사이드의 포텐데이에 참가하게 되었다.다행히 초반에 기획자, 디자이너, 프론트엔드, 나까지 해서 팀을 꾸릴 수 있게 되었다.팀원 중 한 분의 아
회원 정보 기반의 서비스이므로 무조건 로그인이 필요했다. 아직 디자인이나 기획이 진행되지는 않은 상태였지만, 소셜로그인은 도입하기로 합의가 되었다.그래서 우선은 스프링 시큐리티 OAuth를 이용해 로그인을 진행하고자 하였다.기존에 Spring Security OAuth
세션 기반의 인증 프로세스는 로그아웃 시 해당 세션을 만료시키면 된다. 스프링 시큐리티의 경우 기본적으로 등록된 Logoutfilter가 해당 기능을 수행한다. 그러나 이번 프로젝트에서는 JWT토큰을 사용하기로 하였고, JWT 기본 구현은 서버에 정보를 저장하지 않기
프로젝트의 패키지 구조를 크게 match, member, message로 구분하였다. 그리고 각각의 패키지에는 주요 관심사와 관련된 entity와 각 entity에 대한 repository, sevice를 구현하였다.그런데 개발을 하다보니 강하게 결합되는 서비스들이 있
1. 서비스의 핵심 알람기능 서비스의 핵심 기능은 바로 매치와 메시지다. 두 기능 모두 로그인한 "나"의 행동으로도 이벤트가 발생하지만, 상대방에 의해서도 이벤트가 발생한다. ex) 상대방 -> 나 메시지 전송, 상대방 -> 나 좋아요를 통한 매치 성사 나(클라이언트)
로그인한 사용자가 메시지를 보내거나, 매치가 성사되면 상대방에게 알람을 전송한다. 기존에는 사용자 메시지 작성, 이벤트 발생 시 로직 내에서 알람 처리도 진행했다.그런데 로그인한 사용자 입장에서는 알람전송은 사용자의 관심사항이 아니다. 구현상으로도 사용자를 매치시키고