BackEnd/Spring
18장. 스프링 프레임워크 시작하기
제이드Jade
2022. 2. 26. 22:57
- 모델2 기반으로 개발하면 장점도 있지만 새로운 애플리케이션을 개발할 때마다 공통기능까지도 일일이 처음부터 다시 개발해야 한다는 단점이 있음
- 일반적인 웹 애플리케이션에서 많이 사용하는 기능은 미리 만들어서 제공하고 그 외에 필요한 부분만 추가 및 수정하여 표준화를 추구하여 해결한다.
- 지금 대부분의 웹 애플리케이션은 각 기능을 개발자가 일일이 구현하기 보단 표준화된 방법으로 개발한다. 이를 가능하게 해주는 것이 스프링 같은 프레임워크 환경이다!
18.1 프레임워크란?
- 어떤 것을 구성하는 구조 또는 뼈대 // 기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 반제품
- 개발자는 여기에 자신의 상황에 맞게 변형 및 추가해서 사용한다.
- 일정한 기준에 따라 개발이 이루어지므로 개발 생산성과 품질이 보장된 애플리케이션을 개발할 수 있음
<스프링 프레임워크>
- 자바 웹 애플리케이션 개발을 위한 오픈 소스 프레임워크
- 기존 프레임워크보다 가벼운 경량 프레임워크
- 경량 컨테이너 : 애플리케이션에서 사용되는 여러가지 빈(클래스 객체)을 개발자가 아닌 스프링이 권한을 가지고 직접 관리
(cf. 서블릿 컨테이너(톰캣) >> 서블릿 생성, 초기화, 서비스 실행, 소멸에 관한 모든 권한을 가지고 서블릿을 관리)
<스프링의 특징>
- 제어 역행(IoC) 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어
- 의존성 주입(DI) 기능 지원
- 관점 지향(AOP) 기능을 이용해 자원 관리
- 영속성과 관련된 다양한 서비스, 수많은 라이브러리와의 연동 기능을 지원
* 용어정리
- 제어 역행(IoC) : 서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 생성 - 의존성 주입(DI) : 클래스 객체를 개발자가 코드에서 생성하지 않고 프레임워크갸 직접 생성 - 관점 지향(AOP) : 핵심 기능 외 부수 기능들을 분리 구현함으로써 모듈성을 증가 |
* 스프링의 주요 기능
스프링 기능 | 설명 |
Core | 다른 기능과 설정을 분리하기 위한 IoC 기능을 제공 |
Context | 스프링의 기본 기능으로서 애플리케이션의 각 기능을 하는 빈(Bean)에 대한 접근 방법 제공 |
DAO | JDBC 기능을 좀 더 편리하게 사용할 수 있도록 함 |
ORM | 영속성 관련 프레임워크(ex. Hibernate, MyBatis)와 연동된 기능 제공 |
AOP | 관점 지향 기능 제공 |
Web | 웹 애플리케이션 개발에 필요한 기능 제공 |
WebMVC | 스프링에서 MVC 구현에 관련된 기능을 제공 |
18.2 스프링 프레임워크 환경 설정하기
- 현재는 Maven 같은 자동화 도구를 사용해 스프링 프레임워크 개발과 관련된 설정을 자동으로 할 수 있음
- 수동으로 이클립스 프로젝트에 스프링 프레임워크 3.0 버전을 설정하기
>> 스프링 3.0 라이브러리 파일들을 새 웹 프로젝트에 /WEB-INF/lib 폴더에 넣기