<aside> 💡 해당하는 로직이 Dirty Checking이 가능할까 고민해봤고 저질러버렸다.

</aside>

public User toEntity(PasswordEncoder encoder,
                         String certificationNumber) {
        return User.builder()
                .email(email)
                .password(encoder.encode(password))
                .certificationNumber(certificationNumber)
                .hashtag(toHashtagEntity())
                .build();
    }

private Hashtag toHashtagEntity() {
    return Hashtag.builder()
            .name(hashtag)
            .build();
}

결론


<aside> 💡 500 Error가 났다. 마음에 들지는 않았지만 코드를 수정하는 작업이 필요하다

</aside>

@Transactional
public SignupResDto signUp(SignupReqDto signupReqDto) {
    //SignupReqDto 검증
    validate(signupReqDto);

    //5자의 무작위 번호 생성 및 중복 검사: 문자, 숫자 포함
    String randomNumber = generateNotUsedRandomNumber();

    //todo: 이메일 인증 메일 발송

    //DB에 해당 정보 저장
    Hashtag hashtag = hashtagRepoForUser.save(signupReqDto.toHashtagEntity());
    return SignupResDto.from(userRepository.save(signupReqDto.toEntity(encoder, randomNumber, hashtag)));
}