@Transactional
    public AttendeeLoginResponse login(String uuid, AttendeeLoginRequest request) {
        Meeting meeting = meetingRepository.findByUuid(uuid)
                .orElseThrow(() -> new MomoException(MeetingErrorCode.INVALID_UUID));

        AttendeeName name = new AttendeeName(request.attendeeName());
        AttendeePassword password = new AttendeePassword(request.password());

        return attendeeRepository.findByMeetingAndName(meeting, name)
                .map(attendee -> verifyPassword(attendee, password))
                .orElseGet(() -> signup(meeting, name, password));
    }
@DisplayName("로그인 시 동일한 이름이 저장되어있지 않으면 새로 참가자를 생성한다.")
    @Test
    void createsNewAttendeeIfNameIsNotAlreadyExists() {
        AttendeeLoginRequest request = new AttendeeLoginRequest("harry", "1234");

        long initialCount = attendeeRepository.count();
        attendeeService.login(meeting.getUuid(), request);
        long finalCount = attendeeRepository.count();

        assertThat(finalCount).isEqualTo(initialCount + 1);
    }