Spring 이란?

- Spring이란 JAVA 기술들을 더 쉽게 사용할 수 있게 해주는 오픈소스 프레임 워크

- JAVA의 웹 프레임워크로 JAVA 언어를 기반으로 사용한다.

- JAVA를 이용한 기술은 JSP, MyBatis, JPA 등 여러가지가 있고, Spring은 이 기술들을 더 편하게 사용하기 위해 만들어진 것이다.

- 중복코드의 사용률을 줄여주고, 비즈니스 로직을 더 간단하게 해줄 수 있다.

- 오픈소스를 좀더 효율적으로 가져다 쓰기 좋은 구조이다.

프레임 워크(Frame Work)란?

- 프레임 워크는 자주 쓰일 만한 기능들을 한데 모아 놓은 유틸(클래스)들의 모음(집합)

- 설계의 기반이 되는 부분을 기술한 확장 가능한 기반 코드와 사용자가 이 코드를 자기 입맛대로 수정, 확장하는데 필요한 라이브러리 이 두가지 요소가 통합되어 제공되는 형태이다.

 

 

Spring 특징

- Spring은 개발을 더 쉽게 해주는 프로그램 틀이다. 개발을 더 쉽게 해주는 기술들이 Spring에 존재한다.

종류 설명
IoC 
(Inversion of Control)
제어 반전
- 인스턴스 (객체)의 생성부터 소멸까지 객체 생명주기(new 연산자, 인터페이스 호출등) 관리를 개발자가 하는게 아닌 컨테이너가 대신 해주는 것을 말한다.
- 즉, IoC가 개발자의 코드를 호출하여 그 코드로 생명주기를 제어(관리)하는 것이다.
DI 
(Dependency Injection)
의존성 주입
- 프로그래밍에서 구성요소 간의 의존 관계가 소스코드 내부가 아닌 외부의 설정파일을 통해 정의되는 방식이다.
- 코드 재사용을 높여 소스코드를 다양한 곳에 사용할 수 있으며 모듈간의 결합도도 낮출 수 있다.
- 쉽게 말하자면 게임 캐릭터라는 하나의 객체가 존재하는데, 그 객체를 더 잘 이용하기 위해서 무기, 방패 등 아이템을 가져와 결합시키는 것이다. 이 객체는 무기와 방패를 뺐다 꼈다 자유자재로 할 수 있으며 아이템을 갈아끼우는데 어떤 상황에 구애받지도 않는다.
- JAVA에서 데이터를 저장하고 가져오는 기능을 외부의 Oracle Database를 사용할 수도 있고, JDBC, iBatis, JPA 등 다른 프레임 워크를 이용해 짤 수도 있다. 이때 Spring을 이용하면 그때마다 필요한 부분을 뺐다 꼈다 하면서 적절한 상황에 필요한 기능을 해낼 수 있다.
AOP 
(Aspect Object Programming)
관점 지향 프로그래밍
- 로깅, 트랜잭션, 보안 등 여러 모듈에서 공통적으로 사용하는 기능을 분리하여 관리 할 수 있다.
- 각각의 클래스가 있다고 가정하자. 각 클래스들은 서로 코드와 기능들이 중복되는 부분이 많다. 중복된 코드를 최대한 배제하는 방법은 중복되는 기능들을 전부 빼놓은 뒤 그 기능이 필요할때만 호출하여 쓰는것이다.
- 즉, AOP는 여러 객체에 공통으로 적용할 수 있는 기능을 구분함으로써 재사용성을 높여주는 프로그래밍 기법이다.
POJO
(Plain Old Java Object)
- 별도의 프레임 워크 없이 Java EE를 사용할 때에 비해 인터페이스를 직접 구현하거나 상속받을 필요가 없어 기존 라이브러리를 지원하기 용이하고, 객체가 가볍다.
- 즉, getter/setter를 가진 단순한 자바 오브젝트를 말한다.

 

'Language > Java' 카테고리의 다른 글

필드 - 제어자  (0) 2022.10.12
Spring - IoC(Inversion of Control)  (0) 2022.09.12
스레드  (0) 2022.03.10
입출력 (Stream)  (0) 2022.03.03
JAVA 기본 API  (0) 2022.02.28