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

마비미님의 프로필 이미지
마비미

작성한 질문수

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

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

작성

·

2.3K

0

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

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

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

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

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

답변 4

1

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

답변감사합니다!!

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

1

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

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

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

1

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

안녕하세요. BeomJun Lee님^^

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

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

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

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

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

0

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

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

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

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

마비미님의 프로필 이미지
마비미

작성한 질문수

질문하기