Spring and Spring Boot

Spring and Spring Boot are Java frameworks used to build applications. Spring is a comprehensive, flexible toolkit with many modules, like Spring MVC (for web), Spring Data (for data access), and Spring Security (for authentication). However, Spring requires extensive manual configuration, which can be time-consuming and complex.

Spring Boot simplifies Spring by offering pre-configured settings and dependencies, making it easier to set up applications quickly. It includes an embedded web server, so you don't need an external server for deployment. Spring Boot is more opinionated than Spring, focusing on ease of use while still leveraging Spring's core features like Inversion of Control (IoC) and Dependency Injection (DI). These allow the application to handle dependencies at runtime, offering flexibility in different environments, like using a different database in production versus development.

Spring Initializr is a tool to generate a Spring Boot project with the required dependencies. It acts like a shopping cart for selecting project dependencies and generating a ready-to-use Spring Boot application. This tool will be used to set up the Family Cash Card application in the course.

SpringSpring Boot는 자바 기반 애플리케이션을 구축하는 데 사용되는 프레임워크입니다. Spring은 Spring MVC(웹), Spring Data(데이터 접근), Spring Security(인증 및 권한 관리) 등 다양한 모듈을 제공하는 강력하고 유연한 도구입니다. 하지만 Spring을 설정하는 과정은 복잡하며 많은 수작업이 필요합니다.

Spring Boot는 Spring을 더 쉽게 사용할 수 있도록 해주는 도구입니다. 미리 구성된 설정과 의존성 덕분에 애플리케이션을 빠르게 구축할 수 있습니다. 또한 내장된 웹 서버를 포함하고 있어 외부 서버 없이 웹 애플리케이션을 배포할 수 있습니다. Spring Boot는 Spring의 핵심 기능인 **제어의 역전(Inversion of Control, IoC)**과 **의존성 주입(Dependency Injection, DI)**을 활용해 런타임 시점에서 의존성을 처리합니다. 이를 통해 개발 환경과 프로덕션 환경에서 서로 다른 설정을 쉽게 관리할 수 있습니다.

Spring Initializr는 Spring Boot 프로젝트를 생성할 때 사용하는 도구로, 필요한 의존성을 선택하고 즉시 실행 가능한 프로젝트를 생성해줍니다. 가족 캐시 카드 애플리케이션을 구축할 때 이 도구를 사용하여 빠르게 시작할 수 있습니다.