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 폴더에 넣기