본문 바로가기
개발/Spring

[스프링 입문] 스프링 회원관리 예제 - 2. 회원 도메인, 레포지토리 만들기

by ujin2021 2021. 6. 29.

* 인프런 김영한님의 '스프링 입문' 강의를 듣고 작성한 내용입니다! (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