Programming/Spring

Spring Framework

helloworld: 2021. 8. 6. 19:20

■ 스프링 프레임워크란?

  • 자바 언어 기반의 프레임워크
  • 객체지향 언어의 특징을 잘 살린 애플리케이션을 개발할 수 있게 도와주는 프레임워크

* 프레임워크 : 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용 가능하게끔 클래스들을 제공하는 틀

* 라이브러리 : 필요할 때 찾아서 쓸 수 있도록 모듈화되어 제공되는 프로그램

 

 짧게 보는 히스토리

지금은 자바 기반 애플리케이션 개발에 스프링 프레임워크가 기본으로 쓰이지만

스프링 프레임워크 이전에는 EJB가 있었다.

 

EJB (Enterprise JavaBeans)

  • 썬 마이크로시스템사에서 제공, Java EE(엔터프라이즈 에디션)의 스펙을 구현한 표준규약
  • 비즈니스로직, 데이터베이스, 트랜잭션 처리 등 서버 애플리케이션 개발을 용이하게 함
  • 기술이 복잡, EJB 종속적인 코드, 객체지향적이지 못함

== 개선해야 할 문제점이 많았다 ==> 

  • 로드존슨, J2EE Design and Development 출간
  • EJB 문제점 지적, EJB를 사용하지 않고 순수 자바 클래스를 이용해 객체 간 의존성 문제를 해결한, 오늘날 스프링의 핵심이 되는 개념과 코드를 제시
  • 유겐휠러와 얀 카로프, 로드존슨이 오픈소스 프로젝트 진행하여 스프링이 탄생, 발전

 

 스프링 프로젝트의 목록

스프링 프레임워크, 스프링부트, 스프링 시큐리티, 스프링 데이타, 스프링 클라우드, 스프링 배치...

※ 스프링부트 : 스프링 프레임워크를 보다 편리하게 실행할 수 있도록 도와줌

 

 스프링 프레임워크 핵심모듈

1. 코어컨테이너

의존성 주입(Dependency Injection), 제어의 역전(Inversion of Control) 컨테이너, ApplicationContext 핵심 기능을 제공

 

2. Data Access/Integration layer

  • Transaction : ORM, JDBC module 지원
  • Object XML Mapping(OXM) : Object/XML 매핑을 지원(JAXB, Castor, XMLBeans, JibX and XStream
  • Object Relationship Mapping(ORM) : 관계형데이터베이스 - 객체 매핑 (JPA, Hibernate, JDO)
  • Java Database Connectivity (JDBC) : 자바, 데이터베이스 연동 편리하게 지원
  • Java Messaging Service(JMS)

 

3. Web layer : Web, Web-Servlet, WebSocket, Web-Portlet 모듈로 구성

 

4. AOP(Aspect-Oriented Programming)

관심사를 설정하여 특정 요청 발생 시 해당 메서드 실행 전후에 특정 작업을 수행할 수 있도록 함

 

5. Test

  • JUnit 등을 활용하여 테스팅을 지원
  • 독립적으로 테스트할 수 있도록 목 객체도 지원