스프링 3

추상화, DI

스프링의 3대 핵심 기술 중 "추상화" 라는 것이 있다.. 갑자기 누군가 나에게 추상화에 대해 설명해 보라.. 라고 질문을 한다면 뭐라고 답을 해야할까? 라고 생각을 해보았다. 생각을 해보니, 추상화라는 것은 결국 DI 일 뿐이였다. 예를 하나 들어볼까.. 뭐가 좋을까.. OXM 추상화 를 예로 들어보자 .. 스프링은 OXM 추상화를 제공한다. oxm 기술에는 비슷비슷한 여러가지가 있는데, Castor , JaxB, Xstream 등이 있다. 스프링에선 위 기술들에 대한 추상화 인터페이스로 Unmarshaller 를 제공한다. 그리고 각 기술에 대한 구현체들도 제공한다. 당연히 추상화 인터페이스인 Unmarshaller 를 구현하고 있다. 하여, 개발자는 어떤 OXM 기술을 쓰던 Unmarshaller ..

토비의 스프링 느낀점 - 스프링프레임워크 철학에 대해.

토비의 스프링 을 3독째 정독하면서 내가 느낀 점을 간단히 작성한다.. 우선, 이 리뷰는 스프링프레임워크의 기능보다, 개발 철학에 중점을 둔 리뷰임을 밝힌다. 토비의 스프링은 읽으면 읽을수록, 감탄을 자아내게 하는 책이다.. 우선 저자인 이일민 님은 스프링에 대한 깊은 이해 뿐만 아니라, 객체지향적 설계, 테스트주도개발, 리팩토링 뿐만 아니라, 애자일, eXtreme Programming 에도 조예가 깊은 분임을 느낄수 있었다. 책 전반에 걸쳐 객체지향적 설계, 리팩토링, 테스트주도개발 의 중요성에 대해 꾸준히 강조하고 있다. 또한 이 책에는 애자일, eXtreme Programming 개발 방법론에 대해서도 나온다. 딱 애자일, eXtreme Programming 이라고 명시 돼 있진 않지만, 이책의 ..

[Spring] Configuration Module

코어 컨테이너 - 그림에서 가장 아래쪽에 위치하는 것이 스프링의 코어 컨테이너이다. 이것은 스프링의 기본 기능을 제공한다. 이 모듈에 있는 BeanFactory는 스프링의 기본 컨테이너이자 스프링 DI의 기반이다. 애플리케이션 컨텍스트 모듈 - 스프링의 애플리케이션 컨텍스트는 코어 컨테이너 위에 올라간다. 코어 모듈의 BeanFactory가 스프링을 컨테이너로 만들어 준다면, 컨텍스트 모듈은 스프링을 프레임워크로 만들어 준다. 국제화(I18N) 메시지, 애플리케이션 생명주기 이벤트, 유효성 검증 등을 지원하고, 이메일, JNDI 액세스, EJB 통합, 리모팅, 스케줄링 등 여러가지 엔터프라이즈 서비스를 제공한다. 또한 벨로시티(Velocity)나 프리마커(FreeMarker) 같은 템플릿 프레임워크와의 ..