반응형

| Spring의 등장?

스프링은 초창기 EJB ( Enterprice Jaca beans)와 같이 무거운 EnterPrise 자바에 대한 해결책으로 만들어졌어

 

Spring : "나 EJB보다 가벼움! 그리고 *POJO로도 가능해서 좋음!"

 

여기서 EJB는 참 좋은 프레임워크지만 왜 무거운지를 간단히 보자면

EJB는 서버측 컴포넌트 모델인데, 주로 JSP로 화면 로직을 처리하는 역할이야

 

*분산 객체 환경과 개발 유지보수의 편의성, 유연성을 위해서 나왔어 근데 이게 모두에게 있어서 그랬을까?

원격 호출 기반을 가지고 있던 EJB는 너무 복잡했고, 이식성은 다른 J2EE기술보다 떨어졌으며

Entity Bean은 설계하기도 까다롭고 이에따른 로직을 추가적으로 만들어야했으며

DB나 데이터 구조 내의 모든 변화가 Bean Class의 구현에 영향을 미칠정도로 종속성이 강해서 Bean의 유연성을 해쳤지

 

 

로드존슨형 : "J2EE는 마치 겨울과 같아. 내껀 이를 이어 봄을 가져다 주겠어"

 

이렇게 Spring이 탄생하게 된거지만 저렇게 말은 안했을거지만.. 비슷하긴할거야

어쨌든 Spring은 EJB에서 제공했던 기능을 *POJO를 사용하여 지원을 했어 그러다 보니 좀 더 가벼워지고

엔터프라이즈 어플리케이션 개발에 있어 복잡성도 줄이기 위해 노력을 많이 했지

 

-분산 객체 환경 (프로세서나 컴퓨터에서 실행되는 객체가 다른 프로세서나 컴퓨터가 다른 객체와 통신이 가능하도록 기술을 분산한 기술)

-POJO (Plain Old Java Object, 올드스쿨 그 자체, 예전 간단하던 방식의 오리지널 자바 오브젝트)

 

 

 

 

| Spring의 장점?

앞서 말한것과 연계해서 보자면 복잡함도 해소가 되었고, EJB로만 할 수 있던 작업들을

평범한 Java Bean을 통해 가능하게 되었고, 서버 측 개발뿐만 아닌 모든 자바 애플리케이션을 간소화 시키기 좋고

테스트도 쉽고 결합도가 낮아지게끔 만든덕에 현재 많이 쓰이고 있다고 볼 수 있어

 

근데, Java Bean을 사용한다면 그 스펙을 따라야 하지 않나? 라며 의문을 가질 수 도 있을텐데 

 

Spring : "꼭 그러지 않아도 가능해 : )" 

 

Spring은 그러한 불편함과 복잡성을 해결을 했다고 볼 수 있지. 또한 몇가지를 살펴 볼게

이미 자바를 사용함에 따라 검증된 다양한 라이브러리를 사용할 수 있고 대규모 다중쓰레드에 안정적이지

또한 확장성에 대해서는 아주 굿잡인데 이유는 J2EE를 대체할 기능이 매우 충실하고 자바에서 추구하는

객체지향설계를 파운데이션으로 확장 및 추가를 함에 있어 높은 유연성을 가지고 있어

추상화 된 정말 많은 오픈소스 라이브러리를 이용할 수 있어서 기술들을 쉽고 빠르게 사용이 가능하기도 하고

*DI를 통해서 기존 소스를 다 갈아엎지 않아도 확장시키기 손쉽다는 강점이 있고

*AOP를 통해 기능들을 재활용 하고 관리하게 쉽게 하였지 그러다 보니

베스트한 객체지향적인 구조를 가지고 있어서 표준으로 여길만큼 많이 사용되고 있어

 

그래서 전자정부프레임워크가spring기반..

 

-DI(Dependency Injection 의존관계 주입, 의존성 주입이라고도 하고, 인터페이스를 생성하여 의존성을 외부에서 주입하기에  의존성이 줄어든다. )

-AOP(Aspect Oriented Programming 관점 지향적 프로그래밍으로 객체의 핵심 및 보조적인 코드 및 기능들을 모듈화 시킨다 )

 

 

 

 

 

| Spring의 단점?

이게 워낙 지원 하는게 많고 기능이 많다 보니 프레임워크치고는 무겁다~ 라는 느낌을 좀 받을 수 있어

또한 지원하는게 많고 무겁다라는 말은 이러한 기능과 개념을 알기위해서는 습득하는 시간이 좀 걸린다는거지

앞에서는 가볍다면서 왜 갑자기 무겁다고 말하는거냐! 라고 말할 수 있어 여기서 말하는 무겁다는 의미는

현재 많이 사용하는 JSP - Controller - DAO - XML 구조의 경우 MVC 패턴보다는 오래걸리고 복잡합니다.

하지만 이점은 분명히 존재하다고 볼 수 있지

 

또한 메모리적인 문제가 종종 발생할 수도 있기도 하며, 시스템 사용을 더 요구한다는 점이있지만EJB보다는..

경량경량하다는 점이 있다~ 라고 말 할 수 있을것같아

 

 

 

 

 

| Spring 정리

Spring은 POJO방식으로 EJB 보다 가볍고 DI와 AOP를 사용함으로써 의존성이 낮고 확장성과 유연성이 좋다. 

 

 

반응형