개발자 공부 - 인프런 온라인 강의/스프링 핵심 원리 - 기본편

[섹션 2. 스프링 핵심 원리 이해1 - 예제 만들기] 회원 도메인 개발 / 인프런 김영한 스프링 핵심 원리 기본편

easpop 2023. 2. 11. 17:52
728x90
반응형

이번 시간에는 회원 도메인을 개발하는 시간을 가졌다.

 

먼저 member패키지를 생성해준다.

 

그리고 Enum으로 등급을 위한 Grade 클래스를 생성한다.

 

요구사항을 맞추기 위해 회원 등급인 Basic, Vip를 만들어준다.

 

회원 엔티티를 만들어주기 위해 Member 클래스를 생성한다.

Member는 id, 이름 (name), 등급 (grade) 세가지 속성을 갖고있다.

그리고 생성자와 getter, setter를 만들어준다.

 

MemberRepository 인터페이스를 생성해준다.

 

멤버를 저장하는 기능의 save와, Id로 회원 찾는 findById 기능을 만들어준다.

 

반응형

보통 구현체랑 인터페이스를 다른 패키지에 관리를 하지만,

예제의 간단한 진행을 위해 같은 패키지에 구현체를 만들어준다.

 

MemberRepository 인터페이스를 상속하고 오버라이딩 해준다.

 

저장소이기 때문에 Map을 구현하고 store 메소드를 만들어준다.

그리고 member객체를 저장하는 save 메소드와, id로 회원을 찾는 findById 메소드를 구현해준다.

 

HashMap에 대한 추가 설명으로, 실무에서는 여러군데에서 메소드에 접근하는 동시성 이슈가 있을 수 있기 때문에,

ConcurrentHashMap을 쓰지만, 예제 진행을 위해서 HashMap을 적용했다.

MemberService 인터페이스를 생성해준다.

 

MemberService 인터페이스에 회원 가입과 회원 조회 기능을 만들어준다.

 

구현체를 만들어주기 위해 MemberServiceImpl 클래스를 만들어준다.

 

가입을 하고 회원을 찾기 위해서는 MemberRepository가 필요하기 때문에 호출해준다.

 

그리고 만약 위의 사진과 같이 인터페이스만 호출해주면 구현체가 없기 때문에,

NullPointerException 오류가 발생할 것이다.

 

그렇기 때문에, 위의 사진과 같이 MemoryMemberRepository 구현 객체를 선택해줘야 한다.

728x90
반응형