스프링 프레임워크

스프링 프레임워크의 특징

tttck88 2019. 4. 28. 20:47

프레임워크의 최대 장점은 개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에,

실력이 부족한 개발자라 하더라도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다는것이다.

회사의 입장에서는 프레임워크를 사용하면 일정한 품질이 보장되는 결과물을 얻을 수 있고, 개발자의 입장에서는 완성된 구조에 자신이 맡은 코드를 개발해서 넣어주는 형태로 개발시간을 단축할 수 있었다.

 

스프링의 주요 특징

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

- 별도의 API를 사용하지 않고 일반적인 자바코드를 이용해서 객체를 구성하는 방식을 그대로 사용할 수 있다.

이로 인해 코드를 개발할 때 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않다는 것을 의미하기 때문이다. 개발자는 가장 일반적인 형태로 코드를 작성하고, 실행할 수 있기 때문에 생성성에서도 유리하고, 코드에 대한 테스트 작업 역시 좀 더 유연하게 할 수 있다.

 

의존성주입(DI)를 통한 객체 간의 관계 구성

- 제어의역행(IoC)는 말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다. 개발자는 필요한 부분을 개발해서 끼워넣기의 형태로 개발하고 실행하게 된다.

예를 들어 컴퓨터를 조립할때 메인보드를 결정하고, 그에 맞는 부품들을 구매하게 된다. 각 부품 간의 연결이나 호출은 메인보드에서 컨트롤 하기 때문에, 각 부품은 이전과 다음의 관련 부품에 대한 고민 없이 제작이 가능하다.

프레임워크 역시 이러한 구조를 가지기에 개발자는 프레임워크에 필요한 부품을 개발하고, 조립하는 방식의 개발을 하게 된다. 이렇게 조립된 코드의 최종호출은 개발자가 아닌 프레임워크 내부에서 결정된 대로 이뤄지기에 제어의 역행이라 한다.

스프링은 그 자체가 구조를 설계할 수 있도록 만들어 졌다는 뜻이므로, 개발자가 부품을 만들어 조립하는 형태의 개발이 가능하다는 것을 의미한다.

의존성주입(DI)은 제어의 역행이 일어나 때 스프링이 내부에 있는 객체(Bean)들 간의 관계를 정리할 때 사용하는 기법이다. 의존적인 객체를 직접 생성하거나, 제어하는 것이 아니라, 제어의 역행으로 특정 객체에 필요한 객체를 외부에서 결정해서 연결 시키는 것을 의미한다.

의존성 주입의 종류는 1)생성자를 통한 주입과 2)set메소드를 이용한 주입으로 구분할 수 있다.

간단한 어노테이션으로 처리가 가능하다.

 

AOP의 지원

- 반본적인 코드(보안,로그,트랜잭션)과 같은 코드를 분리해서 비즈니르 로직에만 집중할 수 있도록 한다.

 

트랜잭션의 지원

- 간단한 어노테이션이나 XML로 설정이 가능하기에 개발자가 매번 상황에 맞는 코드를 작성할 필요가 없도록 한다.