(Java)스프링이란?

이주형·2021년 3월 19일
0

스프링이란?

스프링이란 java를 기반으로 하는 웹 프레임워크이다.

탄생 배경

과거 EJB라는 기술을 사용하였다. 대부분의 기능들이 잘 담겨있었지만, 가격이 굉장히 비쌌고, 개발이 매우 어려웠다. 이를 이용해 개발하는데 불편함을 느낀 로드 존슨이라는 개발자는 EJB의 단점을 지적하는 책을 출간하는데, 이에 기반하여 Spring 오픈소스 프로젝트를 만들기 시작하며 탄생하였다.

스프링의 본질

스프링은 자바 기반 객체지향 웹 프레임워크이다.
즉, 스프링은 객체지향 프로그래밍을 제대로 구현할 수 있도록 만들어진 환경이며, 그에 따라 동작한다고 할 수 있다.

객체지향 프로그래밍이란?

https://velog.io/@jhl72e/객체지향-프로그래밍이란
참고

스프링의 특징

스프링의 특징으로는 DI, IOC, AOP, POJO 등이 있다.

DI

DI는 Dependency Injection의 줄임말로 객체를 외부에 의존해서 사용하게 되는 방식이다. 보통은 new()를 사용하여 객체를 내부 생성 후 이를 사용하지만, spring에서는 객체를 외부생성 후, 이를 getter, setter을 활용하여 가져오게 된다.

IOC

IOC는 Inversion Of Control 의 약자로, 직역하면 제어의 반전이다. 기존에 개발자가 가지고 있었던 권한인 객체,메소드의 생성과 호출 등을 뒤집어 개발자의 권한을 외부 컨테이너에게 줌으로서 Ioc컨테이너가 객체를 생성하고 이어주는 것과 같은 역할을 하게 된다.

AOP

AOP는 Aspect Oriented Programming의 약자로 한국어로는 관점 지향 프로그래밍이라고 불린다. 개발자인 우리가 보는 관점에 따라서 비슷한 기능들을 묶어 모듈화하여 프로그래밍 하는 건데, 디자인 패턴 중 프록시 패턴이라는 것을 사용하여 이를 구현한다.

POJO

POJO는 Plain Old Java Object의 약자로 특정 프레임워크에 의존하지 않는 그냥 일반 java객체를 사용하는 방식이다.

결국 spring도 java 기반의 웹 프레임워크이기 때문에 java의 모든 특성을 가지고 간다. 다만 java를 통한 프로그래밍을 할 때 OOP인 객체지향프로그래밍 방식을 사용한다고 하면, spring 프레임워크를 사용할시에 AOP방식으로 조금 다르게 프로그래밍을 하게 된다.

0개의 댓글