⚡️ 스프링을 공부하기 전
본격적으로 스프링을 공부하기 전에, 왜 스프링이 주력 프레임워크가 되었고 어떤 특장점이 있는지 알아보려 합니다.
⚡️ 스프링 프레임워크(Spring Framework)
스프링은 엔터프라이즈 비즈니스 컴포넌트를 개발할 수 있는 자바 프레임워크입니다.
스프링이 등장하기 전 자바 기반의 엔터프라이즈 애플리케이션은 대게 EJB(Enterprise Java Beans)로 개발되었습니다.
이 EJB 기술은 많은 기능과 장점에도 불구하고 복잡한 스펙, 개발 및 유지보수의 불편함, 높은 난이도 등
여러 단점때문에 스프링의 등장 이후로는 거의 사용되지 않는 기술이 되어버렸습니다.
스프링의 등장 이후로 EJB가 사용되지 않는다고 했으니
당연히 스프링은 이 단점들을 개선했기 때문에 많은 개발자들에게 선택받을 수 있었다고 생각해볼 수 있습니다.
⚡️ 스프링 프레임워크의 특징
스프링의 대표되는 특징을 한 줄로 설명하면 제어의 역행(IoP)과 관점 지향 프로그래밍(AOP)을
지원하는 경량의 컨테이너 프레임워크로 표현할 수 있습니다.
위와 같은 대표적인 특징을 풀어서 설명드리겠습니다.
📌 경량
우선 스프링은 가볍습니다.
하나 이상의 JAR 파일로 구성된 모듈이 모여 구성된 스프링은 몇 개의 JAR 파일만 있으면
개발과 실행이 모두 가능하기 때문에 애플리케이션의 배포 역시 빠르고 쉽게 할 수 있습니다.
또한 스프링은 클래스를 구현하는 데 특별한 규칙이 없는 단순하고 가벼운 객체인
POJO(Plain Old Java Object) 형태의 객체를 관리하기 때문에 가볍다고 할 수 있습니다.
📌 제어의 역행 (Inversion of Control, IoC)
기존에는 객체의 의존관계를 개발자가 직접 처리해주곤 했습니다.
이는 객체와 객체 간 높은 결합도를 지닌 상태가 되도록 하는 주된 요인이었습니다.
하지만 스프링에서는 객체 생성과 의존 관계를 자바 코드로 직접 처리하는 것이 아니라 컨테이너가 대신 처리하기 때문에
소스에 의존관계가 명시되지 않아 낮은 결합도를 유지해 유지보수가 용이해집니다.
📌 관점지향 프로그래밍 (Aspect Oriented Programming, AOP)
관점지향 프로그래밍은 비즈니스 메소드를 개발할 때, 핵심 비즈니스 로직과 반복해서 등장하는 공통 로직을 분리함으로써
모듈의 독립성 즉, 응집도가 높아질 수 있도록 지원합니다.
'Spring' 카테고리의 다른 글
[Spring/스프링] ComponentScan, XML & Java 사용법 (0) | 2022.04.05 |
---|---|
[Spring/스프링] 싱글톤 패턴(Singleton pattern) 과 @Scope prototype (0) | 2022.04.02 |
[Spring/스프링] @Qualifier 구분자, 의존성 주입 시 위치 (0) | 2022.04.02 |
[Spring/스프링] @Configuration @Bean 스프링 설정 클래스 생성하기 (0) | 2022.04.01 |
[Spring/스프링] 제어의 역행(IoP)과 의존성 주입(Dependency Injection, DI) (0) | 2022.03.31 |
댓글