Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발이글스

[Spring] Spring Framework 란 무엇일까? 본문

Programming/Spring

[Spring] Spring Framework 란 무엇일까?

지윤이글스 2022. 9. 16. 22:48
Whatever happened next, the framework needed a name. In the book it was referred to as the “Interface21 framework” (at that point it used com.interface21 package names), but that was not a name to inspire a community. Fortunately Yann stepped up with a suggestion: “Spring”. His reasoning was association with nature (having noticed that I'd trekked to Everest Base Camp in 2000); and the fact that Spring represented a fresh start after the “winter” of traditional J2EE. We recognized the simplicity and elegance of this name, and quickly agreed on it.

해석: 기존의 J2EE의 "겨울"로부터 새로운 시작의 ""이 왔다고 합니다.


#스프링 프레임워크의 어원

사람들은 스프링이라고 흔히 부릅니다. 하지만 정확한 이름은 "Spring Framework (스프링 프레임워크)" 입니다!

스프링 프레임워크가 등장하기 전에는 "EJB" 라는 기술을 사용해 웹 애플리케이션을 개발해왔었습니다. 

하지만 개발자들에겐 이 기술이 너무 복잡하고 까다로워 사용에 용이하지 않았습니다. 

그래서 이런 단점들을 보완하기 위한 기술을 개발자들이 만들어내기 시작했고, 제일 호평을 받은 기술이 바로 스프링 입니다.

 

#프레임워크 vs 라이브러리 차이점이 대체 뭘까 ?

둘의 차이는 "컨트롤 흐름에 대한 주도성이 누구에게/어디에 있는가" 입니다. 

즉, 어플리케이션의 flow(흐름)을 누가 쥐고 있느냐에 달려있습니다. 

프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그안에서 규칙에 따라 필요한 코드를 짜넣습니다.

라이브러리는 전체적인 흐름을 사용자가 만들며 라이브러리를 가져다 쓰는 것 입니다. 

 

다시말해, 라이브러리는 라이브러리를 가져다가 사용하고 호출하는 측에 전적으로 주도성이 있고, 프레임워크는 그 틀안에 이미 제어 흐름에 대한 주동이 내재하고 있습니다. 

프레임워크는 그안에 들어가 그안에있는 규칙을 따르며 사용한다! 라고 볼 수 있겠습니다. 

 

#스프링 프레임워크 란?

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

 

프레임워크는 위에서 설명해서 알겠는데 애플리케이션 프레임워크는 또 뭐에요? 

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

 

#스프링 프레임워크 특징 ① 경량 컨테이너

경량 컨테이너로서 자바 객체를 직접 관리합니다. 각각의 객체생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있습니다.

 

#스프링 프레임워크 특징 ②DI를 통한 객체간의 관계 구성 

스프링은 그 자체가 구조를 설계할 수 있어서 개발자가 부품을 만들어 조립하는 형태의 개발이 가능합니다. 이렇게 조립된 코드의 최종 호출은 개발자가 결정하는 것이 아니라 스프링 프레임워크 내부에서 이루어지는데, 이것을 제어의역행(IoC)라고 합니다.

 

의존성주입(DI)는 제어의 역행이 일어나는 것을 전제로 하여 스프링 내부의 객체들간의 관계를 만들어줄 때 사용합니다. 의존성 주입은 말그대로 특정 객체가 필요로하는 객체를 외부에서 결정하여 연결시키는 것을 말합니다. 

 

#스프링 프레임워크 특징 ③ AOP 지원

AOP(Aspect Oriented Programming) 는 관점 지향 프로그래밍을 뜻합니다. 대부분의 시스템에서 비즈니스 로직은 아니지만 보안, 로그, 트랜잭션과 같이 반드시 처리가 필요한 부분을 횡단 관심사 라고 합니다. 스프링에서는 이러한 관심사를 비즈니스 로직과 분리하여 중복된코드를 줄이고 개발자가 비즈니스 로직에 집중하도록 만들어줍니다. 

 

 

 

 

'Programming > Spring' 카테고리의 다른 글

[Spring] 스프링부트 Annotation(1)  (0) 2023.01.03
[Spring] 빌드 툴 - maven  (0) 2023.01.03
[Spring] Build Tool (빌드 관리 도구)  (0) 2022.12.29
[Spring] Entity & Repository  (0) 2022.09.28
[Spring] MVC 패턴  (0) 2022.09.19