강좌/Spring @MVC

006. FrontController 패턴 2/2 - 급마무리

여름나라겨울이야기 2013. 3. 4. 00:42
728x90

우훗 BlogAPI 를 이용해서 MS-WORD 2010 을 이용해 올리는 글입니다. 보기 이상하면 이번만 쓰고 다음부터는 다시 블러그 에디터로 삽질하겠습니다.

FrontController 클래스에 대해 그림으로 이해하기!!!
그래서 그림 그려봤어요. 그리다 멘붕 와서 몇 번이나 지웠다가 마음 다 잡아 먹고 다시 그렸어요.
여러분들도 제가 그린 그림 보시면 급 멘붕이 오실거예요. 그래도 궁금하면 한번 펼쳐보세요. 다만 트라우마 생기셔도 저는 법적/도의적 책임을 지지 않아요

 

 

혹시 보신 분 있으세요? 멘붕 오시죠.. 저는 3시간 저 그림 그렸어요. 저 그림만 아니었어도 지금쯤 커피 한 잔의 힘을 빌리지 않고 커피 한 잔의 여유를 누리고 있을터인데…

그래서 박용권님의 그림 훔쳐왔어요. 음하하…

얼마나 깔끔하고 좋아요. 역시 개발자도 디자인 감각이 있어야 해.. ㅡㅡ;

다만 박용권님이 View 를 오타 내셨나봐요. View Template 이라네요.

그런데 이 그림을 제목과 함께 다시 봤어요….

스프링 MVC??? 응??? 뭐라고.. 스프링 MVC.. 헉.. 그럼 저 001~005 강좌까지 삽질한 거???

이미 나의 완소 스프링 프레임워크가 웹까지 지원해주고 있었다능… 헉.. 멘붕 멘붕.. 에헤라 디여….

저 삽질한 거 맞구요. 백기선님이 동영상 강좌로 Servlet -> JSP -> Servlet & JSP -> MVC -> FrontControll & MVC -> Spring MVC 동영상까지 만들어 놓으셨어요.

헉.. 또 멘붕 오려구해…. 그것도 회원가입만 하면 무료로 볼 수 있는 동영상….

 

백기선님 동영상 강좌 보기: http://olc.oss.kr/lec/detail.jsp?lecid=254 의 [JSP&서블릿에서 Spring MVC까지]

 

헉.. 스프링 MVC 를 통한 게시판 예제까지 공개했어요.. 허헉… 나 강좌 안 써.. ㅡㅜ

 

흠 드디어 백기선님 동영상 강좌 다 봤어요. 예제 소스는 천천히 봐야할 것 같아요.

그런데 한글 처리 문제가 있어서 web.xml 에 filter 를 만들어 걸어야겠어요.

응응 뭐라고요? 스프링이 한글 처리를 위한 필터를 만들어서 이미 제공한다굽쇼!!!

두둥… org.springframework.web.filter.CharacterEncodingFilter

흠.. 그럼 에러 페이지 처리를 위해서 web.xml 에 error-page 를 설정해야겠어요.

응응 뭐라고요? 스프링이 에러 페이지를 보여주기 위해서 뭘 제공한다굽쇼!!!

HandlerExceptionResolver

우왕 스프링 MVC 굿인데요…

그럼 저는 저는 제가 만든 FrontController 를 활용하기 위해 Spring MVC 에 저의 FrontController 를 적용해 보아야겠어요.

응응 뭐라고요? Spring MVC 가 단순 MVC 가 아닌 FrontController 를 이용하는 웹 프레임워크라굽쇼!!!

헉.. DispatcherServlet 이 FrontController 패턴의 FrontController 라 굽쇼!!!

흠 그럼 저는 View 힌트를 통해 jsp 파일을 호출하는 방식이 아닌 excel 로 응답하는 걸 만들어서 붙여야겠군요.

응응 방금 뭐라했소? Spring MVC 가 Excel, JSON, PDF, RSS, ATOM, Flash, Theme 심지어 그래픽 리포트까지 지원한다굽쇼!!!

ViewResolver, AbstractExcelView, AbstractPdfView, MappingJacksonJsonView…

헐… 그럼 리스너라도 만들어서 로그라도 남겨야겠소.

응응 방금 뭐라했소? Spring MVC 가 각종 리스너를 제공한다했소!!! 기존에 web.xml 에 필터로 구현해서 등록했든 그 기능을 지원한다했소!!!

어멋 뒷골.. 뒷골 땡겨… 그럼 Spring MVC 가 내가 생각하는 거의 정도가 아니라 그 이상을 지원해주고 있다는 뜻이요. 뭐뭐 아래 그림들을 보라했소.

그림의 저자권은 박용권님에게 있다했소? 알겠소 내 그 이름을 기억하리다. 백기선님과 박용권님이라…. 이제 그림 봅시다.

 

Spring MVC 의 다양한 Controller 들
(Servlet 상속한 controller 와 이 강좌의 POJO controller 외에도 다양한 Controller 제공)
알면 좋으나 이 많은 종류를 언제 다 학습하다는 말이요. 너무 하오.
앙? 지금 뭐라 했소… Spring 측에서 ParameterizableViewController 외에는 다음 버전 지원 안 할 수도 있으니 ParameterizableViewControllern 집중해서 파면 된다고 하는 것이요.
오호 ParameterizableViewController 를 이용한 방식이 스프링 프레임워크 최고봉이라 하는 Spring @MVC 에서 사용하는 Controller 라는 것이요?
ParameterizableViewController 하나면 원하는 것은 다 구현이 가능하다는 말이요!!! 내 똥인지 된장인지 몰랐는데 ParameterizableViewController 이 된장이라 하니 한 넘만 패는 무대포 정신을 발휘하리이다.

 

Spring MVC 의 View 들 (JSP 뿐만 아니라 이리도 다양하게 지원을.. 허헉)

 

이런 모든 것들을 통제하는 것이 뭔지 아냐했소? 내 무식해도 MVC 에서 Controller 모든 제어 흐름을… 아니 정답으로 인정할 수 없다는 말이요? 일부만 맞는다니 그럼 누가 웹 요청과 처리를 통제해 준단 말이요.
내 갑갑하니 어서 알려주시요.

 

마지막 그림 하나를 더 보여준다는 것이요. 그 그림을 이해한다면 Spring MVC 에 입문한 것을 넘어 초급 인증을 해준단 말이요!!!

 

 

이거 좋기도 하지만 그럼 기존의 지식을 다 버리고 스프링 MVC 가 제공하는 것을 공부해야만 한다는 것이요?

아 기존 방식데로 web.xml 에 다 때려 넣는 방식으로 해도 상관 없다는 것이요. 그건 좋구만…

그런데 뒷 이야기는 뭣이요?

이전에 여름나라겨울이야기님이 Spring 3.0 강좌 카테고리로 우리를 감동 시켰던 DI, AOP, PSA 를 이용하는 SpringFramework 의 그 아름다운 기법들을 Spring MVC 가 지원하고 있고 그 혜택을 받으려면 Spring MVC 에 적합한 방식으로 구성하는 것이 좋다는 것이구료.

흠흠 한 달 빡세게 공부하면 그 시간만큼 아픔은 있겠지만 그 이후에는 더 적은 야근과 더 적은 스트레스와 더 많은 월급을 요구하기에 충분한 기술적 진보가 있다고 했소…

그럼 그럼 나는 Spring MVC 로 가겠소… 비록 배움의 동안에 굳어진 머리에 기름을 치고 시간을 쪼개는 아픔이 있다할찌라도 아름다운 내일을 위해 오늘을 내 투자하리다.

그런데 또 할 이야기가 있단 말이요?

Spring @MVC??? 그건 또 뭐요? 오오.. DI 할 때 xml 설정 방법도 있었지만 @ 애너테이션을 씀으로 편리하게 개발했던 그 방식을 Spring MVC 에 적용한 방법이라는 것이요!!!

그렇다면 AOP 도 인터페이스를 구현해야 했던 Advisor 방식, xml 설정을 아주 길게 만들었던 <aspect> 태그 방식도 사실은 @AspectJ 방식으로 쓸 수 있었으니 Spring @MVC 를 사용하면 @ 애너테이션 기반의 DI, AOP 를 다 쓸 수 있다는 말이요. 오호라… 이 아니 기쁠손가?

 

응응 또 뭐라하는게요? 아까 백기선님 동영상 밑에 "Spring @MVC 기본기 다지기" 라는 이름으로 Spring @MVC 를 그것도 최신 버전의 Spring 3.1 버전에 맞추어진 무료동영상 강좌가 있다는 말이요? 그렇다면 내 냉큼 다녀 올 테니 어디 가지 말고 잠시 애서 기다려주시요. 아직 묻고 싶은 게 있으니 꼼작 말고 여기서 커피나 마시면서 내가 돌아오길 기다리시요. 여기 별다방 커피값이 있으니 요 앞 별다방 가서 쌍화차에 계란 하나 동동 띄우고 별스텝과 담소를 나누고 계시구려…

 

그리하여 52분 후… 여보시요. 여보시요. 내 그 동영상을 보니 Spring @MVC 가 너무 너무 좋아 보이나 너무나 방대하여 내 머리에 쥐가 날뻔했지 모요. 어찌하면 내가 Spring @MVC 의 비급을 터특할 수 있겠소.

 

그래 그래 그렇치.. 좋은 사수 밑에서 프로젝트로 겪어보는 것이 제일 좋지요. 그럼 그럼..

그런 상황이 안 되면 내가 아는 것 만큼만이라도 남을 가르쳐보는 거란 말이요? 가르치는 자는 배우는 자 보다 더 많이 배운다는 옛 스승님이 말씀이 생각나는구료…

가르칠수록 더 알게 된다는 뜻이구료…

그도 안 되면 어찌해야한다 말이요.. 토비님을 책을 연반추하라는 것이요… 내 그렇게 라도 하리다.

뭐요… 여름나라겨울이야기님이 객체지향도 아닌 구조적 프로그래밍에서 객체지향을 지나 객체지향원리.. 디자인 패턴을 지나 스프링프레임워크, 스프링 @MVC 스터디를 모집했다고 했어..

내 당장 지원을 하리… 악.. 마감됬다했소 ㅡㅜ

뭐라했소… 여성 회원은 지금이라도 지원이 가능하다했소.. 내가 내 주변의 아리따운 여성 개발자를 보내어 그 여성 개발자를 통해 스터디 내용을 전달 받아야겠소.. 음하하…

모두가 행복한 미래를 꿈꾸며… 개발자가 코더로 대우받지 않는 세상을 꿈꾸며…

이렇게 날로 먹는 Spring MVC 강좌가 급히 끝나는구려… ㅡㅡ;

 

응응 .. Spring MVC 왜 어려운가? 잡담이 하나 더 남았다는 것이요. 그 안에 Spring @MVC 를 학습하는 학습자의 자세에 대한 글도 있을거란 뜻이요.

그럼 내 냉큼 아름드러운 댓글을 달아야겠구료… 그래야 빨리 그 잡담이 올라올 테니 말이요… 음하하하…

 

PS: 멘붕 / 뒷골 땡기는 강좌는 이제 뒤로 하시고 Spring @MVC 이제 책으로.. ^^ 어서요.

이거 하나 기억해 주세요. 기술은 당신을 사랑하고 당신의 삶을 더 편하게 하려는 목적을 가지고 있습니다. Spring @MVC 를 학문으로 접근하시기 보다는 Spring @MVC 가 당신 삶을 어떻게 편안하게 하는지를 찾으시면 그 학습이 쉬울 겁니다. 이것은 아마도 다음 편에 대한 스포일러???

PS II : 피곤해서 자고 일어나서 추고해야겠군요 Z.z… 저 자는 동안 위에서 말한 백기선/박용권님의 동영상 강좌를 봐주세요. 이 잠은 약 일주일 정도… ^^;

반응형