Spring의 개념

SW고구마·2021년 11월 20일
0
post-thumbnail

Spring Framework이란?

  • 자바(JAVA) 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크
  • 엔터프라이즈 애플리케이션 개발의 복잡성을 줄여주기 위한 목적으로 만들어진 경량화된 프레임워크
  • 종속 객체를 생성(DI, Dependecy Injection)해주고, 관리해주는 도구

Spring의 특징

POJO(Plain Old Java Object)

그럼 어떤 부분이 경량화되었다고 하는 것인가?
과거 Java EE의 *EJB(Enterprise Java Beans)를 사용하면서 해당 플랫폼에 종속되어 무거운 객체를 생성하는 방식을 많이 사용했었다.
스프링은 이에 반해 EJB를 사용하지 않고 POJO(Plain Old Java Object) 방식을 활용해 순수한 자바 객체로 플랫폼 종속성을 줄이면서 가벼운 애플리케이션을 만들 수 있다.

POJO의 특징

  • 특정 규약이나 환경에 종속되지 않는다
    => 객체지향을 지향하는 자바의 기본에 충실하게 비지니스 로직을 구현

POJO의 장점

  • 코드의 간결함 => 비지니스 로직과 특정 환경 및 로우레벨의 코드와 분리해 단순해진다
  • 자동화 테스트에 유리 => 환경종속적이지 않아 테스트에 매우 유연
  • 객체지향적인 설계로 자유로운 사용이 가능

EJB(Enterprise Jave Bean)?
기업의 시스템을 구현하기 위한 서버측 컴포넌트 모델로, 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이라고 한다.
EJB는 비지니스 로직이 점차 복잡해짐에 따라 "개발자가 로우 레벨의 기술에 신경을 줄이고 오직 비지니스 로직에만 집중하게 하도록 하자"는 취지로 만들어졌다.

DI와 IoC

  • 의존성 주입, DI(Dependency Injection)
    의존성 주입(DI)란 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 히고 런타임 시에 해당 관계가 유연하게 주입.
    이를 통해 유연성을 확보하고 의존성을 낮출 수 있다

  • 제어의 역전, IoC(Inversion of Control)
    스프링 컨테이너가 필요에 따라 개발자 대신 Bean들을 관리해주는 것으로, 개발자가 직접 객체를 관리하는 것이 아닌 도구인 컨테이너가 생성된 객체를 관리해 주면서 의존성을 맺어주는 등 "제어가 역전되었다"라는 의미이다.

DI와 IoC는 스프링에서 중요한 개념으로 다시 한 번 정리!

profile
하루하루 조금씩이라도

0개의 댓글