이전 포스팅에서 JSP,Servelet을 사용해 MVC라는 패턴으로 웹서버 구축의 방법에 대해 알 수 있었습니다.
그러나 JSP,Servlet 만으로 웹 서버를 구축해보신다면, 얼마나 많은 중복 코드를 작성하는지 알 수 있습니다. 마치..
🧙♀️마법사가 파이어볼(웹)을 위해 마법진(구조)를 분필로 쓰는 느낌이죠.
그래서 항상 그렇듯 이러한 불편함을 보완하기 위해 새로운 기술을 만들어 냅니다. 바로 Spring 입니다.
🧙♀️마법사가 파이어볼(웹)을 위해 이제는 프린터(스프링)로 기본적인 부분은 출력하고, 꼭 필요한 부분만 분필로 그리는 형식으로 발전합니다!
그렇다면 추상적인 이야기는 이쯤하고 본격적으로 Spring을 이야기 해봅시다.
이전에는 EJB 를 사용한 엔터프라이즈급 서비스를 작성 했습니다.
EJB는 Low Level의 트랜잭션,상태관리, 멀티 쓰레딩 등등 API를 이해하지 못하더라도 알아서 해주기 때문에 많이 이용했죠.
그러나! 아주아주 어렵습니다...그리고 EJB의 두가지 단점이 존재하죠.
- 코드수정후반영하는과정자체가거창해기능은좋지만복잡한스펙으로인한개발의효율성이떨어짐
- 어플리케이션을 테스트하기 위해서는 반드시 EJB서버가 필요하다.
저 두가지 만으로도 많은 부작용을 쉽게 예상할 수 있죠.
- 배우기 어렵고, 설정 부분이 매우 많음. = 개발자 👇
- 컨테이너에 배포를 해야 테스트가 가능해 개발속도 저하. = 개발속도 👇
- EJB서버가 필요해 서비스 자체가 무거워짐. = 퍼포먼스👇
위의 킹갓롭의 저서가 곧 스프링의 모태가 됩니다..
🙋 안에 무슨 내용이 있길래...?
🤖 AOP,DI 같은 방법론, POJO로 전언적 프로그래밍 모델론...
🙋 그게뭔데..?
🤖 일단 외쳐 갓갓갓
그 후 POJO + 경량 프레임워크가 유행처럼 퍼져갑니다.
🙋 아니 POJO가 뭐냐고
🤖 Plain Old Java Object
🤬 아니 Plain은 뭔데???
🤖 component interface를 상속받지 않는다는거다 이눔아
🤬 아 ㅂㄷㅂㄷ 그게 뭐어쩌라고
🤖 하....특정 framework에 종속되지 않는다고;;;
네! POJO는 EJB이전의 자바 클래스로, 특정 기술, 프레임워크에 종속적이지 않기 때문에 생산성, 이식성이 높다는 장점과, 무거웠던 EJB대신 EJB의 기능은 있지만 가벼운 프레임워크들이 등장하기 시작합니다. (JDO,Mybatis,Spring...)
🙋 하 아니 그래서 뭐가 더 좋아졌는지 정리좀여;;
🤖 (빠가사린가) ....
🙋 아니 그래서 뭐가 좋아졌는데?
EJB서버 같은 거창한 컨테이너가 필요X
오픈소스 프레임워크라 무료
무료지만, 기업용 어플 개발에 필요한 상당한 라이브러리 지원!!
POJO 방식이라 모든 플랫폼에서 사용가능!!
그래서 웹 뿐아니라 어플 등 모든 분야에서 적용 가능한 라이브러리 가짐!!
(아니 안쓸 이유가 있나..?)
이상 스프링의 등장 배경에 대해 알아봤슴다. 다음엔 스프링 자체를 뜯어보죠!