개발/Spring
[스프링 입문] 스프링 회원관리 예제 - 2. 회원 도메인, 레포지토리 만들기
ujin2021
2021. 6. 29. 22:41
* 인프런 김영한님의 '스프링 입문' 강의를 듣고 작성한 내용입니다! (https://inf.run/txXC)
회원 도메인 생성
도메인 : 비즈니스 도메인 객체(회원)
1. hello.hellospring/domain (package 생성)
2. domain/Member (Class 생성)
[Member.java 소스코드]
- 회원은 id와 name을 가지기 때문에 id, name 변수를 만들어준다
- id, name에 각각에 대한 getter/setter을 만들어준다
회원 레포지토리 인터페이스 생성
레포지토리 : DB에 접근. 도메인 객체를 DB에 저장하고 관리. 아직 DB를 선정하지 못했으므로 interface로 만들어 놓고 나중에 갈아끼운다
1. hello.hellospring/repository (package 생성)
2. repository/MemberRepository (interface 생성)
[MemberRepository.java 소스코드]
- 구현해야 할 기능을 적어준다
- save() : 회원 저장.
- findById() : 회원 id를 통해 회원 검색
- findByName() : name을 통해 회원 검색
- findAll() : 전체 회원 검색
- Optional : id, name을 통해 회원을 검색할 때, 해당하는 회원이 없을 수 있다(null) -> 이것을 처리하기위해 사용(java8)
회원 레포지토리 구현체 생성(메모리)
1. hello.hellospring/repository/MemoryMemberRepository
[MemoryMemberRepository.java 소스코드]
- implements MemberRepository 후 alt + insert 단축키로 구현해야 할 method 전체 가져오기
- 회원 정보를 저장해줄 Map 생성(동시성 문제가 있지만 현재는 그냥 진행)
- 회원 id는 입력받는게 아니라 자동으로 생성되게 할것이므로 long type sequence 변수 선언
- 여기서의 clearStore()함수는 테스트시에 필요한 함수
save()
- member 저장시 sequence를 증가시켜서 id로 설정(현재 member의 이름은 입력받은 값으로 설정 되어있음)
- store(Map)에 회원정보 저장후 member 객체 return