블로그 이미지
머드초보
개발자는 끊임없이 노력하지 않으면 아니된다. 라는 모티브를 가지고!

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

Notice

Tag

    '2008/12'에 해당되는 글 1

    1. 2008.12.15 Spring 2.5 를 시작하며..
    2008. 12. 15. 10:18 Spring
    EJB가 나타나면서 자바는 엔터프라이즈 어플리케이션을 구축하는 데 필요한 기본 기술로 자리 잡아 나갔다. 하지만 EJB2 버전까지는 개발 과정이 편하지 않았다.
    엔터프라이즈 어플리케이션을 구현하는데 필요한 부분은 자원 관리와 트랜잭션의 처리 정도이다. EBJ는 반드시 EJB 스펙에서 정의된 인터페이스에 따라 코드를 작성하도록 제약하고 있기 때문에 개발자가 기존에 작성한 POJO(Plain Old Java Object)를 변경해야 한다는 단점도 갖고 있었다.
    컨테이너 없이 테스트가 어렵다는 점을 개발 속도가 저하되는 부분을 많은 개발자들이 개발을 진행하는데 있어 불편을 겪는 부분이었다.
    이런 시점에서 Pod Johnson은 "Expert One-on-One J2EE Development without EBJ"란 책을 통해서 책 제목처럼 EJB를 사용하지 않고 엔터프라이즈 어플리케이션을 개발하는 방법을 소개하였고, 이것이 스프링 프레임워크의 모태가 되었다.

    1. 스프링이란 무엇인가?
    스프링이란 간단히 말해서 엔터프라이즈 어플리케이션에서 필요로 하는 기능을 제공하는 프레임워크다. 스프링은 J2EE가 제공하는 다양한 기능 제공뿐 아니라 DI / AOP 를 지원한다
    특징
    - 스프링은 경량 컨테이너다.
    - 스프링은 DI(Dependency Injection) 패턴을 지원한다.
    - 스프링은 AOP(Aspect Oriented Programming)을 지원한다.
    - 스프링은 POJO(Plain Old Java Object)를 지원한다.
    - 트랜잭션 처리를 위한 일관된 방법을 제공한다.
    - 영속성과 관련된 다양한 API를 지원한다. (ex :JDBC/iBatis/하이버네이트/JPA/JDO 등)
    - 다양한 API에 대한 연동을 지원한다.
    - 다른 프레임워크와 연동을 지원하고 있다.

    2. DI(Dependency injection)란 무엇인가?
    객체 사이의 의존 관계를 객체 자신이 아닌 외부 조립기가 수행한다는 개념.
    - 클라이언트 요청 관련 Control 객체
    - 비즈니스 로직을 수행하는 서비스 객체
    - 데이터베이스 접근을 수행하는 DAO 객체
    ~ 명시적으로 객체에 의존성을 -> Factory Patten 으로  :: 둘다 변경사항 적용이 불편
      그리하여 DI 로 의존성 관련 된 사항은 외부 조립기에 맡겨버림!
     
    3. AOP(Aspect Oriented Programming)란 무엇인가?
    여러 모듈에 효과적으로 적용하는데는 한계가 있으며, 이러 한계를 극복하기 위해 AOP라는 기법이 존재한다. 즉 공통의 관심 사항을 적용해서 발생하는 의존 관계의 복잡성과 코드 중복을 해소해주는 프로그래밍 기법.
    즉 핵심 로직 구현 클래스에 의존하지 않고 공통사항만을 적용하여 여러 클래스에서 사용 가능하게 하는 것이다.

    * EJB의 3 버전부터는 엔티티 빈이 아닌 JPA(Java Persistence API)를 사용하는 데이터의 영속성을 처리하고 있다. JPA는 EJB 컨테이너가 없는 환경에서도 사용할 수 있기 때문에, EJB 이외의 환경에서도 JPA를 사용하여 영속성을 관리할 수 있다.

    * Automatic Storage Management (ASM)]
    플랫폼 독립적인 환경에서 파일시스템, 놀리적 볼륨관리자, 소프트웨어 RAID 등의 서비스를 제공합니다. ( 오라클 관련 라이브러리 인듯 함 )
    posted by 알 수 없는 사용자
    prev 1 next