1. Com.springsource.javax.activation : Spring java-mail
2. Com.springsource.javax.mail : Spring java-mail
3. Com.springsource.org.aopalliance : Spring ProxyFactoryBean
4. Com.springsource.org.aspectj.tools : AspectJExpressionPointcut 포인트컷 표현식 지원
5. Com.springsource.org.castor : OXM castor Framework
6. Com.springsource.org.hsqldb : spring 내장형 DataBase
7. Com.springsource.junit : junit
8. Commons-logging : Spring-context가 사용
9. Mail : java-mail
10. Mockito : 목 프레임워크 중 Mockito
11. Mysql-connector : Mysql JDBC
12. Org.springframework.context.support : Spring java-mail
13. Org.springframework.oxm : Spring OXM(Object XML Mapping) Jaxb 등.
14. Spring-aop : 스프링 기능 자체의 aop, Spring ProxyFactoryBean
15. Spring-bean : 스프링 코어와 함께 의존성 주입 제공 (Core Container)
16. Spring-context : 스프링 코어, BeanFactory를 확장한 어플리케이션 컨텍스트 구현, 리소스 로드 및 국제화 지원(Core Container)
17. Spring-core : 다른 스프링 모듈이 사용하는 유틸리티(Core Container)
18. Spring-expression : EL 확장 Bean속성(배열, 컬렉션 포함).(Core Container)
19. Spring-jdbc : 스프링이 지원하는 jdbc.
20. Spring-test.jar
- @RunWith : Junit 프레임워크의 테스트 실행방법을 확장시 사용.
- SpringJUnit4ClassRunner : 어플리케이션컨텍스트를 만들고 관리하는 확장 클래스
- @ContextConfiguration(경로) : 자동으로 만들어줄 어플리케이션 컨텍스트 설정파일
21. Spring-tx : DuplicateKeyException.class 파일 존재 및 스프링 트랜잭션
서비스 중 SQL 자체를 수정한다고 했을 때 동기화 지원하는 ConcurrentHashMap의 한계를 위해 인덱스를 이용한 최적화된 검색을 지원하는 SQL 레지스트리 내장형 DB을 만들 것이다.
* 내장형 DB란
- DAO가 사용할 SQL을 저장해두고 관리할 목적으로 별도의 DB를 구성하면 배보다 배꼽이 더 큰 일이 될 수 있다. 그래서 이런 경우라면, DB의 장점과 특징은 그대로 갖고 있으면서도 애플리케이션 외부에 별도로 설치하고 셋업하는 번거로움은 없는 내장형 DB를 사용하는 것이 적당하다.
- 애플리케이션과 함께 시작되고 종료되는 DB를 말함. 데이터는 메모리에 저장되기 때문에 IO로 인해 발생하는 부하가 적어서 성능이 뛰어나다.
- 동시에 Map과 같은 컬렉션이나 오브젝트를 이용해 메모리에 데이터를 저장해두는 방법에 비해 매우 효과적이고 안정적인 방법으로 등록, 수정, 검색이 가능하고 최적화된 락킹, 격리수준, 트랜잭션을 적용할 수 도 있다.
* 메모리로 읽어들인 데이터(Map, List)를 여러가지 조건으로 검색하거나 통계를 내야한다고 생각해보자. 루프와 if 문이 난무하는 코드가 탄생할 것이다. 하지만 내장된 DB를 이용하면 이런 작업을 매우 편리하고 깔끔하게 사용될 수 있다.
* 자바에서 많이 사용되는 내장형 데이터베이스는 Derby, HSQL, H2를 꼽을 수 있다.
> JDBC 방식의 접근이라고 해서 기존의 DataSource와 DAO를 사용하는 모델을 그대로 사용하는 건 좋은 방법이 아니다. 애플리케이션 내에서 DB를 가동시키고 초기화 SQL 스크립트 등을 실행시키는 등 초기화 작업이 별도로 필요하기 때문. 스프링은 내장형 DB를 손쉽게 이용할 수 있도록 내장형 DB 지원 기능을 제공한다.
* 내장형 DB는 애플리케이션을 통해 DB가 시작될 때마다 매번 테이블을 새롭게 생성한다. 따라서 위와같이 테이블 생성 SQL 스크립트를 준비해둬야 한다.
* KEY와 SQL 모두 일반적으로 DB에서 키워드로 사용되기 때문에 그대로 필드이름으로 사용할 수 없으므로 뒤에 _ 추가.
16. JdbcTemplate : 어짜피 DB를 액세스할 때는 JDBC와 DataSource를 이용하면 되므로 내장형 DB를 위한 서비스 추상화처럼 별도의 레이어와 인터페이스를 제공하지 않는다. 스프링이 제공하는 JdbcTemplate면 충분하기 때문.
* 스프링의 내장형 DB 빌더에는 DB 사용시 필요한 URL과 드라이버 등을 초기화해주는 기능이 있다.
'스프링' 카테고리의 다른 글
[spring] xml_springOxm_내장형데이터베이스_트랜잭션_8 (0) | 2021.01.17 |
---|---|
[spring] xml_springOxm_내장형데이터베이스(hsqldb)_레지스트리_7 (0) | 2021.01.16 |
[spring] xml_springOxm_인터페이스상속_ConcurrentHashMap(동기화)_5 (0) | 2021.01.14 |
[spring] xml_인터페이스 상속을 통한 기능확장_4 (0) | 2021.01.13 |
[spring] xml_springOxm_jaxen_리소스추상화_3 (0) | 2021.01.12 |