인프런 커뮤니티 질문&답변

마비미님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

Controller와 Service 로직구분에 대한 질문

20.08.23 23:44 작성

·

2.2K

0

안녕하세요 강사님! 강의 잘듣고 있습니다ㅎㅎ

비지니스 로직을 제가 Controller에 많이 넣는것 같습니다ㅜ

controller와 service의 구분이 잘 안되는것 같아서

혹시 Controller와 Service에 넣는 코드들은 어떤 기준이 있는지 여쭤봐도 될까요?!

(객체에 set해주는 부분들은 보통 controller에서 처리를 하나요 아니면 view에서 값을 controller에서 받아온후 service로 넘겨서 처리를 해주는건가요?)

답변 4

1

마비미님의 프로필 이미지
마비미
질문자

2020. 08. 24. 22:34

답변감사합니다!!

오늘 제가 강사님의 JPA강의도 구매를했습니다!  저도 정확히 머리속에서 정리가 안되는것 같아서 JPA강의부터 다시한번 강의를 쭉 들어보고 질문이 필요할것같으면 정리해서 구체적으로 질문하겠습니다! 늦은시간에도 답변해주셔서 정말 감사합니다ㅎㅎ!!

1

김영한님의 프로필 이미지
김영한
지식공유자

2020. 08. 24. 22:08

BeomJun Lee님 도움을 드리고 싶은데, 정확히 어떤 부분 때문에 고민하시는지 알 것 같으면서도, 제가 답변을 드리기에 모호한 부분이 있습니다.

본인이 생각하는 좋은 케이스, 안좋은 케이스, 애매모호해서 궁금한 케이스 3가지를 예제와 함께 정리해서 조금 더 구체적으로 질문해주세요^^!

1

김영한님의 프로필 이미지
김영한
지식공유자

2020. 08. 23. 23:55

안녕하세요. BeomJun Lee님^^

좀 극단적이기는 한데요. 이렇게 딱 생각하시면 좋습니다!

컨트롤러같은 웹 계층이 없어도 애플리케이션이 동작해야 합니다.

컨트롤러는 웹 계층을 처리하기 위한 코드만 존재하는 것이 좋습니다. 예를 들어서 웹 계층이 없이 단순히 메인 메서드를 통해서 콘솔에서만 동작하는 애플리케이션을 추가로 개발해야 해도 대부분의 서비스 로직을 재사용할 수 있다면 좋겠지요?

반대로 이야기하면 웹 계층을 위한 폼 데이터를 처리하고, 화면에 뿌릴 데이터를 모아서 넘겨주고 이런 웹 계층 관련 일들은 모두 컨트롤러에서 담당해야겠지요?

이런 관점을 접근하시면 어느정도 고민을 덜 수 있을 거에요.

0

마비미님의 프로필 이미지
마비미
질문자

2020. 08. 24. 14:33

감사합니다!!!!! 강의에서는 폼에서 받은 데이터를 Controller에서 setter해주셨었던걸로 기억하고 있습니다!

웹계층을 위한 폼데이터 처리도 컨트롤로에서 해줘야 한다고 설명 하셨는데 그러면 폼에서 받은 객체를 Service로 가져가서 setter해주는게 아닌 Controller에서 setter해줘야 하는건가요?! 이 부분이 많이 구분하기 힘든것 같습니다

이 고민만 해결되면 구분을 잘 할수 있을것 같습니다!