> For the complete documentation index, see [llms.txt](https://heunnajo.gitbook.io/spring/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://heunnajo.gitbook.io/spring/1/undefined-1.md).

# 회원 도메인 개발

인터페이스와 구현체는 다른 위치에 저장하는 것이 좋다!

관례상 구현체가 하나만 있을 때는 인터페이스명 뒤에 Impl만 붙여서 많이 사용한다.

Intellij 단축키\
cmd + shift + enter : 세미콜론까지 자동완성\
cmd + option + v&#x20;

클래스 다이어그램 : 정적\
객체 다이어드램 : 동적\
왜냐하면 new 생성자로 실제로 객체가 들어가야 동작을 알 수 있기 때문이다.

![회원 도메인 협력 관계](blob:https://app.gitbook.com/ba2046b8-8773-4c85-a862-a01d3404f0bf)

0\. Grade enum 생성\
1\. Member 클래스 생성\
2\. MemberService 인터페이스 생성\
3\. MemberRepository 인터페이스 생성\
4\. MemberService 구현체 생성 - MemberServiceImpl\
5\. MemberRepository 구현체 생성 - MemoryMemberRepository
