delpho

Spring Framework의 등장 배경과 발전 과정 본문

CS/Spring

Spring Framework의 등장 배경과 발전 과정

delpho 2024. 4. 2. 13:26

[ 들어가기 전 ]

서버 사이드 기술 스택을 보면, Servlet, JSP, Spring Framework, Spring Boot 등 다양하게 존재합니다. 또한, 이러한 기술들은 모두 필요로 의해 등장하게 되었습니다. 시간의 흐름 및 인과 관계를 기반으로 등장 배경과 발전 과정을 정리해보았습니다. 1990년대 웹 기술의 발전부터 시작해, 스프링 프레임워크가 왜 필요했는지를 시간의 흐름에 따라 정리한 내용입니다. 출처는 ChatGPT입니다.

 

 

[ 1989년 - 1991 : www 등장 ]

  • 1989년 팀 버너스 리에 의해 www가 제안되었습니다. 또한, 1991년 최초의 웹 사이트(CERN에서 운영)가 온라인에 등장했습니다. 프론트엔드는 매우 간단한 HTML 문서, 서버는 팀 버너스 리의 개인 Next 컴퓨터에서 최초의 웹 서버 소프트웨어인 CERN HTTPd를 통해 간단한 HTTP 요청을 처리했습니다.

 

[ 1990년대 초: 웹의 등장과 초기 웹 애플리케이션 개발 ]

  • www의 등장과 함께, 초기 웹 애플리케이션은 정적 HTML 페이지로 구성되었습니다. 동적인 웹 콘텐츠의 필요성이 증가하면서 CGI 프로그래밍이 도입되었지만, 이는 성능 문제와 확장성 제한을 야기했습니다.

 

[ 1996년: 서블릿의 등장 ]

  • CGI의 한계를 극복하기 위해 서블릿이 등장했습니다. 서블릿은 웹 서버 내에서 실행되며, 각 요청마다 새 프로세스가 아닌 쓰레드를 생성하여 처리합니다. 이로 인해 웹 애플리케이션의 성능이 크게 향상되었습니다. 하지만, 서블릿은 동적 콘텐츠 생성에 효과적이었으나, 프레젠테이션 로직과 비즈니스 로직이 혼합되어 코드 관리가 어려웠습니다.

 

[ 1999년: JSP의 등장 ]

  • JSP는 HTML 내에 자바 코드를 삽입할 수 있게 함으로써, 디자인과 개발을 분리할 수 있는 방법을 제공했습니다. 하지만, 점점 엔터프라이즈 애플리케이션의 복잡성이 증가하였고, 이러한 요구사항을 충족시키기 위해 더욱 강력하고 확장 가능한 솔루션이 필요했습니다. 또한, 개발자가 저마다의 방식으로 문제를 해결하다보니 재사용성 및 유지보수 측면에서 문제가 발생하였고, 이로 인해 자바의 표준화의 필요성이 생겼습니다.

 

[ 1999년: EJB의 등장과 자바 EE ]

  • 복잡한 엔터프라이즈 애플리케이션을 지원하기 위해 EJB가 소개되었습니다. EJB는 비즈니스 로직의 재사용성과 보안, 트랜잭션 관리 등 엔터프라이즈 레벨의 요구 사항을 충족시키는 강력한 기능을 제공했습니다. 이로 인해 개발자들은 비즈니스 로직에 더 집중할 수 있게 되었고, 애플리케이션의 개발과 배포가 보다 효율적으로 이루어질 수 있게 되었습니다. EJB의 등장은 자바 기술을 사용하는 엔터프라이즈급 애플리케이션 개발에 중요한 이정표가 되었으며, 자바 EE(Java Enterprise Edition) 플랫폼의 핵심 부분으로 자리 잡았습니다. 그러나 이러한 기능은 높은 복잡성과 학습 곡선, 개발 및 배포의 어려움을 동반했습니다.

 

[ 2002-2003년: 스프링 프레임워크의 등장 ]

  • EJB와 같은 복잡한 엔터프라이즈 자바 기술의 한계를 극복하고자, 로드 존슨은 "Expert One-on-One J2EE Design and Development"에서 스프링의 초기 개념을 제시했습니다. 스프링 프레임워크는 단순함, 유연성, 테스트 용이성에 중점을 두었으며, 이는 다음과 같은 핵심 원칙으로 구현되었습니다:
    • 의존성 주입(DI): 객체 간의 결합도를 낮추고, 유연성 및 테스트 용이성을 향상시키는 프로그래밍 모델을 제공합니다.
    • 포괄적인 데이터 접근 기술 지원: JDBC의 복잡성을 추상화하고, 다양한 ORM 기술과의 통합을 용이하게 합니다.
    • AOP 지원: 관심사의 분리를 통해 코드 모듈성을 향상시킵니다.
    • 트랜잭션 관리의 단순화: 선언적 트랜잭션 관리를 통해 복잡한 트랜잭션 코드 없이 트랜잭션을 관리할 수 있게 합니다.
  • 스프링 프레임워크의 등장은 자바 기반의 엔터프라이즈 애플리케이션 개발 방식에 혁명을 가져왔으며, 개발자들에게 보다 유연하고 간결한 대안을 제공했습니다. 이는 스프링이 기존의 복잡한 자바 EE 스택과 비교해 개발과 배포를 단순화시키고, 애플리케이션의 품질과 유지보수성을 크게 개선한 결과를 가져왔습니다.

 

[ 2004-2013년: 스프링의 확장과 인기 증가 ]

  • 2004년: 스프링 프레임워크 1.0 정식 버전이 출시됩니다. 이는 다양한 엔터프라이즈 개발 요구 사항을 지원하는 포괄적인 프레임워크로서의 기반을 마련합니다.
  • 이후 몇 년간: 스프링은 웹 MVC 프레임워크, 보안, 데이터 접근, 트랜잭션 관리 등을 포함한 다양한 모듈을 도입하며 기능을 확장합니다. 이러한 확장은 스프링을 엔터프라이즈 애플리케이션 개발의 핵심 선택지 중 하나로 자리매김하게 합니다.

 

[ 2014-현재: 스프링 부트와 스프링 클라우드 ]

  • 2014년: 스프링 부트가 등장하며, 스프링 기반 애플리케이션의 개발과 배포를 더욱 간소화합니다. 컨벤션 오버 컨피규레이션 원칙을 바탕으로, 개발자는 애플리케이션의 구성보다 비즈니스 로직 개발에 더 집중할 수 있게 됩니다.
  • 이후: 스프링 클라우드가 등장하여 마이크로서비스 아키텍처와 클라우드 기반 개발을 지원합니다. 이는 분산 시스템 개발의 복잡성을 줄이고, 개발자가 클라우드 네이티브 애플리케이션을 더 쉽게 개발할 수 있도록 합니다.
  • 2016년 이후: 스프링 5에서는 리액티브 프로그래밍 모델을 도입합니다. 이는 비동기적이고 이벤트 기반의 데이터 처리를 가능하게 하여, 애플리케이션의 성능과 확장성을 향상시킵니다.

 

[ 현재- ]

  • 현재: 스프링 프레임워크와 스프링 부트는 지속적으로 발전하고 있으며, 많은 기업과 개발자가 이를 사용하여 현대적인 자바 애플리케이션을 개발하고 있습니다. 스프링 생태계는 꾸준히 성장하며, 개발자 커뮤니티의 지원을 받아 새로운 기술 동향과 요구 사항을 반영한 기능을 추가하고 있습니다.