Spring Framework란? 개념 정리

심삼진·2023년 5월 2일
0

Spring

목록 보기
11/12

Spring Framework란?

자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 라고 소개되어 있습니다.

여기서 단어별로 끊으면서 Spring Framework가 정확히 어떤 프레임워크인지 설명하겠습니다.


1. 엔터프라이즈 개발

뜻을 풀이하면 기업을 대상으로 하는 개발이라는 말입니다.

즉, 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로부터 행해지는 매우 큰 규모의 환경을 엔터프라이즈 환경이라고 합니다.


2. 오픈소스 경량급

여기서 경량급은 툴의 도움 없이는 다루기 힘든 난해한 설정파일과 불편한 서버 배치 등으로 인한 부담을 없애고, 쉽게 해당 기능들을 사용할 수 있게 되었음을 의미합니다.

오픈 소스는 소스가 공개되어 있어서, 언제든 수정이 가능하고 이슈를 보내 해결할 수 있는 소스를 말합니다.


3. 애플리케이션 프레임워크

애플리케이션 프레임워크는 특정 계층이나, 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크를 말합니다.

즉, 애플리케이션 프레임워크는 애플리케이션 개발의 전 과정을 빠르고 편리하며 효율적으로 진행하는데 일차적인 목표를 두는 프레임워크입니다.





Spring Framework의 특징


1. 경량 컨테이너

Spirng Framework는 경량 컨테이너로 자바 객체를 담고 직접 관리합니다.
객체의 생성 및 소멸 그리고 라이프 사이클을관리하며 언제든 Spring 컨테이너로 부터 필요한 객체를 가져와 사용할 수 있습니다.

이는 Spirng이 IOC 기반의 Framework임을 의미합니다.


2. POJO(Plain Old Java Object) 기반의 구성

평범한 자바 객체를 뜻합니다.

POJO는 gettet/setter를 가진 단순 자바 오브젝트로 정의를 하고 있습니다. 이러한 단순 오브젝트는 의존성이 없고 코드가심플하여 추후 테스트 및 유지보수가 편리한 유연성의 장점을 가집니다. 이러한 장점들로 인해 객체지향적인 다양한 설계와 구현이 가능합니다.


3. DI(Dependency Injection)

앞에서 말했다시피 스프링은 IOC(Inversion of Control) 기반의 Framework입니다.

IOC란 스프링 그 자체가 구조를 설계할 수 있어서 개발자가 직접 부품을 조립하는 형태의 개발이 가능합니다.

이렇게 조립된 코드의 최종 호출은 개발자가 결정하는 것이 아니라 스프링 프레임워크 내부에서 이루어지는 것을, 제어의 역행(IOC)라고 합니다.

의존성 주입(DI)은 제어의 역행이 일어나는 것을 전제로 하여 스프링 객체가 서로 의존하는 관계가 되게끔 의존성을 주입하는 것입니다.
IOC에서 DI란 각 클래스 사이에 필요로 하는 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것입니다.


4. AOP(Aspect Oriented Programming) 지원

AOP란 말 그대로 풀이하자면 관점 지향 프로그래밍이란 뜻입니다.

대부분의 시스템에서 비즈니스 로직은 아니지만 보안, 로그, 트랜잭션과 같이 반드시 처리가 필요한 부분을 횡단 관심사라고 합니다.

AOP는 비즈니스 로직과 횡단 관심사를 분리시켜 비즈니스 로직에 영향을 끼치지 않게 횡단 관심사를 끼워 넣는 개발 형태이며 이로 인해 많은 장점들이 생깁니다.

  1. 무분별하게 중복되는 코드를 한 곳에 모아 중복 코드 제거 가능

  2. 공통기능을 한 곳에 보관함으로써 공통 기능 하나의 수정으로 모든 핵심기능들의 공통기능을 수정 가능

  3. 그로 인해 효율적인 유지보수가 가능하며 재활용성이 극대화


5. 독립적인 개발 환경

스프링은 가장 단순한 서버환경인 톰캣(Tomcat)이나 제티(Jetty)에서 완벽하게 동작합니다.

단순한 개발툴과 기본적인 개발환경으로도 엔터프라이즈 개발에서 필요로 하는 주요한 기능을 갖춘 애플리케이션을 개발하기에 충분합니다.



profile
주니어 백엔드 개발자

0개의 댓글