본문 바로가기
Computer Science/Spring & Web

Spring 이란?

by Ray 2021. 4. 27.

1. 스프링이란?

스프링은 어렵고 복잡하며 느렸던 EJB의 문제점을 지적하며 등장한 오픈소스 애플리케이션 프레임워크입니다.

Java 기반의 프레임워크로, 여러 기술들의 모음입니다.

IOC, DI, AOP, POJO라는 큰 특징을 바탕으로 객체 지향언어의 특징을 살려, 

좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크입니다.

2. 스프링의 가장 큰 특징?

- IOC(inversion of Control, 제어 역전)

    : 객체의 생명주기를 개발자가 아닌 컨테이터가 대신 해주는 것을 말한다.

- DI(Dependency Injection, 의존성 주입)

    : 구성요소 간의 의존관계를 외부의 설정파일을 통해 정의하는 방식을 말한다.

    모듈간의 결합도를 낮추고 코드의 재사용성을 높인다.

- AOP(Aspect Object Programming, 관점 지향 프로그래밍)

    : 여러 객체에서 공통으로 사용할 수 있는 기능을 구분하여, 재사용성을 높여주는 방법이다.

- POJP(Plain Old Java Object)방식

    : getter/setter을 가지는 단순한 java 오브젝트를 말하며, 별도의 인터페이스를 구현하거나 상속박을 필요가 없어 기존 라이브러리를 지원하기 용이하고 객체가 가볍다.

3. 스프링을 사용하는 이유?

스프링을 사용하는 가장 큰 이유는 자바 엔터프라이즈 애플리케이션 개발을 편하게 할 수 있기 때문입니다.

기존의 EJB는 너무나 복잡하고 어려우며 느렸습니다. 개발의 복잡함을 개선하기 위해 나온 EJB가 구현체를 상속받는 것을 강요하고 Java의 장점과 다형성 적용을 막아버렸기 때문에 등장한 것이 스프링입니다.

따라서 스프링은 위와 같이 복잡함이 주는 여러 문제를 해결하고, 객체 지향의 특징을 살려 더 좋은 객체 지향 애플리케이션 개발을 도와주기 때문에 사용됩니다.