동아리 소모임 마니또 행사에서 종이 뽑기나 주최자가 직접 배정하는 방식은 공정성 시비와 비밀 누출 문제가 자주 발생했습니다.
이를 해결하기 위해 그룹을 생성하고 무작위 알고리즘으로 마니또를 배정한 뒤, 익명으로 게시글과 댓글을 주고받는 웹서비스를 개발했습니다. 마지막엔 방명록으로 마무리하는 플로우까지 설계했습니다.
그룹 생성 → 가입 신청 → 수락 / 거절 → 무작위 마니또 배정 → 익명 게시글·댓글 → 방명록 순서로 이어지는 플로우입니다. 총 5개 도메인으로 나누어 구성했습니다.
| groups | 그룹 생성 · 가입 · 상태 관리 |
| matching | 무작위 마니또 배정 (MatchingSession, MatchingResult) |
| manitottipost | 익명 게시물 · 댓글 |
| guestbook | 방명록 |
| member | 회원 · 마이페이지 |
| 인증 | JWT 기반 (Spring Security + JwtFilter) |
그룹 생성 → 가입 신청 → 수락 / 거절 → 마니또 배정 → 종료까지 전 단계의 상태 전환 로직을 직접 구현했습니다. GroupJoin, MemberGroups, JoinStatus 엔티티를 설계하고 서비스 레이어를 작성했습니다.
익명 게시물(ManitottiPost)에 대한 댓글 작성·수정·삭제 API를 구현했습니다. 관리자(그룹장)가 다른 유저의 댓글을 강제 삭제할 수 있는 권한 로직도 별도로 만들었습니다.
마니또와 마니띠 사이 익명 메시지를 수정하는 Update Message API를 구현했습니다.
프로필 조회·수정, 닉네임 수정, 프로필 메시지 수정 API를 구현했고, 마이페이지 도메인을 member 패키지로 리팩토링했습니다.
그룹 내 멤버 프로필을 조회하는 API를 구현했습니다.