Hayden's Archive

[Servlet] 패턴(MVC Pattern / Front Controller Pattern / Factory Method Pattern) 본문

Study/Java & Kotlin

[Servlet] 패턴(MVC Pattern / Front Controller Pattern / Factory Method Pattern)

_hayden 2020. 6. 10. 19:49

MVC(Model-View-Controller) 패턴 : Model(DAO와 VO) & View(JSP) & Controller(Servlet)
서블릿은 앞에서는 화면과 손 잡고, 뒤에서는 DAO와 손 잡는다. 
1. 서블릿이 제일 먼저 클라이언트로부터 폼값을 받는다.
2. 폼값을 바탕으로 VO 객체를 생성한다. 
   - 폼값 3개면 VO의 필드 3개, DB 테이블 컬럼 3개. 
   - id로 회원 검색하는 경우 id 하나 밖에 없으니까 이 과정 패스. 경우에 따라 다름.
3. DAO(이 때 DAO는 싱글톤) 리턴 받고 Business Logic을 호출 → DAO가 DB의 데이터를 조작하거나 DB로부터 데이터를 받아온다. 
   - 예: registerMember(vo), getMember(id)
   - 이에 따라 DAO가 DB 가서 한줄 추가 / DAO가 DB 가서 찾음
4. 받아온 데이터가 있을 경우, 이 데이터를 Attribute에 바인딩한다.
5. 서블릿이 페이지 이동(forward/redirect)하고 JSP를 통해 출력한다.

 

Front Controller Pattern

서블릿에서 제일 중요한 게 비즈니스로직 호출...
일반적으로 서블릿 하나당 비즈니스로직 하나씩 함. 이후 페이지 이동하는데 success 페이지와 fail 페이지...
하다 보면 서블릿 너무 많아짐... DD 파일에 서블릿 load-on-startup을 1,2,3,4,5,6,7,8... => 비효율적... 현업에서는 몇백개씩 나올 수 있음...
===> 패턴을 바꿔야 함. 너무 많은 서블릿을 하나로만. 대신 여러 가지 다 다른 요청이 들어올텐데 요청에 따라 다르게 처리하는 방법이 필요함. => 이게 바로 Front Controller Pattern


Factory Method Pattern