본문 바로가기
SpringFramework

1. 스프링 왜?

by lchit 2021. 3. 15.

- 시작하며

교육기관 졸업후 포스트를 남기는건 처음이다.

 

교육기관의 커리큘럼에 맞춰 파이널 프로젝트를 완성하기까지는 참..

적은 시간인듯하다.

 

여기서 완성이란 실제 서비스를 할 수 있는 프로그램 이냐는거다.

물론 내가 만든 프로젝트 (스프링 레거시 기반 의류쇼핑몰) 또한 

실제 서비스를 할 수 있는건 전혀~ 아니다.

 

지금 코드를 보면 놀라 자빠질테니까.

 

교육기간동안은 눈을 뜨는데 급급해서 아 저건 저렇네 이건 이런건가?

하고 쭉 넘어왔고 이제는 그런 실수를 범하고싶지는 않다.

 

스프링.. 알고 써야하지않을까?

개발은 하고 있지만

 

"이건 이런 스프링의 장점을 살린 이런 플로우야~

난 이렇게 생각하기에 이렇게 구현했어"

 

라는 확신이 없다.

 

그저 선임자들의 코드들을보며 "아 이렇게 하는거구나" 하고 

그저 따라하는것뿐

 

그래서 강의하나 샀다.

 

나도 이제 왜 이렇게 설계된건지 이게 옳바른건지

나도 알고싶다. 

 

참고한 강의는 인프런의하며

교육기관 졸업후 포스트를 남기는건 처음이다.

 

 

 

교육기관의 커리큘럼에 맞춰 파이널 프로젝트를 완성하기까지는 참..

 

적은 시간인듯하다.

 

 

 

여기서 완성이란 실제 서비스를 할 수 있는 프로그램 이냐는거다.

 

물론 내가 만든 프로젝트 (스프링 레거시 기반 의류쇼핑몰) 또한 

 

실제 서비스를 할 수 있는건 전혀~ 아니다.

 

 

 

지금 코드를 보면 놀라 자빠질테니까.

 

 

 

교육기간동안은 눈을 뜨는데 급급해서 아 저건 저렇네 이건 이런건가?

 

하고 쭉 넘어왔고 이제는 그런 실수를 범하고싶지는 않다.

 

 

 

스프링.. 알고 써야하지않을까?

 

개발은 하고 있지만

 

 

 

"이건 이런 스프링의 장점을 살린 이런 플로우야~

 

난 이렇게 생각하기에 이렇게 구현했어"

 

 

 

라는 확신이 없다.

 

 

 

그저 선임자들의 코드들을보며 "아 이렇게 하는거구나" 하고 

 

그저 따라하는것뿐

 

 

 

그래서 강의하나 샀다.

 

 

 

나도 이제 왜 이렇게 설계된건지 이게 옳바른건지

 

나도 알고싶다. 

 

 

 

참고한 강의는 인프런의 김영한 강사님이 강의하는 '스프랑 핵심원리' 이다.

추천!

 

- 스프링 왜 쓸까?

 

이 질문에 내 답변은 글쌔 편하니까? -끝-

 

이건 아닐테고.. 알아보자

 

1) EJB ? POJO ?

EJB ( Enterprise Java Beans )

엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. -위키백과-

 

그렇단다. 

 

길게는 정리하지 않겠지만 한마디로 비싸고 복잡하고 어려웠다.

 

그래서

POJO ( Plan Old Java Object )의 개념이 부활했단다.

 

이는 오래된 방식의 간단한 자바 오브젝트라는 말로 Java EE 등의 중량 프레임워크에서 벗어나고자,

해당 프레임워크에 강하게 종속된 무거운 객체를 벗어나고자 특정 자바 모델, 기능, 프레임워크 등을

따르지 않는 오브젝트의 설계로부터 나온 말이다.

 

현재 스프링은 이 POJO 방식의 프레임워크다.

 

2) 스프링의 탄생

 'Rod Jognson' 형님이 이 EJB에 화가나셨는지 EJB의 문제점을 지적하며 EJB 없이도 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 30,000 라인의 예제코드를 책에서 선보였다.

 

이 책에 최초의 스프링 핵심 개념과 기반 코드가 들어가 있다고한다.

대단하다..

 

이 책을 본 유명하신 분들이 그걸 오픈소스로 개발하자 제의했고, 그게 받아들여져 지금의 스프링이 있다.

3) 스프링 핵심!

- 스프링은 자바 언어 기반의 프레임워크다.

- 자바 언어의 가장 큰 특징은 객체 지향 언어이다.

- 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크다.

- 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크다.

 

 

 

 

 

 

 

결국, 정리를 해보자면,

 

옛날에 EJB 라는 서버측 모델이 있었는데 굉장히 어렵고 복잡했고 그 인터페이스들에 너무 종속적이였다.

여기서 화가난 개발자들이 POJO를 외치며 EJB를 벗어난 오픈소스를 개발하기 시작하였고 그 오픈소스는

객체 지향언어인 자바를 기반으로 반들어 졌으며 객체 지향 언어의 가장 큰 장점을 살려내고 좋은

객체 지향 애플리케이션을 개발할 수 있도록 도와주는 프레임워크인 스프링으로 발전했다.

 

즉 한마디로 "좋은 객체 지향 애플리케이션을 개발할 수 있도록 도움받고자" 라고 정리되었다.