Spring Framework
Spring Framework 구조: ┌─────────────────────────────────────────────┐ │ Spring Core │ ├─────────────────┬───────────────────────────┤ │ Spring Boot │ Spring MVC │ ├─────────────────┼───────────────────────────┤ │ Spring Data │ Spring Security │ ├─────────────────┼───────────────────────────┤ │ Spring Cloud │ Spring Batch │ └─────────────────┴───────────────────────────┘
Spring Framework는 자바 기반의 애플리케이션 개발 프레임워크 입니다. IoC(제어의 역전)와 DI(의존성 주입)를 핵심으로 하는 경량 컨테이너로, 객체의 생성과 관리를 Spring이 담당합니다. AOP(관점 지향 프로그래밍), PSA(일관된 서비스 추상화)등의 기능을 제공해서 결합도는 낮추고 응집도는 높이는 애플리케이션 개발을 가능하게 합니다
Spring Boot를 통해 설정을 간소화하고, 자동 구성 기능을 개발으로 생산성을 크게 향상 시켜줍니다.
프로젝트에선 Spring Boot를 사용해 최소한의 설정으로 웹 어플리케이션을 구축하고 Spring Data JPA로 데이터 접근, Spring security로 인가/인증, Spring의 트랜잭션 관리를 활용합니다
어노테이션 기반의 개발로 코드가 간결해지고 의존성 주입으로 테스트하기 쉬운 구조를 만들 수 있어서 개발 생산성이 크게 향상됩니다.
Spring VS Spring boot
Spring은 프레임워크 자체이고, Spring Boot는 Spring을 더 쉽게 사용할 수 있게 해주는 도구입니다.
“Spring의 단점은?” → A: “학습 곡선이 있고, 과도한 어노테이션 사용 시 가독성이 떨어질 수 있습니다. 하지만 Spring Boot가 이런 복잡성을 많이 해결해줍니다.” “왜 Spring을 선택했나요?” → A: “풍부한 생태계, 활발한 커뮤니티, 기업에서 많이 사용하는 검증된 기술이고, 특히 DI와 AOP로 유지보수하기 좋은 코드를 작성할 수 있어서 선택했습니다.”