[Spring] Spring 역사

한호성·2022년 9월 12일
0

Spring Framework 나오게 된 이유

스프링 프레임웤크 1.0은 2004년 3월에 릴리스 되었다.
자바로 엔터프라이즈 어플리케이션을 개발하는 방법은 (EJB Enterprise Java Beans)를 사용하는 것이였다.
(EJB에 대해서 조금 더 조사가 필요)

EJB의 단점이 존재했다.
1. 단위 테스트가 어렵다.
2. 불필요한 메서드를 구현해야 한다.
3. 예외처리가 번거롭다.
4. 배포가 불편하다.

위와 같은 EJB의 단점을 잘 해결해주는 것이 Spring Framework 였다.
스프링 프레임워크이 장점으로는

  • 단순화된 단위 테스팅
  • 복잡한 코드의 감소
  • 아키텍처의 유연성
  • 변화하는 시대를 선도

(위 4가지가 Spring의 어떤한 부분 때문에 가능한지는 조금 더 조사가 필요)

Spring Framework 특징

1. 단순화된 단위 테스팅

EJB 컨테이너 외부에서 실행하는 것이 어려웠다, 테스트를 하기 윟서는 컨테이너에 배포해야 했다. 그와 다르게 스프링은 의존성 주입 (DI) 개념을 도입했고, 단위 테스트를 위해 전체 어플리케이션을 배포할 필요가 없게 됬다. (단위테스트이 간소화)

이로써

  • 생산성 향상
  • 빠른 결함 발견 -> 수정 비용이 적음
  • 지속적인 통합 (CI)시, 자동화된 단위 테스트로 향후 결함 예방했다.

2. 복잡한 코드의 감소

자바로 데이터베이스 연동을 하기 위해서 많은 코드들이 필요로 했다 .(EX JDBC를 통한 연동)

Connection con = null;
PreparedStatement stmt = null;

String sql = /* INSERT 문 */;

try {
    con = DriverManager.getConnection(DB_URL, DB_ID, DB_PW);
    stmt = con.prepareStatement(sql);
    stmt.setInt(1, id);
    stmt.setString(2, someValue);
    stmt.execute();
}

이런 것들이 필요없이 스프링 프레임워크의 Spring JDBC를 사용한다면

jdbcTemplate.update(sql,id,someValue);

위 처럼 간단하게 처리가 가능하다.

3. 아키텍처의 유연성

스프링 프레임워크는 모듈 방식 (?) 이다
스프링 코어 모듈 위에 독립적인 모듈을 올려 완성한다.

#cf) 모듈화 디자인이란 한 시스템을 여러 개의 기능적 구송요소로 조합함으로써 완성하도록 한 설계를 말한다.

스프링 프레임워크는 스프링 어플리케이션의 서로 다른 부분들 간의 겷바을 줄이고, 이를 테스트 할 수 있게 만드는 것에 중점을 두면서 사용자가 선택한 프레임워크와의 통합을 제공.
(자기가 직접 모듈을 선택해서 자유롭게 어플리케이션을 만들 수 있다는 의미로 생각된다. AWS에서 여러 모듈을 합쳐서 기능을 만드는 것처럼..)

추가용어 정리

Java SE (J2SDK : Java2 Standard Development kit)

자바 플랫폼 스탠더드 에디션은 가장 널리 쓰이는 자바 api의 집합체이다.

Java EE (J2EE: Java2 Enterprise Edition)

자바 플랫폼 엔터프라이즈 에디션은 자바를 이용한 서버측 개발을 위한 플랫폼이다. Java EE플랫폼은 표준 플랫폼인 Java SE를 사용하는 서버를 위한 플랫폼이다.

Reference

https://velog.io/@outstandingboy/Spring-%EC%99%9C-%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC%EB%A5%BC-
%EC%82%AC%EC%9A%A9%ED%95%A0%EA%B9%8C-Spring-vs-EJB-JavaEE
https://okky.kr/articles/415474

profile
개발자 지망생입니다.

0개의 댓글