dbms와 data를 주고 받기 위한 인터페이스를 정의한 부분.
저장소라는 직독 직해, 하지만 실제 데이터 저장 케이스가 아닌, 데이터를 주고받는 인터페이스 이다.
entity를 생성하였따면, 이값을 넣거나, 조회하거나 등의 활동을 진행하는 것이 서비스이다.
이를 어떻게 할것인지 정의하는 계층이다.
java의 extends(하나은행 코딩테스트 시험에 나왔던걸 기억하자) 를 활용하여 JpaRepository를 상속받아
실행한다.
이전 프로젝트 로그인에서 간단하게 jparepository를 상속받아 사용한 경험을 바탕으로 , 해당 코드를 사용했다.
이와 같이 레퍼지토리 구현자체는 굉장히 쉽고, 이를 왜 사용하는지 학습이 중요한 것 같다.
*인터페이스 학습중 질문이 생겼다.
이와 같은 코드에서 , todorepository가 jparepository를 상속받음은 명확하다. 하지만 todoentity는 repository 상속에 대한 명시를 하지 않아도 되는 이유가 궁금해졌다 .
jpa repository를 분석한 결과 깨달았다. jparepository에서 todoentity에 맞는 method들을 생성하고, todorepository는 이를 다시 상속받아서 사용한다. 즉, todoentity->jparepoisotry->todorepository 순으로 작동 되는 것이다.
(다리 -> 다리몸통 -> 다리몸통얼굴 을 본다고 생각. 다리만으로 박치기를 사용할순 없다.)
예측 ) 그렇다면 todoentity에서 todorepository의 기능인 findall을 사용하면 작동되지 않을 것이다.
이 또한 맞았다.
'백엔드 > 스프링+boot' 카테고리의 다른 글
Controller (0) | 2023.12.21 |
---|---|
Service (0) | 2023.12.21 |
구현 (1) | 2023.12.20 |
java version 안맞을때 (0) | 2023.12.20 |
인텔리제이 사용 (0) | 2023.12.20 |