왜 프레임워크를 사용할까?
우리가 스프링을 사용하는 이유에 대해 생각하려면 앞서 프레임워크를 왜 사용하는지에 대해서 생각을 해봐야 한다. 우리가 프레임워크를 사용하는 몇가지 이유를 정리해봤다.
- 체계적인 코드관리로 유지보수가 용이하다.
- 기본설계 및 기능 라이브러리를 제공하여 개발 생산성이 높다
- 코드에 대한 재사용성이 높다
- 추상화된 코드 제공을 통해 확장성이 좋다.
우리는 위의 장점을 얻기 위해 프레임워크를 사용한다.
프레임워크에 대해 잘 모르겠다면 아래의 포스트를 참조하길 바란다.
왜 많은 프레임워크중에 스프링을 사용할까?
- 대중적인 언어인 Java 기반의 프레임워크이다.
-
시간이 흐르며 프레임워크가 단단해지고 있다.
- 초창기 스프링과 비교하였을 때, Spring Boot, Annotation 기능 등의 개발을 편리하게 하는 많은 기능들과 모듈들이 꾸준히 추가되고 있다. 또한 모듈들을 독립적으로 사용가능하여 필요한 모듈만 학습하여 사용할 수 있다.
- 많은 사용자들이 오랜 시간동안 사용하며 프레임워크의 안정성이 증명됐다.
- 다양한 개발사례와 문서, 레퍼런스가 제공되고 있다.
-
POJO기반의 구성(Plain Old Java Object)
- 특정한 라이브러리나 컨테이너 기술에 종속되어있지 않아 Java 코드를 이용하여 객체를 구성하는 방식 그대로 스프링에서도 이용 가능하다.
- 덕분에 자유롭게 객체지향적인 설계를 할 수 있다. → 높은 생산성과 유연한 테스트를 할 수 있다.
-
DI를 통한 객체 관계 구성
- 제어의 역전을 통해 외부에서 메서드나 객체의 호출 작업들이 이루어진다.
- DI의 특징으로 인해 개발자가 POJO개발이 가능하게 된다.
-
AOP 지원
- 개발을 하다보면 보안, 로그, 트랜잭션과 같이 반복적으로 처리해줘야하는 공통 관심사가 생기게 된다. 스프링은 이러한 관심사들을 AOP라는 기능을 통해 별도로 관리하고 적용할 수 있도록 지원하고 있다.
- 덕분에 개발자들은 반복적인 코드를 줄이고 핵심 비즈니스 로직에 집중할 수 있다.
- 편리한 MVC 구조
-
WAS에 독립적인 개발 환경
- Spring Boot가 WAS를 내장으로 갖고 있어서 개발환경 설정이 편리하고 WAS를 변경할 수도 있다.
- 개발자가 기본적으로 DI, AOP, 서비스 추상화와 같은 디자인 패턴을 강제적으로 사용하게끔 함으로서 코드 구조 퀄리티의 최소한을 보장한다.