Frame Work/Spring

Spring FrameWork 정의

Glory-L 2022. 10. 13. 11:16

※ 스프링 프레임 워크

- 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임 워크입니다.

 

 

* 자바 개발을 편하게 한다?

 

스프링 뿐 아니라 기존에 등장했던 대부분의 자바 엔터프라이즈 기술과 프레임워크는 저마다 ' 개발을 편하게 해 줄 수 있다 ' 라는 주장을 했습니다. 하지만 스프링이 말하는 ' 엔터프라이즈 개발을 편하게 ' 라는 말은 근본적인 문제에 대한 해결을 주장하면서 신뢰를 얻었습니다. 엔터프라이즈 개발의 복잡함을 제거해내고 진정으로 개발을 편하게 해주는 해결책을 제시했습니다. 

 

* 오픈소스?

 

오픈소스는 소스가 모두에게 공개되고, 특별한 라이센스를 취득할 필요 없이 얼마든지 가져다 자유롭게 이용해도 된다는 뜻입니다. 소스를 자유롭게 열람하고 자신의 목적에 맞게 사용할 수 있을 뿐만 아니라 , 필요에 따라 수정, 수정 뒤 재배포하는 행위도 허용됩니다.  물론 오픈소스도 저작권이 있기 때문에 원 저작자에 대한 정보와 라이센스는 유지한 채로 사용하거나 배포해야 합니다.

 

스프링에 적용된 오픈소스 라이센스는 오픈소스 라이센스 중에서도 비교적 제약이 적고 사용이 자유로운 편에 속하는 아파치입니다.

 

* 경량급?

 

과거의 EJB는 기술에 대한 과도한 욕심으로 인해 개발환경과 운용서버, 개발과 빌드, 테스트 과정, 작성된 코드 모두를 매우 무겁고 복잡하게 만들었습니다. EJB가 동작하려면 고가의 느리고 무거운 자바 서버 (WAS)가 필요했습니다. 또한 툴의 도움 없이는 다루기 힘든 난해한 설정파일 구조와 까다로운 패키 징, 불편한 서버 배치(deploy) 등으로 인한 부담 때문에 고가의 제품으로 구성된 제대로 된 개발환경 을 갖추지 않고는 개발하기가 힘들었습니다.

 

그에 반해 스프링은 가장 단순한 서버환경인 톰캣(Tomcat)이나 제티(Jetty)에서도 완벽하게 동작합니다. 단순한 개발 툴과 기본적인 개발환경으로도 엔터프라이즈 개발에서 필요로 하는 주요한 기능을 갖춘 애플리케이션을 개발하기에 충분합니다.

 

서블릿 컨테이너만으로 충분하니 EJB 컨테이너를 비롯 해 복잡한 기능이 잔뜩 포함된 고급 WAS를 굳이 사용하지 않아도 됩니다. 그만큼 개발 과정도 단순해 집니다. 그렇기 때문에 스프링은 경량급이라고 불립니다.

 

스프링의 장점은 그런 가볍고 단순한 환경에서도 복잡한 EJB와 고가의 WAS를 갖춰야만 가능 했던 엔터프라이즈 개발의 고급 기술을 대부분 사용할 수 있다는 점입니다. 코드는 더 단순하고 개발 과정은 편리하면서도 EJB에서조차 불편했던 고급 기능을 세련된 방식으로 적용할 수 있습니다.

 

* 애플리케이션 프레임 워크?

 

일반적으로 라이브러리나 프레임워크는 특정 업무 분야나 한 가지 기술에 특화된 목표를 가지고 만듭니다.

 

예를 들면 웹 MVC 구조 기능 제공 , 포맷과 출력 장치를 유연하게 변경하는 애플리케이션 로그 기능 제공, 간단한 설정만으로 관계형 DB와 자바 오브젝트를 매핑시켜주는 ORM 기술이 이에 속합니다. 

 

그래서 프레임워크는 애플리케이션의 특정 계층에서 주로 동작하는 한 가지 기술 분야에 집중됩니다. 하지만 스프링은 이와 다르게 '애플리케이션 프레임 워크'라는 특징을 가집니다.

 

애플리케이션 프레임워크는 특정 계층이나, 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크를 의미합니다.

 

즉, 애플리케이션 개발의 전 과정을 빠르고 편리하며 효율적으로 진행하는데 일차적인 목표를 두는 프레임워크입니다. 

 

여러 계층의 다양한 기술을 그저 한데 모아뒀기 때문에 애플리케이션 프레임워크라고 불리는 것은 아닙니다.

 

애플리케이션의 전 영역을 관통하는 일관된 프로그래밍 모델과 핵심 기술을 바탕으로 해서 각 분야의 특성에 맞는 필요를 채워주고 있기 때문에, 애플리케이션을 빠르고 효과적으로 개발할 수가 있습니다. 

 

바로 이것이 스프링이 애플리케이션 프레임워크로 불리는 이유입니다.