스프링이 가장 가치를 두고 적극적으로 활용하려고 하는 것은 결국 자바 언어가 기반을 두고 있는 객체지향 기술이다.

XML 파일 매핑

JAXB(Java Architecture for XML Binding)

  • XML 문서정보를 거의 동일한 구조의 오브젝트로 직접 매핑해준다
  • XML 문서의 구조를 정의한 스키마를 이용해서 매핑할 오브젝트의 클래스까지 자동으로 만들어주는 컴파일러 제공
    • 스키마 컴파일러를 통해 자동생성된 오브젝트에는 매핑정보가 애노테이션으로 담김
    • JAXB API는 애노테이션에 담긴 정보를 이용해서 XML과 매핑된 오브젝트 트리 사이의 자동변환 작업을 수행해줌
  • 동작 방식

마샬링(marshalling) & 언마샬(unmarshalling)

  • 마샬링 - 한 객체의 메모리에서 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정
    • 직렬화와 유사
  • 언마샬링 - 마샬링과 반대 개념
    • 역직렬화와 유사

서비스 추상화

OXM 서비스 추상화

XML과 자바오브젝트를 매핑해서 상호 변환해주는 기술을 OXM(Object-XML Mapping)이라고 한다.

  • OXM 프레임워크와 기술들은 기능 면에서 상호 호환성이 있다 추상화를 통해 구체적인 기술에 의존하는 부분 없이 구현이 가능

인터페이스 상속을 통한 안전한 기능확장

DI를 의식하는 설계

  • DI를 의식하면서 설계를 해라
  • 적절한 책임에 따라 오브젝트를 분리해줘야 함
  • 할상 의존 오브젝트는 자유롭게 확장될 수 있다는 점을 염두에 둬야함

DI와 인터페이스 프로그래밍

DI를 적용할 때는 가능한 한 인터페이스를 사용하게 해야한다.

  • 인터페이스를 사용하지 않고도 가능
    • DI를 DI답게 만들려면 두 개의 오브젝트가 느슨하게 연결돼야 함
  • 이유
    • 다형성을 얻기 위해
    • 인터페이스 분리 원칙을 통해 클라이언트와 외존 오브젝트 사이의 관계를 명확하게 해줄 수 있기 때문

인터페이스 상속

인터페이스 분리 원칙이 주는 장점은 모든 클라이언트가 자신의 관심에 따른 접근 방식을 불필요한 간섭 없이 유지할 수 있다는 점이다.

Ref.

이일민, “토비의 스프링 3.1”, 에이콘 출판사(2012)