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
'(책) 자바 웹을 다루는 기술' 카테고리의 다른 글
Chap 20 스프링 AOP 기능 (0) | 2023.09.15 |
---|---|
Chap 19 스프링 의존성 주입과 제어 역전 기능 (0) | 2023.09.14 |
Chap 17 모델2 방식으로 효율적으로 개발하기 -2 (0) | 2023.09.13 |
Chap 17 모델2 방식으로 효율적으로 개발하기 -1 (0) | 2023.09.09 |
Chap 16 HTML5와 제이쿼리 (0) | 2023.09.07 |