작성
·
705
1
답변 1
0
안녕하세요. SeatSTAR님, 공식 서포터즈 OMG입니다.
잘 이해하신 것 같습니다. 약간의 첨언을 하면 아래와 같습니다.
=> 단순 저장 뿐만 아니라, 구현할 기능에 따라 저장, 수정 등도 포함 될 수 있습니다. 본강의에서는 조회와 저장 기능을 구현하였습니다.
=> Service에는 비즈니스 로직이 포함되며 Service뿐만 아니라, Repository, Controller도 해당 부분에서 오류가 발생한다면 기능에 따라 문제가 발생할 수 있습니다.
감사합니다.
강의 순서상 MemberRepository 구현 강의는 들으셨을거라 아래 코드는 보셨을텐데요,
save가 저장 기능을, findById, Name이 조회 기능이라고 보시면 됩니다.
Repository와 Service는 역할이 각각 다릅니다.
Repository는 DB와 밀접한 객체입니다. DB에 접근하여 데이터를 조회, 저장, 삭제 등의 역할을 가집니다.
Service는 핵심 비즈니스 로직을 가지는 객체입니다.
예를 들어, 각각의 역할을 분리해놓음으로써 문제가 발생할 시
비즈니스 로직 상 문제가 없는것 같은데 DB 관련 처리에서 문제가 발생한다면 Repository코드를 확인해보면 됩니다.
각각의 역할이 분리되어 개발과 유지보수 등이 용이해집니다.
아! Repository는 DB에 접근하여 수행할 기능을 구현하는 것이고 Service는 DB접근과는 상관없이 비즈니스적인 핵심적인 기능을 구현한거라고 이해하면 될까요??
한번 의문이 생기니 왜? 라는 궁금증이 계속 생겼는데 답변을 너무 친절히 잘해주셔서 이해할 수 있었습니다! 번거로우실텐데 계속 답변 달아주셔서 너무 감사드립니다:)
네 맞습니다.
제가 수강평에도 남겨 많은 인프런 이용자 분들에게 공감을 받았는데요,
스프링 핵심원리 기본편 강의 초반에 설명해주시는 객체지향 관련 영한님의 설명을 들으시면 궁금 하셨던 부분이 명확히 이해되면서 많은 것을 배워가실 수 있을거라 생각합니다.
안녕하세요!
Repository에서는 store를 이용하여 null인 경우 optional로 감싼다거나 name과 같은 경우를 찾아서 반환하는거 자체가 조회와 저장의 기능을 구현했다고 보는건가요?
그렇다면 Repository에서의 구현은 실제 기능 로직인 Service보다는 추상적인? 기능을 구현했다고 보고 Repository구현한 기능(및 반환될 데이터)을 가지고 Service에서 좀 더 명확하게 기능을 구현하는 실 구현되는 부분이라고 이해하면 될까요??
기능구현을 왜 Repository와 Service에서 하는건가요?