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 등을 활용하여 테스팅을 지원
- 독립적으로 테스트할 수 있도록 목 객체도 지원