1. 스프링 프레임워크(Spring Framework)
스프링 프레임 워크란 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크.
먼저, 프레임워크와 라이브러리를 간단하게 비교한 사례로
유튜브 얄팍한 코딩사전 : MVC 웹 프레임워크가 뭔가요?(https://www.youtube.com/watch?v=AERY1ZGoYc8)
프레임워크는 건물의 기초 골격과 수도, 전기 난방이 설치된 채로 사용자가 원하는대로 집을 개조하고 꾸밀 수 있게 제공하는 것을 말하고 라이브러리는 각각 개별적인 기능들(문짝이나 욕조 등의 부속품)이라고 한다면 프레임 워크는 라이브러리등을 가져와서 기초적인 제품 골격을 갖춘 상태를 말한다.
= 가져다 쓰는것이 '라이브러리', 기본틀로 삼아서 그 위에 뭘 덧붙여 만드는게 '프레임워크'
1_1. 애플리케이션 프레임워크
- 애플리케이션 프레임워크(application Framework)는 소프트웨어 개발자가 응용 소프트웨어의 표준 구조를 구현하기 위해 사용하는 소프트웨어 프레임워크로 구성됨.
- 프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임.
= 간단하게 프레임워크라고 불림 - 재사용할 수 있는 수많은 코드를 프레임워크로 통합함으로써 개발자가 새로운 애플리케이션을 위한 표준 코드를 다시 작성하지 않아도 같이 사용됨.
= 재사용성이 높음 - 애플리케이션 프레임워크는 그래픽 사용자 인터페이스(GUI)의 구현에 일반화되었다. 그 이유는 GUI 응용 프로그램의 기본 구조의 표준화를 촉진하는 경향이 있었기 때문, 응용프로그램의 기본 코드 구조가 명백하므로 표준 프레임워크를 사용하면 자동으로 GUI 툴을 만들게 됨.
- 프레임워크의 구현은 // 객체 지향 프로그래밍 기법이 사용되고 있는 응용 프로그램 고유의 클래스가 // 프레임워크의 기존 클래스를 상속할 수 있다.
1_2. 오픈소스
- 오픈소스(Open Sourse)는 소프트웨어 프로그램을 개발하는 과정에 필요한 소스 코드나 설계도를 누구나 접근해서 열람할 수 있도록 공개하는것, 보통 소스가 공개된 소프트웨어를 FOSS(Free and Open-Source Software)라고 한다.
- 소프트웨어 말고도 개발 과정이나 설계도가 공개되는 경우 하드웨어에도 오픈 소스 모델이 적용 할 수 있으며, 글꼴과 같은 데이터에도 오픈 소스 개발 모델이 적용되는 경우도 있음.
- 오픈 소스를 채택했다고 해서 무료 프로그램일 필요는 없으며, 오픈소스 프로그램을 유료 프로그램으로 판매도 가능함
- 단순히 소스를 공개만 하는 것이 아니라, 이를 2차 창작하는 것을 허용하기도 하고, 나아가 조건 없이 상업적 용도로까지 사용할 수 있게 하는 경우, but 공개만하고 2차 창작이 안되는 경우에는 '오픈 소스'라고 부르지 않음.
1_3. 특징
- 경량 컨테이너로서 자바 객체를 직접관리. 각각의 객체 생성, 소멸과 같은 라이프 사이클을 관리하며 스프링으로
부터 필요한 객체를 얻어올 수 있음. - 스프링은 Plain Old Java Object방식의 프레임워크. 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속을 받을 필요가 없어 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가벼움.
- 스프링은 제어반전(IoC : Inversion of Control)을 지원. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링이 사용자의 코드를 호출.
- 스프링은 의존성 주입(DI : Dependency Injection)을 지원. 각각의 계층이나 서비스들 간에 의존성이 존재할 경우
프레임워크가 서로 연결함. - 스프링은 관점 지향 프로그래밍 (AOP : Aspect- Oriented Programming)을 지원. 트랜잭션이나 로깅, 보안과 같이 여러 모듈에서 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 관리할 수 있음.
- 스프링은 영속성과 관련된 다양한 서비스를 지원. iBATIS나 하이버네이트 등 이미 완성도가 높은 데이터 베이스
처리 라이브러리와 연결할 수 있는 인터페이스를 제공함. - 스프링은 확장성이 높음. 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능하기 때문에 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도 용이함.
== 이미지는 만든거, 참고는 위키백과, 나무위키 ==
그외 참고
https://shlee0882.tistory.com/200
Spring Framework 개념, 전략, 특징, 기능요소
1. Spring Framework란? Java 엔터프라이즈 개발을 편하게 해주는 ①오픈소스 ②경량급 ③애플리케이션 프레임워크이다. ① 오픈소스 : Spring은 OpenSource의 장점을 충분히 취하면서 동시에 OpenSource제품
shlee0882.tistory.com
https://steady-coding.tistory.com/457
[Spring] 스프링 프레임워크(Spring Framework)란?
안녕하세요? 제이온입니다. 이번 시간에는 스프링 프레임워크가 무엇인지 가볍게 알아보겠습니다. 스프링(Spring)의 어원 스프링 프레임워크(이하 스프링)을 짧게 정의하기란 쉽지 않습니다. 프
steady-coding.tistory.com
https://www.youtube.com/watch?v=AERY1ZGoYc8&t=313s
스프링 프레임워크 - 위키백과, 우리 모두의 백과사전
ko.wikipedia.org
'개념 정리' 카테고리의 다른 글
서버 스케일링? (Sever scaling // Scale up / Scale out (0) | 2022.03.30 |
---|---|
절차지향 프로그래밍, 객체지향 프로그래밍, 관점지향 프로그래밍은 각각의 차이 조사하기 (0) | 2022.03.28 |
DAO, DTO에 대해 알아보자 (0) | 2022.03.23 |
MVC 패턴에 대해 알아보자 (0) | 2022.03.23 |
팀별과제 노트 (0) | 2022.03.19 |