[Spring] 팀바팀 회원 탈퇴 기능 Trouble Shooting (feat. 스프링 이벤트)
·
우아한테크코스 5기 팀바팀 Project/Trouble Shooting
0. 문제 상황 팀바팀에서는 회원을 나타내는 'Member' 엔티티와 RefreshToken을 나타내는 'Token' 엔티티가 존재했습니다. 엔티티 설계를 진행할 때, Member와 Token 엔티티는 1:1 관계로 설계를 진행했습니다. Member가 생성될 때 Token이 생성되고, Member가 삭제될 때 Token도 삭제되므로 생명주기도 비슷해서 직접 참조를 하는 것으로 설계를 진행했습니다. 이때, Member라는 엔티티에서 Token을 직접 참조하면 편하긴 하겠지만, 닉네임, 이메일 등 회원 정보가 담겨있는 Member 테이블에 인증 정보인 Token 정보가 담긴다는 것이 조금 이상했습니다. 이후에 Token만 만료시킬 상황에도 Member에서 참조를 하게 된다면 token_id를 null로 처리..
[Spring] 스프링 이벤트를 사용하여 도메인 의존성 분리하기
·
Spring
프로젝트를 진행하던 중 스프링 이벤트를 사용하게 되었습니다! 왜 스프링 이벤트를 사용했는지, 어떻게 사용하는지, 사용 시 고려할 점 등에 대해 자세히 알아보도록 하겠습니다! 0. 스프링 이벤트 도입 배경 프로젝트를 진행하면서 다음과 같은 요구사항이 존재했습니다. 팀 캘린더의 일정이 등록, 수정, 삭제되면 팀 피드에 일정 알림이 생성된다. 위의 디자인처럼 팀 피드 공간에 팀 캘린더의 일정이 등록, 수정, 삭제되면 알림이 생성되도록 하는 요구사항이었습니다. (여기서 알림은 실시간 알림이 아니라 게시글처럼 생성되는 알림을 의미합니다.) 스프린트를 거쳐서 팀 캘린더의 일정 등록, 수정, 삭제 로직은 구현되어 있는 상태였으므로 처음에는 단순하게 일정 알림 기능을 추가하면 된다고 생각해서 팀 캘린더 서비스에 다음과..
BE_성하