1. Spring이란?
- Java 웹 애플리케이션 개발을 쉽고 편리하게 해주는 오픈소스 애플리케이션 프레임워크
- 프레임워크(Framework)란 비기능적 요구사항(성능, 보안, 확장성, 안정성 등)을 만족하는 구조와 구현된 기능을 안정적으로 실행되도록 잘 만들어진 구조의 라이브러리 덩어리
- 개발자는 복잡하고 실수하기 쉬운 Low Level 코드에 신경 쓰지 않고 Business Logic 개발에 집중
2. Spring 주요 특징
- Spring 삼각형은 Spring의 3대 주요 핵심 특징을 요약 설명
- POJO(Plain Old Java Object)는 객체지향 원리에 충실한 순수 Java 객체로 Spring의 기반
- IoC/DI는 Spring의 핵심 기능으로 객체의 생명주기를 컨테이너를 통해 관리
- AOP는 여러 객체에서 공통으로 사용하는 기능을 분리해서 재사용성을 높이는 프로그래밍 기법
- PSA는 서비스 추상화 기술로 복잡한 Low Level 로직을 추상화해 개발자에게 서비스 개발의 편의 제공
3. Maven
- Maven이란 애플리케이션 개발에 필요한 라이브러리를 편리하고 효율적으로 관리하는 빌드 관리도구
- 빌드(Build) 도구는 프로젝트의 생성, 테스트, 배포 등의 작업을 자동화 해주는 전용 프로그램
ㄴ Mavan, Gradle 등이 있으며 기본적으로 모든 IDE 개발 도구에 내장 - Maven은 Maven Repository 에서 의존 라이브러리를 다운로드
- POM(Project Object Model) Maven 설정 파일로 의존 라이브러리(dependency) 관리
- Spring은 기본적으로 Maven Project (Gradle은 Android에서 주로 사용)