같은 이름이 있는 중복 회원 안된다. 이것을 처리하는 것은 service쪽에서 처리한다. 반면에 회원을 꺼내오거나 저장하는것은 repository에서 처리한다.
validateDuplicateMember 메소드는 join메소드에서 추출했다. 인텔리제이 기능 중 하나인데 추출하고자 하는 코드를 드래그하면 전구표시가 뜨는데 이 때 Extract Method를 사용하면 된다.
result값에 name값이 있으면 ifPresent가 실행되고 null이면 실행되지 않는다. ifPresent는 Optional 변수일 때 사용가능하다. 그래서 null값이 있을 수 있으면 Optional로 해주는 것이 좋다.