Blog

[Spring]07 Framework란? Spring이란? Spring Boot란? 까지 핵심 의미

Author
Summary
Spring Boot의 장점
Category
Study
Tags
Spring
Favorite
Memory Date
2023/08/26
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
6 more properties
프레임워크(Framework)란?
통상적으로 프레임워크란, 어떠한 목적을 쉽게 달성할 수 있도록 해당 목적과 관련된 뼈대를 미리 만들어둔 것을 의미한다.
예) 자동차를 만드는 사람이다. 자동차의 모든 부품, 연결부분, 배관 등 모든것을 손수 만드는 것은 생각보다 어려운 일이다. 다른 공장으로부터, 동료로부터 자동차 차체, 자동차 나사들, 자동차 바퀴 등을 공급 받으면 조립만 하면 된다. 이처럼 무엇을 만들기 위해 어떠한 부품이나 뼈대들이 미리 만들어 두어 편리하게 자동차를 만들 수 있는 시스템을 프레임 워크라고 한다.
애플리케이션 프레임워크(Application Framework)란?
위 개념과 연결되어, 그 목적이 애플리케이션 개발인 것이다.
다시 말해, 애플리케이션 프레임워크는 애플리케이션을 개발하는 데에 있어 필요한 모든 업무 분야 및 모든 기술과 관련된 코드들의 뼈대를 제공 받는 시스템을 말한다.
그럼 스프링, 스프링 프레임워크(Spring Framework)란?
위 개념에서 연결되어,

엔터프라이즈용 Java 애플리케이션 개발을편하게 할 수 있게 해주는 애플리케이션 프레임 워크이다.

스프링 프레임워크(Spring Framework)의 특징은?
기본적으로 스프링 프레임워크의 정의는
엔터프라이즈용 Java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 경량급 애플리케이션 프레임워크
로 불리운다. 그럼 오픈소스경량급은 무엇을 의미하는가?
오픈소스란?
말 그대로 모든 사용자에게 열려있는 소스이다.
어떤 개인 및 기업도 해당 소스를 사용하여 웹 애플리케이션을 개발을 할 수 있으며, 필요하다면 스프링의 코드를 일부 수정하여 사용하여도 무관하다는 뜻
오픈 소스기 때문에 사용자들 사이에서 다양한 검증, 테스트 등 자료가 방대하다.
기본적으로 스프링소스(SpringSource)라는 IT기업에서 관리하고있기 때문에 안정적인 개발과 개선이 보장되고 있어 널리 퍼지고 있는 것이다.
경량급은 어떤의미를 갖는가?
기존에 사용하던 기술들과 비교하여, 스프링을 사용했을 때에 개발자가 작성해야 할 코드가 상대적으로 단순하다는 것을 표현
기존 사용하던 기술은? Java Bean 을 포함하여 더 구세대 개발 기술은 항상 이전 세대를 보완해오는 역사를 거쳤지만, 여전히 복잡하고 불필요한 부분이 많았다. 이에 따라 불필요한 환경 설정 등 개발과 연관이 적은 부분을 프레임워크가 최소화 시켜 주고 개발자가 기능 구현에 집중 할 수 있는 환경을 만든 것이 현재의 스프링이다.
제어권이 나에게 있는것 라이브러리, 프레임워크 에게있는 것 프레임워크
이것은 Spring의 특징 제어 역행(IoC: Inversion of Control)과 관련이 있는 것인가?
1.
제어 역행(IoC: Inversion of Control)
애플리케이션의 느슨한 결합을 도모
컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어 필요에 따라 스프링에서 사용자의 코드를 호출한다.
현재 @Controller, @RestController의 차이를 배우면서 느슨한 결합을 도모한다고 하신다. @Controller는 반환에 “index”로 URL에 대하여 templates/index.html 을 View페이지로 클라이언트에게 반환한다.
하지만 @RestController는 위 반환에 @ResponseBody를 붙인 것과 같은데, 데이터 자체를 반환하게 된다. 예로 “index”을 반환하면 실제로 “index”라는 텍스트가 URL로 전달된다. Spring은 특히 객체를 @RestController로 반환하면 Json형태 데이터로 반환한다. 이 부분이 중요한 부분이다.
DI → 어노테이션 약속
IOC를 통해서 하는 것이 핵심이다. 자바개발을 쉽게 하도록, 잘 되도록 하는 것이 중요하다.