📂 전체 흐름 요약

브라우저
⬇️ (POST /members/new)
MemberController
⬇️ (MemberForm → Member)
MemberService
⬇️ (비즈니스 로직 처리)
MemberRepository
⬇️ (Spring Data JPA 자동 처리)
MySQL member 테이블 저장

🛠️ 1. 브라우저(사용자)

createMemberForm.html 화면

<form action="/members/new" method="post">
    <input type="text" name="name" placeholder="이름을 입력하세요" />
    <button type="submit">등록</button>
</form>

사용자가 입력:

✅ 이 정보가 POST 방식으로 서버에 전송된다.

🛠️ 2. MemberController

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 해서 담는다.

🛠️ 3. MemberService

MemberService.java


public Long join(Member member) {
    validateDuplicateMember(member); // 🔥 중복 회원 체크
    memberRepository.save(member);   // 🔥 DB에 저장
    return member.getId();
}