Backend/Spring

Spring 기본 개념 / 패키지

Ayel 2023. 5. 17. 12:52

 

 

스프링프레임워크(SpringFramework)

 

 

Framework

: 프로그램을 효율적으로 작성하기 위해서 만들어진 프로그램의 기본 틀


최소한의 자원으로 최대한의 효율을 내기위해 만들어졌다
JAVA기반의 어플리케이션 개발을 쉽게 해주는 오픈소스 어플리케이션 프레임 워크

 


오픈소스
: 소스코드가 공개된 소프트웨어


누구나 만든 것을 배포하며 사용할 수 있는 것
내가 만든 것을 다른사람에게 공개를 하며 발전해나간다

 

ex. JAVA -> Python

 


부품화

 

기능별로 분류가 되어 제품처럼 사용할 수 있게 한 것

객체지향의 부품화와 유사

 

 

Spring의 출현 환경

 

Spring 이전에 EJB(엔터프라이즈 자바 빈즈) 프레임워크를 사용

프로그램이 무거움

개발비용이 수 억 ~ 수 십억 단위

 

이런 단점들을 보완하고자 개발된 스프링은 EJB의 기능들 중 90%정도는 구현할수 있다
프로그램의 경량화

개발 비용이 들지 않는다

 


Spring의 특징

 

POJO(Plan Old Java Object)기반의 구성

: Spring은 자바를 쓰기 위해 만든 프로그램이다
프레임 워크가 경량화 되었지만, 스프링 내부에서 객체간의 관계를 구성할수 있다


DI(의존성 주입 - Dependency Injection)

: 의존 관계를 외부에서 결정하고 주입하는 것

IOC(Inversion of Control) - 제어의 역전(역행)
: JSP에서는 개발자가 제어를 주도 할수 있었으나 Spring에서는 제어를 개발자가 아닌 Spring에서 대신 해준다



편리한 MVC구조

 


AOP(Aspect-Oriented-Programming) 지원


관점기반 프로그래밍
반드시 필요한 부분을 스프링에서는 횡단관심사라고 하며 이 횡단 관심사를 분리하여 제작하는 것이 가능

 

 


 

 

스프링 환경설정

 


Eclipse


STS

: Spring 개발을 위해 Eclipse에서 만들어 놓은 IDE
- spring.io





Spring 기본 패키지