본문 바로가기

JAVA

[JAVA] 스프링의 정의와 특징

스프링은  JAVA 벡엔드 개발에 있어 필수적인 프레임워크인데 스프링이 뭔지 정확히 모르고 개발하는 과거의 나를 반성하며 되새김으로 정의를 바로잡고자 간단한 글을 작성한다.


스프링이란?

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

>

보통 기업에서는 비즈니스 로직을 가지고있는데 기업이 제공하는 서비스를 코드로 구현한 것으로 
사용자의 요구사항을 처리하기위한 실질적인 코드들을 의미한다.
이러한 요구사항들을 처리하려면 많이 복잡하고 기술이 어려웠는데 
스프링을 사용한다면 초기에 설정과 적용시킬 기술들을 선택을 해준다면 기술 자체에 집중하는 것보다 
구현하고자 하는 로직을 구현할 수 있다.

 

스프링의 특징?

POJO 프로그래밍을 지향.

여기서 POJO란?
> Plain Old Java Object 즉 순수 자바만을 통해서 생성한 객체를 의미하는데 
이 말은  자바 및 자바에 정의된 기술만을 사용한다는 의미이다.

예를들어 어떤 객체가 외부의 라이브러리나 모듈을 가져와서 사용하고 있다면 그 객체는 POJO라 칭할 수 없다.
POJO란 말 그래도 순수한 자바로만 만든 객체를 의미하는 것이다.

 

그렇다면, POJO는 왜 중요한 것일까?

외부 라이브러리를 import 하여 라이브러리의 메서드를 사용하고 있는 객체가 있다고 가정할 때,

이 객체는 순수 Java 외에 외부 기술을 사용하고 있으므로, POJO가 아닌데 

이때, 이 객체가 사용하고 있는 기술이 뒤처지거나,

개선된 신 기술이 등장하여 모두 고쳐야 하는 상황이 발생하면 의존하는 모든 객체들의 코드를 전부 바꿔주어야 하는데

이는 해당 객체가 외부 모듈에 직접적으로 의존하고 있기 때문에 자연스럽게 발생하는 문제다

 

반면, POJO는 순수 Java만을 사용하여 만든 객체이므로 특정 기술이나 환경에 종속되지 않는다.

따라서 보다 유연하게 변화와 확장에 대처할 수 있다.

이러한 POJO를 사용하여 비즈니스 로직을 구현하면

객체지향 설계를 제한 없이 적용할 수 있으며, 코드가 단순해져 테스트와 디버깅 또한 쉬워진다

이처럼 비즈니스 로직을 구현하는 데에 POJO를 적극적으로 활용하는 프로그래밍 패러다임을

POJO 프로그래밍이라고 한다

 

 

 


다음에는 POJO 프로그래밍을 위해 스프링이 지원하는 기술들에 대해 알아보겠다.

반응형