diff --git a/src/main/java/cnu/mvc/domain/member/MemberRepository.java b/src/main/java/cnu/mvc/domain/member/MemberRepository.java index 1b273fc..422f4f9 100644 --- a/src/main/java/cnu/mvc/domain/member/MemberRepository.java +++ b/src/main/java/cnu/mvc/domain/member/MemberRepository.java @@ -16,13 +16,18 @@ public Member save(Member member) { store.put(member.getId(), member); return member; } + public Member findById(Long id) { return store.get(id); } - // 구현 + // 1-1) 이메일로 회원 조회 public Member findByEmail(String email) { + for (Member member : store.values()) { + if (member.getEmail().equals(email)) { + return member; + } + } return null; } -} - +} \ No newline at end of file diff --git a/src/main/java/cnu/mvc/domain/member/MemberService.java b/src/main/java/cnu/mvc/domain/member/MemberService.java index b8e785e..2ba7cd7 100644 --- a/src/main/java/cnu/mvc/domain/member/MemberService.java +++ b/src/main/java/cnu/mvc/domain/member/MemberService.java @@ -9,22 +9,29 @@ public class MemberService { private final MemberRepository memberRepository; - public Member join(Member member){ + // 1-2) 회원가입 시 중복 이메일 검증 + public Member join(Member member) { + if (memberRepository.findByEmail(member.getEmail()) != null) { + throw new IllegalStateException("이미 존재하는 이메일 계정입니다."); + } return memberRepository.save(member); } + // 2-1) 로그인 검증 public Member validateMember(String email, String pwd) { - Member findMember = findById(1L); + Member findMember = memberRepository.findByEmail(email); + if (findMember == null || !findMember.getPassword().equals(pwd)) { + throw new IllegalArgumentException("이메일 또는 비밀번호를 확인해주세요."); + } return findMember; } + // 기타 기능 public Member findById(Long id) { return memberRepository.findById(id); } - // 구현 public Member findByEmail(String email) { return memberRepository.findByEmail(email); } - }