Spring이 무엇인지 알아보자 🔥

이강현·2024년 3월 8일
post-thumbnail

스프링(Spring)이란? 🌱

Java 애플리케이션 개발을 편하게 할 수 있도록 도와주는 오픈 소스 애플리케이션 프레임워크

스프링에 대한 오해 🤔

스프링은...

웹 애플리케이션을 만들고, DB 접근을 편리하게 하기 위해? ❌
웹 서버를 자동으로 설정해 주도록 하기 위해? ❌

스프링은?

스프링은 JAVA 언어 기반의 프레임워크입니다.
JAVA의 가장 큰 특징은 바로 ‘객체 지향’!

Spring은 좋은 객체 지향 애플리케이션 개발을 도와주는 프레임워크입니다.

스프링 등장 이전 😱

스프링이 등장하기 이전에는 비즈니스 로직을 구현하기 위해 기술 자체에 대한 공부를 추가적으로 해야만 했습니다.
비즈니스 로직을 구현하는 기술 자체가 복잡하고 어려웠기 때문입니다.

스프링 등장 🥹

그러나, 스프링은 이전 기술에 비해 사용 방법이 상대적으로 덜 복잡합니다!
따라서, 개발 초기에 기본적인 설정과 적용시킬 기술들만 잘 선택을 해준다면? 기술보다는 애플리케이션의 로직 자체에 더 집중하여 비즈니스 로직을 구현할 수 있습니다.

스프링의 특징 🤩

POJO 프로그래밍 지향

스프링의 가장 큰 특징은 POJO 프로그래밍을 지향한다는 것입니다.

여기에서 POJO란, Plain Old Java Object, 즉 순수 Java만을 통해서 생성한 객체를 의미합니다.

순수 Java 만을 사용한다는 것은 Java 및 Java의 스펙에 정의된 기술만 사용한다는 의미입니다.


어떤 객체가 외부의 라이브러리나 외부의 모듈을 가져와서 사용하고 있다면, 그 객체는 POJO라고 할 수 없습니다.


POJO는 말 그대로, 다른 기술을 사용하지 않는 순수한 Java만을 사용하여 만든 객체인 것입니다.

// 순수한🌱 pojo 객체
public class Person {

    private String name;
    private int age;
    
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

왜 POJO?

외부 라이브러리를 import하여 사용하고 있는 객체가 있다고 가정해봅시다.

import 외부라이브러리;

❌ 이 객체는 순수 Java 외에 외부 기술을 사용하고 있으므로, POJO가 아닙니다. ❌

import 외부라이브러리; // 근데 곧 없어질 예정, 기능이 수정됨

만약 이 객체가 사용하고 있는 기술이 Deprecated(곧 사라짐)되거나 개선된 신 기술이 등장하여 기존 기술과 관련된 코드를 모두 고쳐야 하는 상황이 발생한다면 😱

해당 기술을 사용하고 있는 모든 객체들의 코드를 전부 바꿔주어야만 합니다.
이는 해당 객체가 외부 모듈에 직접적으로 의존하고 있기 때문에 자연스럽게 발생하는 문제입니다. 😤

반면, POJO는?

순수 Java만을 사용하여 만든 객체이므로 특정 기술이나 환경에 종속되지 않습니다. ✅
따라서, 외부 기술이나 규약의 변화에 얽매이지 않아, 보다 유연하게 변화와 확장에 대처할 수 있습니다. ✅
이러한 POJO를 사용하여 비즈니스 로직을 구현하면 객체지향 설계를 제한없이 적용할 수 있으며, 코드가 단순해져 테스트와 디버깅 또한 쉬워집니다. ✅

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

마무리

다음 시간에는 POJO 프로그래밍을 위한 Spring의 기술들에 대해 알아보겠습니다.

reference

0개의 댓글