본문 바로가기

프레임워크/Spring

스프링의 시작

* 스프링 프레임워크는 원래 웹이라는 제한적인 용도로만 쓰이는 것이 아니라 객체지향의 의존성 주입(dependency injection) 기법을 적용할 수 있는 객체지향 프레임워크였습니다.

스프링 프레임워크는 로드 존슨이 2002년도에 집필했던 'J2EE 설계 및 개발(wrox)' 이라는 책의 예제 코드에서 시작되었는데 말 그대로 효과적이고 가볍게 J2EE를 이용할 수 있다는 것을 증명하면서 예제의 코드들을 발전시킨 것입니다.

 

java11 = jdk11 ver
J2EE = java to enterprise edition

 

플랫폼 : 어플리케이션이 실행되는 환경(=에디션)
자바플랫폼 : 자바어플리케이션이 실행되는 환경
Java SE : standard edition 표준 자바어플리케이션이 실행되는 환경
표준 자바어플리케이션 = GUI어플리케이션, 멀티스레드어플리케이션, 네트워크어플리케이션
Java EE : enterprise edition 기업용 어플리케이션이 실행되는 환경
기업용 어플리케이션 = 기업용 웹어플리케이션, 분산컴포넌트어플리케이션

 

JDK = JRE + 여러 응용 프로그램(컴파일러:javac.exe,

                                                     인터프리터:java.exe,

                                                     사용설명서:javadoc.exe)
           JRE = JVM + API
                                (SE, EE)
                                 api는 라이브러리.
                                  (대표라이브러리 SE용:java.lang.String, java.util.Date, java.sql.Connection
                                                             EE용:javax.servlet.http.HttpServlet)
JAVA SE다  = JRE, API는 SE용쓰겠다
JAVA EE다  = JRE, API는 EE용쓰겠다.

 

* 2000년 당시 자바 진영에서 JavaEE의 여러 가지 스펙을 정의하고 비대해지는 동안 스프링 프레임워크는 반대로 '경량(light weight) 프레임워크'를 목표로 만들어졌습니다. 그 당시 자바 진영에서는 EJB라는 기술을 기업용 애플리케이션 개발에 사용하기를 권장했습니다만 어마어마한 비용과 복잡함으로 인해 많은 비판이 있었습니다.

스프링이 등장할 때 여러 종류의 프레임워크들이 비슷한 사상으로 등장했지만 다른 프레임워크들과 달리 스프링 프레임워크는 개발과 설계 전반에 관련된 문제들을 같이 다루었기 때문에 결론적으로 가장 성공한 프레임워크로 기록되었습니다.

스프링 프레임워크는 가장 중요한 '코어(core)' 역할을 하는 라이브러리와 여러 개의 추가적인 라이브러리를 결합하는 형태로 프로젝트를 구성하는 데 가장 대표적으로 웹 MVC 구현을 쉽게 할 수 있는 'Spring Web MVC'나 JDBC 처리를 쉽게 할 수 있는 'MyBatis'를 연동하는 'mybatis-spring'과 같은 라이브러리가 그러한 예입니다.

 

* 의존성 : 의존성이란 하나의 객체가 자신이 해야 하는 일을 하기 위해서 다른 객체의 도움이 필수적인 관계를 의미

dispatcherServlet에서 사용할 클래스를 자기가 결정하지 않고 외부파일(control.properties)에서 결정해서 주입. 리플랙션