Spring Boot 이전
Spring Boot 없이도 웹 애플리케이션과 REST API를 빌드할 수 있습니다.
Spring Boot는 2016년에 도입되었습니다.
Spring Boot 도입 전에 Spring Project를 설정하는 작업은 쉽지 않았습니다.
애플리케이션을 프로덕션 환경에서 사용 가능케 하려면, 많은 부분을 설정해야 했습니다.
1. 의존성 관리 Dependency Management
pom.xml에서, 개발자가 사용하려는 프레임워크와 그 프레임워크의 버전을 관리해야 합니다.
REST API를 만들어야 한다면, Spring framework, Spring MVC framework, JSON binding framework 등을 가져와야 했으며,
단위 테스트를 작성하려면 Spring Test, Mokito, JUnit 등을 가져와야 했습니다.
또한 가져온 것들의 버전을 명시해야 했습니다.
2. web.xml
web.xml은 웹 애플리케이션의 많은 것을 설정하는 데 필요합니다.
Spring MVC를 활용하려는 경우 Dispatcher Servlet을 설정해야 합니다.
3. Spring Configuration
애플리케이션을 개발하기 위해선 여러 설정을 해야 합니다.
Component Scan을 정의하고,
웹 애플리케이션을 빌드한다면 View Resolver를 정의해야 합니다.
(prefix, suffix)
DB 관련 애플리케이션을 빌드한다면 데이터 소스를 정의해야 합니다.
4. NFRs 비기능 요구사항 고려
Logging, Error Handling, Monitoring(프로덕션 단계의 애플리케이션 모니터링, 애플리케이션의 측정항목 살피기)
Spring Boot 이전에는 이러한 기능(로깅, 오류처리, 모니터링)을 수동으로 구현해야 했습니다.
요약
SpringBoot 이전에는 Spring Project의 설정이 까다로웠습니다.
pom.xml에서 의존성 관리(Dependency Management)
web.xml에서 웹 애플리케이션 설정 정의(Define Web App Configuration)
context.xml에서 Spring Bean 관리(Manage Spring Beans)
비기능 요구사항 구현을 위해 다량의 코드 작성(Implement NFRs, Non Funtional Requirements)
그리고 새로운 프로젝트를 만든다면, 이 모든 작업을 반복해야 합니다.
이와 같은 초기 설정에 많은 시간을 들일 수밖에 없었습니다.
마찬가지로 유지보수에 시간이 많이 들어갔습니다.
'Java' 카테고리의 다른 글
[SpringBoot] 프로덕션 환경 배포 준비하기(로깅, 모니터링, 구성관리) (0) | 2023.12.22 |
---|---|
[SpringBoot] Spring Boot 목적, 프로젝트 생성(spring.io) (0) | 2023.12.21 |
[SpringFramework] 개념 및 용어 정리 (0) | 2023.12.20 |
[SpringFramework] Spring Annotations (1) | 2023.12.20 |
[SpringFramework] PostConstruct & PreDestroy, CDI Jakart Contexts & Dependency Injection (0) | 2023.12.18 |