(책) 자바 웹을 다루는 기술

Chap 18 스프링 프레임워크 시작하기

EunaSon 2023. 9. 13. 16:48

18.1 프레임워크란? 762p                             

18.2 스프링 프레임워크 환경 설정하기 766p


18.1 프레임워크란?

762p

프레임워크의 사전적 의미는 '어떤 것을 구성하는 구조 또는 뼈대'임

소프트웨어적 의미로는 '기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 반제품' 정도의 느낌

즉, 어느 정도 완성된 상태로 제공하는 기능임. -> 개발자가 자신의 상황에 맞게 변형 및 추가해서 사용함

일정한 틀 속에서 개발하므로 개발 후 유지보수 및 기능의 확장성도 보장됨

=> 프레임워크를 사용하면 일정한 기준에 따라 개발이 이루어지므로 개발 생산성과 품질이 보장된 애플리케이션을 개발할 수 있다

 

1. 스프링 프레임워크

프레임워크 중 가장 많이 사용되고 있음. 자바 웹 애플리케이션 개발을 위한 오픈 소스 프레임워크임. 기존 프레임워크보다 가벼운 경량 프레임워크.

또한 스프링은 경량 컨테이너라고도 불림.

'컨테이너' 라고 하면 대표적으로 톰캣이 있음. 톰캣은 서블릿 컨테이너라고 불리는데, 톰캣을 실행하면 톰캣은 서블릿의 생성, 초기화, 서비스 실행, 소멸에 관한 모든 권한을 가지고 서블릿을 관리하기 때문임.

스프링도 마찬가지로 애플리케이션에서 사용되는 여러가지 빈(클래스 객체)을 개발자가 아닌 스프링이 권한을 가지고 직접 관리함.

 

스프링의 특징

EJB(Enterprise JavaBeans, 스프링 이전에 사용되던 프레임워크) 보다 가볍고 배우기 쉬우며 경량 컨테이너의 기능을 수행함

제어 역행(IoC, Inversion of Control) 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어함

의존성 주입(DI, Dependency Injection) 기능을 지원함

관점 지향(AOP, Aspect-Oriented Programming) 기능을 이용해 자원 관리를 함

영속성과 관련된 다양한 서비스를 지원함

수많은 라이브러리와의 연동 기능을 지원함

 

* 제어 역행 : 서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법

* 의존성 주입 : 클래스 객체를 개발자가 코드에서 생성하지 않고 프레임워크가 생성하여 사용함

* 관점 지향 : 핵심 기능 외 부수 기능들을 분리 구현함으로써 모듈성을 증가시키는 방법

 

스프링 프레임워크의 주요 기능

스프링 기능 설명
Core 다른 기능과 설정을 분리하기 위한 IoC 기능을 제공함
Context 스프링의 기본 기능으로서 애플리케이션의 각 기능을 하는 빈(Bean)에 대한 접근 방법을 제공함
DAO JDBC 기능을 좀 더 편리하게 사용할 수 있도록 함
ORM 하이버네이트나 마이바티스 같은 영속성 관련 프레임워크와 연동된 기능을 제공함
AOP 관점 지향 기능을 제공함
Web 웹 애플리케이션 개발에 필요한 기능을 제공
WebMVC 스프링에서 MVC 구현에 관련된 기능을 제공함

 

18.2 스프링 프레임워크 환경 설정하기

766p

현재는 메이븐 같은 자동화 도구를 사용해서 스프링 프레임워크 개발과 관련된 설정을 자동으로 할 수 있지만 스프링 프레임워크의 기본 기능을 익히기 위해 수동으로 이클립스 프로젝트에 스프링 프레임워크 3.0 버전을 설정해보자.

스프링 개발 환경 설정은 간단함. 새 프로젝트를 생성하고, 책과 함께 제공하는 예제소스에서 스프링 3.0 라이브러리 파일을 복사해 /WEB-INF/lib 폴더에 붙여넣으면 애플리케이션에서 바로 사용할 수 있음

https://github.com/gilbutITbook/006895/tree/master/pro18/WebContent/WEB-INF/lib