상세 컨텐츠

본문 제목

그룹 조회 및 그룹 탈퇴 및 그룹 삭제 - 코드병합 문제

SO_FIT

by myeongjaechoi 2024. 4. 13. 21:11

본문

회원 별로 그룹의 권환을 확인하여, 그룹에 속한 것들을 보여주는 list를 만들고,  그룹을 만든 사람이면, 그룹 삭제를 할 수 있게 하였고, 그룹을 만든 사람이 아니면, 그룹을 탈퇴만 가능하게 구현하였다.

우선 내가 속한 그룹을 보겠다.

GroupController
GroupService
JpaGroupMemberRepository

해당 member의 id를 받아와서, memberId가 속한 그룹의 이름을 나타내고, 그룹의 권한을 확인해주기 위해 작성하였다.

그 다음으로 그룹 삭제를 보겠다.

GroupController
GroupService

그룹 삭제는, group_role이 true인 그룹 생성자만이 할 수 있으며, 그룹 삭제시 기존 회원들도 탈퇴시키기 위해서 2가지로 나눠서

코드를 작성하였다. 그룹 생성자만 탈퇴 시키면, 해당 그룹 내에 DB가 존재하여서 remove 할 수가 없다.

JpaGroupMemberRepository

따라서 그룹 멤버를 먼저 삭제 시킨 후,

JpaGroupRepository

그룹을 삭제 시켰다. 다음으로, 내가 속한 그룹 탈퇴이다.

GroupController
GroupService
JpaGroupMemberRepository

groupmember 테이블 안에서 해당 memberId와 groupId가 충족하는 것을 찾아서, 그룹 멤버가 존재할 경우 삭제하게 하고, 현재 인원

즉, group의 Num_people을 -1 감소시켰다.

 

현재 코드병합에서 큰 어려움을 겪고있다. 사람마다 코드를 짜는 스타일이 다르기 때문에, 디렉토리를 나누는 것도 다르고, 변수명도 다르다.

우선은 내가 짠 코드의 기능을 바탕으로, 팀원이 작성한 코드에 적용하고 있다. 내가 맡은 부분이 로그인 파트와 프론트가 아니다보니까, 토큰의 문제도 있고, 진짜 하나부터 열 까지 다 다르다. 내가 원하는 버튼을 눌렀을 때 액션을 원하는데, vue로 작성돼 있어서 코드를 고치기 쉽지 않다. 토큰도 잘 모르고..  href 보내는 법도 다르다. 내가 작성한 코드를 바탕으로 팀원 코드에 추가하고 추가된 것이 잘 되는지 확인하기 위하여 test코드를 작성하는데, test코드에서 member도 토큰을 생성해야 돼서, 이것도 공부중이다. test 코드는 @Mock을 써서 가짜 객체를 생성하였는데 테스트가 너무 오래걸린다. 해당 문제를 어떻게 헤쳐나가야할지 고민이다.

'SO_FIT' 카테고리의 다른 글

진행상황 - 웹소켓 구현 완료  (0) 2024.05.21
진행상황 - 웹소켓  (0) 2024.05.17
파일 업로드 및 그룹 생성 및 그룹 참가  (1) 2024.03.29
ERD 설계와 PostgreSQL 선택한 이유  (0) 2024.03.21
팀 프로젝트 시작  (0) 2024.03.20

관련글 더보기