Spring Framework

HeeSeong·2021년 1월 26일
0
post-thumbnail

1. Spring Framework는 무엇인가?


  • Java Enterprise 개발을 편리하게 도와주는 오픈소스 경량급 애플리케이션 프레임워크.

  • 특정 계층, 기술, 업무 분야에 국한되지 않고 애플리케이션 전 영역을 포괄하는 범용적 프레임워크.

  • 단순한 웹 컨테이너에서도 엔터프라이즈 개발의 고급 기술을 대부분 사용 가능.

  • 개발자가 복잡하면서 실수하기 쉬운 Low Level한 것에 많이 신경 쓰지 않으면서 비즈니스 로직 개발에 집중할 수 있게 해준다.



2. Spring Framework 전략



⑴ Portalbe Service Abstraction (서비스 추상화)

트랜잭션 추상화, OXM 추상화 등 기술적으로 복잡한 것을 추상화를 통해 기술 구현 부분과 그 기술을 사용하는 인터페이스로 분리해준다.


⑵ 객체지향과 DI

Spring은 객체지향에 충실한 설계가 가능하도록 단순한 객체 형태로 개발할 수 있고,
DI는 유연하게 확장 가능한 객체를 만들고 그것들의 관계는 외부에서 동적으로 설정해준다.


⑶ AOP (Aspect Oriented Programming)

AOP는 애플리케이션 로직을 담당하는 코드에 남아 있는 기술관련 코드를 분리해서 별도의 모듈로 관리하게 해주는 기술이다.


⑷ POJO

POJO는 객체지향 원리에 충실하면서, 특정 환경이나 규약에 종속되지 않고 필요에 따라 재활용 될 수 있도록 설계된 객체이다.


3. Spring Framework 특징


⑴ 컨테이너 역할

Spring 컨테이너는 Java 객체의 LifeCycle을 관리하며, Spring 컨테이너에서 필요한 객체를 가져와 사용할 수 있다.


⑵ DI 지원

Spring은 설정 파일이나 annotation을 통해 객체간의 의존관계를 설정할 수 있다.


⑶ AOP (Aspect Oriented Programming)

Spring은 트랜잭션, 로깅, 보안과 같이 공통적으로 필요로 하는 모듈들을 실제 핵심 모듈(업무로직 등)에서 분리해서 적용할 수 있다.


⑷ POJO 지원

Spring 컨테이너에 저장되는 Java 객체는 특정한 인터페이스를 구현하거나, 특정 클래스를 상속받지 않아도 된다.


⑸ Transaction 처리를 위한 일관된 방법 지원

JDBC 등에서 어떤 트랜잭션을 사용하던 설정(xml 등)을 통해 정보를 관리(commit, rollback 등)하므로 트랜잭션 구현에 상관없이 동일한 코드 사용이 가능함.


⑹ 영속성(Persistence)과 관련된 다양한 API

Spring은 데이터베이스 처리를 위한 ORM 프레임워크(MyBatis, Hibernate 등)들과 연동 지원.


4. Spring Framework 구성 기능 요소


⑴ Core 컨테이너

Spring 프레임워크의 기본기능 제공
이 모듈에 있는 BeanFactory는 Spring의 기본 컨테이너고 DI의 기반이다.


⑵ AOP

업무로직과 공통로직을 완전히 분리하는 AOP에서 공통로직을 Aspect로 개발할 수 있는 기반을 지원해준다.


⑶ ORM

JPA, Hibernate 등 널리 사용되는 ORM 프레임워크와 연결고리를 제공해 이것들을 Spring 기능과 조합해서 사용 가능.


⑷ DAO

JDBC에 대한 추상화 계층. JDBC 코딩, 예외처리 부분을 간소화 시키고 AOP 모듈로 트랜잭션 관리 서비스도 제공함.


⑸ Web

웹애클리케이션 개발에 필요한 기본기능을 제공함. 다른 웹애플리케이션 프레임워크와 통합을 지원한다.


⑹ Context

BeanFactory의 개념을 확장한 것으로 국제화 메세지, 애플리케이션 생명주기 이벤트, 유효성 검증 등을 지원한다.


⑺ Web MVC

사용자 인터페이스를 애플리케이션 로직과 분리시키는 웹어플리케이션에서 사용되는 패러다임을 제공.

profile
끊임없이 성장하고 싶은 개발자

0개의 댓글