VARDY09
72
2021-01-02 11:42:52
5
985

mvc패턴 컨트롤러의 역할


이처럼 컨트롤러 하나에서 uri의 요청 주소값을 잘라내어 if문을 활용하여 원하는 동작을 하는 코드입니다.

이러한 방식처럼 컨트롤러 하나에서 프로젝트의 모든 동작이 거쳐가는것도 괜찮은 방식인지?여쭤봅니다.

지금 controller.java  서블릿을 무조건 거치고 그 서블릿에서 dao로 데이터를 보내주던지 아니면 그냥 바로 jsp페이지로 이동을 시켜주던지 하는 방식을 생각하고있습니다.

많은 의견 부탁드리겠습니다.

0
  • 댓글 5

  • 지붕뚫고높이차
    1k
    2021-01-02 13:09:04
    업무 분기처리를 하는 마스타 컨트롤러와
    실제 업무를 처리하는 서브 컨트롤러로 분기하세요.

    시간이 지나면 마스터 컨트롤러가 커질텐데
    이럴땐 IoC 와 DI 개념 적용해 리펙토링 하시구요.

    리펙트링시 참고하시라고
    제 블로그 글 올려봅니다
    https://m.blog.naver.com/zeroshift01/222187963740


  • VARDY09
    72
    2021-01-02 13:32:18

    지붕뚫고높이차// 감사합니다!!!!


  • 김룰룰룰
    630
    2021-01-02 15:41:49

    https://nesoy.github.io/articles/2017-02/Front-Controller

    https://lhr0419.medium.com/spring-mvc-%EC%9D%98-%EA%B5%AC%EC%A1%B0-%EB%B0%8F-%EC%B2%98%EB%A6%AC-%EA%B3%BC%EC%A0%95-4fc9ac7798eb

    Spring MVC에서 사용하는 Front Controller 패턴을 공부하시면 될 것 같습니다. DispatcherServlet 소스 코드를 읽어보시면 좋을 것 같습니다. 

    switch, if 문은 역할 정의와 책임 분리가 제대로 돼있지 않을 때 주로 나타나는 코드입니다. Spring을 학습하시면서 객체 지향에 대해서도 잘 공부하실 수 있을 것 같습니다.

  • VARDY09
    72
    2021-01-02 16:32:41

    김룰룰룰// 감사합니다 패턴공부를 더 해야될것같습니다!

  • kingofkj
    1k
    2021-01-04 12:53:18

    유지보수가 힘들어질겁니다

    한군데 너무 많은 기능을 넣다 보면 그곳의 코드는 시간이 갈수록 지저분해 질거구요

    가능은 하지만 추천하지 않는 방식입니다

    로그인이 필요한 부분과 필요하지 않는 부분은 필터 같은걸로 대체하고

    나머진 기존의 스프링처럼 각각의 업무단위로 구조화 해야

    나중에 업무별로 유지보수하기 쉽습니다

  • 로그인을 하시면 댓글을 등록할 수 있습니다.