브라우저
⬇️ (POST /members/new)
MemberController
⬇️ (MemberForm → Member)
MemberService
⬇️ (비즈니스 로직 처리)
MemberRepository
⬇️ (Spring Data JPA 자동 처리)
MySQL member 테이블 저장
createMemberForm.html 화면
<form action="/members/new" method="post">
<input type="text" name="name" placeholder="이름을 입력하세요" />
<button type="submit">등록</button>
</form>
사용자가 입력:
원정아✅ 이 정보가 POST 방식으로 서버에 전송된다.
MemberController.java
@PostMapping("/members/new")
public String create(MemberForm form) {
Member member = new Member();
member.setName(form.getName()); // 🔥 MemberForm → Member로 변환
memberService.join(member); // 🔥 Service에 전달
return "redirect:/"; // 가입 후 홈으로 이동
}
✅ 여기서 MemberForm에 담긴 name(원정아)을 꺼내
✅ Member 객체에 setName 해서 담는다.
MemberService.java
public Long join(Member member) {
validateDuplicateMember(member); // 🔥 중복 회원 체크
memberRepository.save(member); // 🔥 DB에 저장
return member.getId();
}
validateDuplicateMember(): 기존에 같은 이름 회원이 있으면 예외 발생 (중복 방지)save() 호출해서 저장!