21.10.31 14:43 작성
·
339
답변 2
2
안녕하세요. 최민종님, 공식 서포터즈 OMG입니다.
영한님 강의의 특징이자 장점인 기술의 점진적인 발전에 대해서 설명해주시는 과정에서 혼선이 오시나보네요.
View 분리-v2 강의 초반부에 영한님은 다음과 같이 설명하셨습니다.(처음~2분)
"Controller가 더이상 JSP 포워드를 고민하지 않아도 된다.
MyView라는 객체를 만들어서 반환을하면 FrontController가 대신 MyView의 render를 호출하면
MyView가 JSP를 forward 하도록 할껍니다."
기존 V1 방식에서는 아래 이미지와 영한님의 설명과 같이 직접 포워드하도록 설계가 되어있습니다.
기존 V1
V2에서는 영한님의 설명대로 다음과 같이 설계가 되어 있습니다.
Controller는 직접 JSP포워딩을 하지 않고 MyView를 반환하고 있습니다.
개선된 V2
3. Controller에서 반환한 MyView를 사용.
4,5 render를 호출, render에는 forward하는 코드가 구현되어있음.(MyView render 메서드 구현참고)
정리:
영한님의 설명대로 V1->V2로 설계한 이유인
MyView라는 클래스를 만들어서 생성자에는 viewPath를 받고, render()에서 viewPath에 해당하는 JSP 포워딩이 발생하는 것을 확인하실 수 있습니다.
V1에서는 Controller에서 포워딩을 직접했다면, V2에서는 일련의 과정을 클래스로 추출하여 Controller에서는 View를 반환하고 FronController에서 render와 render에 있는 forward가 실행되도록 설계 방식을 바꿨다고 이해하시면 될 것 같습니다.
감사합니다.
1