ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 10강. 회원 도메인과 레포지토리 만들기
    스프링 프레임워크-입문 2021. 5. 2. 10:23

    우선 도메인을 먼저 만들어보도록 하겠습니다. domain 패키지를 만들고 그 안에 Member.class를 만듭니다.

    그 후 Member 클래스에 전 장에 설정한 id와 name을 만들고 getter와 setter를 만들어 줍니다.

     

     

    도메인을 완성했씁니다. 이제 레포지토리를 만들어보도록 하겠습니다.

    같은 방식으로 repository 패키지를 만들고 그 안에 MemberRepository 인터페이스와 MemoryMemberRepository 클래스를 만들겠습니다.

    이 코드는 저장할 때 쓰이는 save(), ID로 조회할 때 사용하는 findById(), Name으로 조회하는 findByName(), 전체를 조회하는 findAll()입니다. 

    여기서 궁금증이 생길 수 있습니다. Optional은 무엇인가 Java 8에 새로 들어온 문법으로서 null 값일 수 있기 때문에 null 값을 그대로 반화하는 것보다 한 번 감싸서 반환하는 것이 좋기 때문에 지금 이 방식을 사용하고 있습니다.

     

    그 후 구현체를 만들어보겠습니다.

    이후 세세한 코드를 넣겠습니다.

     

    필드

    저장할 곳이 필요하기에 store와 값이 올라가는 sequence를 생성하겠습니다.

     

    save()

    sequence를 증가시켜서 member의 id에 할당하고 store에 저장하고 member를 반환하도록 하겠습니다.

     

     

    findById

    store에 저장된 것을 가져올려고 하지만 에러를 발생시키는 것을 볼 수 있습니다. NULL 값을 반환할 수 도 있기 때문이죠 그래서 우리는 여기서 조치를 하나 해줍니다.

    Null값이어도 감쌀 수 있게 됩니다.

     

    findByName

    store에서 Loop를 돌리는 것입니다. filter를 사용해서 meber에서 member.getName()에서 넘어온 값이 파라미터 name과 같은 것인지 찾는 것입니다.(findAny : 하나라도 찾는 것)

     

    findAll

    store.values는 필드에서 확인할 수 있듯이 Member입니다. 그렇기에 findAll에서는 이를 반환해줍니다.

     

    이를 검증하기 위해서 테스트 케이스를 작성이 필요합니다.

    이 후 내용은 다음 장에서 작성하겠습니다.

Designed by Tistory.