20121015 개발일지 : Spring 3.0 공부 6일차

 오늘은 하루종일 스프링 세팅을 가지고 논 것 같다. 뭐 완전 미친거지.. 학교에서도 한 3시간은 투자하고 집에서도 지금 4시간째 스프링 세팅만 건들고 있다. 그런데 확실한 것은 예전에 선임개발자가 세팅해 놓은 환경을 이해하고 있다는 거싱 그렇게 흥분되는 일이 아닐 수 없다.

 예전 프로젝트는 스프링 2.0으로 세팅되어 있었는데, 나는 3.2를 사용하기로 하였다. Spring MVC를 사용하는 구조에서는 크게 바뀐것은 없지만 아래와 같은 부분을 내가 오늘 이해한 부분이다.

(배운거)

  • 기존에 <bean> 으로 정의하던 DI가 @Autowired로 DI 가능하다.(이건 xml을 세팅해줘야 하는지는 아직 모르겠다.)
  • @Controller 로 정의된 컨트롤러에서 @RequestMapping 으로 정의된 함수는 다양한 파라미터(단일 오브젝트, 다중 오브젝트, 세션값이나 정보 등) 를 받을 수 있다.
  • 위와 같은 함수는 ModelAndView, String, void, 모델 Object, Map/Model/ModelMap, View, @ResponseBody등을 쉽게 리턴할 수 있다.
  • 페이지간의 form값의 이동은 Session으로 스프링은 처리한다. @SessionAttributes를 사용하고 객체를 할당해주면 된다.
  • view에서는 Tiles, Velocity 등 여러 템플릿 엔진을 사용할 수 있다.
  • 기본적으로 Model(Domain) – DAO – Service(Interface) – ServiceImpl(Implements) – Controller(@Controller) – View(JSP등) 와 같은 식으로 구성된다.
  • View부분을 바꿔서 엑셀, PDF등 여러 포멧으로 쉽게 만들 수 있다.
 오늘 배운 내용은 이정도랄까.. 사실 iBatis와의 세팅에서 엄청난 삽질을 하긴 했지만 뭐 사실 있는건데 말이다. 예전과 바뀐 부분은 예전엔 Controller에서 ModelAndView를 무조건 넘겨주곤 했는데, @Controller어노테이션이 붙은 컨트롤러는 String만 넘겨주면 알아서 파일과 맵핑해준다.(물론 xml설정이 필요하지만) 
(잡담)
 그나저나 더 이상 공부를 한다면 밤을 샐 것 같아서 일단 이정도만 하고.. 오늘 다해버리면 내일은 또 무슨 공부를 하겠는가(-_-;) 여하튼 기존 작업물 포팅을 위한 세팅 작업은 오늘로 끝날 것 같긴 하다. 중간고사인데 중간고사 공부해야 하는데.. 중간고사 중에 OOP 외에는 스프링과 중복되는 부분이 없어서 참으로 아쉽다. 개중에 가장 큰 문제가 자료구조설계와 오토마타와 형식언어인데.. 난 왜 이리 수학적인 것에 약한지 모르겠다. 여하튼! 언능 숙제하고 자고 내일 또 열심히, 내일은 출근하는 날이니 회사에서 세팅만 일단 마무리 짓고 땡 해야겠다.