1. Spring Framework 란
❗ Spring Framework는 Java 기반의 애플리케이션 개발을 위한 오픈 소스 애플리케이션 프레임워크입니다. 강력한 기능과 유연성을 제공하여 개발자들이 Java 애플리케이션을 더욱 효율적으로 개발하고 관리할 수 있도록 지원합니다.
스프링은 대한민국 전자정부 표준 프레임워크 기반기술로 사용 됨.
스프링 프레임워크는 자바 기반의 개발 효율성을 향상시키는 오픈소스 기반의 경량급 애플리케이션 프레임워크이다.
- 경량급 프레임워크로서 엔터프라이즈 개발의 기술을 빠르고 간편하게 지원하여 생산성과 품질을 향상 시켜줌
- 비즈니스 Logic 개발에 전념할 수 있도록 도와줌
- 특정 영역이나 기술에 국한되지 않는 애플리케이션 프레임워크
스프링과 객체 지향
좋은 객체 지향 프로그래밍이란?
- 역할과 구현을 확실히 분리해야한다.
- 역할(인터페이스) 자체가 변하면, 클라이언트, 서버 모두에 큰 변경이 발생한다.
- 즉, 인터페이스를 안정적으로 잘 설계하는 것이 중요!
- 객체지향에서 다형성이 가장 중요하다!
- Spring은 다형성을 극대화해서 이용할 수 있게 도와준다.
- IoC, DI는 다형성을 활용해서 역할과 구현을 편리하게 다룰 수 있도록 지원한다.
- SOLID
2. 핵심 개념
- IOC : 제어의 역전
- ID : 의존성 주입
- AOP : 관점 지향 프로그래밍
- Data Access : 데이터 엑세스 지원
- 웹 MVC : 웹 개발 지원
Spring Framework 구성 모듈
7가지 모듈
- Spring Core : 핵심 모듈. 스프링 프레임워크의 기본 기능을 제공 인스턴스 관리 뿐 아니라 의존 관계 설정, 객체 관리 등 IoC 컨테이너의 기능을 제공
- Spring AOP : 관점 지향 프로그래밍을 지원. 보안, 트랜잭션, 로그 등 공통 기능을 비즈니스 로직과 분리하여 적용
- Spring ORM : DB 접근에 사용하며 관계 매핑을 좀 더 쉽게 지원
- Spring DAO : JDBC 추상화 계층
- Spring Web : 일반적인 웹 어플리케이션 개발에 필요한 자원 제공
- Spring Context : Spring을 Framewokr로 만들어주는 모듈. 생명주기 이벤트, 유효성 검사 등을 지원하는 것으로 BeanFactory의 개념을 확장(BeanFactory: Spring을 컨테이너로 만드는 핵심 모듈)
- Spring Web MVC : UI와 어플리케이션이 분리된 웹 어플리케이션을 개발할때 사용. JSP, velocity 등 다양한 뷰 기술을 지원