작성
·
342
0
안녕하세요 강사님, 수업 잘 듣고 있습니다.
MemmoryMemberRepository,
MemberService
강의의 예제에서 위와 같은 녀석들이 사용되었는데요.
저 두놈이 저렇게 따로 존재해야하는 이유를 잘 모르겠습니다.
Repository는 바로 기능을 수행하고 Service는 Repository를 통해서 기능을 수행한다는 차이만 있을 뿐 결국엔 똑같은 기능을 수행하고 있는데 말이죠.
사실 그 이유를 어렴풋이는 알고 있습니다.
이전 질문에서 Repository := DAO라고 답변해주신 것으로 보아 이 경우에서도 역시 DB에 접근하는 클래스를 하나만 두려는 의도이겠지요
(물론 지금은 DB가 아니라 메모리이긴 하지만..)
하지만 정말 '어렴풋이'만 이해했을뿐 가슴으로 받아들이지는 못했습니다.
DB접근 클래스를 따로 두려는 것이라면.. 굳이 Service를 거쳐서 Repository로 가는 것이 아니라 그냥 처음부터 Repository를 사용하면 되는 것 아닐까? 왜 굳이 귀찮게 두번에 나누어서 기능을 사용하는걸까? 하는 의문이 남습니다.
헤딩 부분을 이해하기 위해 이전 강의에서 컨트롤러, 서비스, 리포지토리, 도메인 그림을 띄워놓고 설명해주신 부분을 몇차례 돌려보았지만 속 시원하게 해결되지가 않아서 질문글을 남깁니다.
가능하시다면.. 리포지토리, 서비스에 국한된 내용이 아닌 웹 애플리케이션 계층 구조 전반에 대한 것을 좀 더 상세하게 답변해주셨으면 하는 바람이 있습니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
질문이 너무 길어서 죄송합니다ㅠㅠ..
매번 친절하게 답변해주셔서 공부에 많은 도움이 됩니다.
감사합니다.
답변 2
1
0
안녕하세요. 현강님
지금 정도의 코드 분량으로는 코끼리 다리만 만져보고 코끼리 전체를 상상으로 생각해야 하기 때문에, 솔직히 말씀드려서 이 부분은 제가 아무리 열심히 설명을 하더라도 가슴으로 이해가 안되실거에요.
이것을 이해하려면 복잡한 비즈니스 로직을 돌려봐야 이해가 됩니다. 나중에 활용 1편 강의를 통해서 어느정도 복잡성 있는 애플리케이션을 실제로 만들어보시면 그 과정 속에서 이렇게 계층을 나누는게 어떤 의미인지, 설명을 하지 않아도 가슴으로 다가오실거에요.
사실 지금 단계는 사실 생각해보면 서비스, 리포지토리도 없이 컨트롤러 만으로 다 해결을 해버려도 됩니다^^ 그래서 이 부분에 대한 고민은 조금 더 뒤로 미루시는 것이 좋습니다^^