B.1) 의존 라이브러리의 종류와 특징
의존 라이브러리 이름
- 의존 라이브러리는 스프링 개발팀이 만든 것이 아니므로 모듈의 이름에 일정한 패턴이 있지는 않다.
- 하지만 스프링소스가 OSGi 호환 모듈로 재패키징한 모듈의 이름은 일정한 패턴이 있다.
- 예를 들면 최신 아파치 Commons 프로젝트의 Logging 라이브러리 파일의 이름은 commons-logging-1.1.1.jar이다.
- 그런데 스프링소스는 Commons Logging 라이브러리 파일을 OSGi 표준에 맞도록
메타정보를 추가해서 재패키징하고, OSGi 모듈의 명명 규칙을 따라
com.springsource.org.apache.commons.logging-1.1.1.jar 이름의 파일을 만들어 제공한다.
OSGi의 명명 규칙을 따라 모듈의 기본 패키지 이름을 모듈 이름으로 사용하게 했을 뿐만 아니라,
스프링소스가 OSGi 플랫폼에서 사용 가능한 모듈로 재패키징했음을 나타내도록
항상 com.springsource라는 공통 패키지 이름이 추가되어 있다. - 오픈소스 프레임워크나 라이브러리뿐 아니라 자바의 표준 API를 위해서도 OSGi 호환 모듈이 제공된다.
- 예를 들어 서블릿 API는 보통 servlet-api.jar라는 이름의 파일로 되어 있다.
- 반면에 스프링소스가 제공하는 OSGi 호환 라이브러리 이름은 com.springsource.javax.servlet-2.5.0.jar이다.
- 스프링 모듈은 파일의 이름이 달라도 내용은 동일하다.
- 반면에 스프링소스에 의해서 OSGi 호환 라이브러리로 재패키징된 파일은
라이브러리의 공식 배포파일이나 Maven에 등록된 파일과 구성이 조금 다를 수 있다는 점에 주의해야 한다.
- 반면에 스프링소스에 의해서 OSGi 호환 라이브러리로 재패키징된 파일은
의존 라이브러리 추가
- 스프링 프로젝트에 의존 라이브러리를 추가하는 방법은 스프링 모듈과 마찬가지로 두 가지 방법이다.
- 첫 번째는 수동으로 라이브러리 파일을 직접 넣어주는 방법이다.
- 스프링의 의존 라이브러리 파일은 각 라이브러리의 웹사이트에서 직접 다운로드 받을 수 있다.
이때는 스프링 버전에 따라서 호환 가능한 의존 라이브러리 버전이 맞는지 확인해야 한다.
스프링소스가 제공하는 OSGi 호환 라이브러리 파일을 사용할 경우는 스프링소스의 리포지토리 검색 기능을 활용하면 된다.
또한 의존 라이브러리로 인해 추가적으로 제3의 라이브러리를 필요로 할 경우 일일이 확인해서 추가해줘야 한다.
각 라이브러리의 의존정보는 해당 라이브러리의 문서나 POM 정보를 참고해야 한다. - 수동 추가의 경우는 이렇게 추가적으로 필요한 라이브러리를 일일이 찾아서 넣어줘야 하는 번거로움이 있다.
- 두 번째는 Maven 또는 Ivy의 의존 라이브러리 관리 기능을 사용해 자동으로 넣어주는 방법이다.
- 이 경우에는 Maven의 디폴트 리포지토리인 Maven Central에서 Maven 스타일의 이름을 가진 파일을 가져오는 방법과
스프링소스가 제공하는 Maven 리포지토리에서 OSGi 호환 파일을 가져오는 방법이 있다.
디폴트 리포지토리를 이용하는 경우에는 Maven 검색 사이트를 통해 손쉽게 의존 라이브러리 설정정보를 얻을 수 있다.
스프링소스가 제공하는 OSGi 호환 라이브러리 Maven 리포지토리를 이용하려면 추가 리포지토리 설정을 넣어준 후
각 라이브러리의 Maven 설정정보를 검색에서 찾아 스프링소스 Maven 리포지토리에 등록된 설정을 통해 가져올 수 있다. - 자동 의존 라이브러리 관리 기능을 사용할 경우 라이브러리의 의존정보를 참고해서
추가적인 의존 라이브러리도 추가해주지만 의존정보가 항상 완벽하진 않고,
프로젝트마다 선택적으로 추가하거나 제외시켜야 할 것도 있으므로
어떤 라이브러리가 자동으로 추가되는지 직접 확인해볼 필요가 있다.
- 첫 번째는 수동으로 라이브러리 파일을 직접 넣어주는 방법이다.
// Maven의 디폴트 라이브러리인 Maven Contral 이용
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-loging</artifactId>
<version>1.1.1</version>
</dependency>
// 스프링소스가 제공하는 OSGi 호환 라이브러리 Maven 리포지토리 이용
<repository>
<id>com.springsource.repository.bundles.external</id>
<name>SpringSource Enterprise Repository - External Bundle Releases</name>
<url>http://repository.springsource.com/maven/bundles/external</url>
<repository>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>com.springsource.org.apahce.commons.logging</artifactId>
<version>1.1.1</version>
</dependency>
'Java-Spring > 토비의 스프링 3.1' 카테고리의 다른 글
[토비의 스프링 3.1] Vol. 1 스프링의 이해와 원리 - 목차 (0) | 2024.05.28 |
---|---|
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 의존 라이브러리(2) (0) | 2024.05.28 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 의존 라이브러리(0) (0) | 2024.05.27 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 모듈(2) (0) | 2024.05.20 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 모듈(1) (0) | 2024.05.18 |
B.1) 의존 라이브러리의 종류와 특징
의존 라이브러리 이름
- 의존 라이브러리는 스프링 개발팀이 만든 것이 아니므로 모듈의 이름에 일정한 패턴이 있지는 않다.
- 하지만 스프링소스가 OSGi 호환 모듈로 재패키징한 모듈의 이름은 일정한 패턴이 있다.
- 예를 들면 최신 아파치 Commons 프로젝트의 Logging 라이브러리 파일의 이름은 commons-logging-1.1.1.jar이다.
- 그런데 스프링소스는 Commons Logging 라이브러리 파일을 OSGi 표준에 맞도록
메타정보를 추가해서 재패키징하고, OSGi 모듈의 명명 규칙을 따라
com.springsource.org.apache.commons.logging-1.1.1.jar 이름의 파일을 만들어 제공한다.
OSGi의 명명 규칙을 따라 모듈의 기본 패키지 이름을 모듈 이름으로 사용하게 했을 뿐만 아니라,
스프링소스가 OSGi 플랫폼에서 사용 가능한 모듈로 재패키징했음을 나타내도록
항상 com.springsource라는 공통 패키지 이름이 추가되어 있다. - 오픈소스 프레임워크나 라이브러리뿐 아니라 자바의 표준 API를 위해서도 OSGi 호환 모듈이 제공된다.
- 예를 들어 서블릿 API는 보통 servlet-api.jar라는 이름의 파일로 되어 있다.
- 반면에 스프링소스가 제공하는 OSGi 호환 라이브러리 이름은 com.springsource.javax.servlet-2.5.0.jar이다.
- 스프링 모듈은 파일의 이름이 달라도 내용은 동일하다.
- 반면에 스프링소스에 의해서 OSGi 호환 라이브러리로 재패키징된 파일은
라이브러리의 공식 배포파일이나 Maven에 등록된 파일과 구성이 조금 다를 수 있다는 점에 주의해야 한다.
- 반면에 스프링소스에 의해서 OSGi 호환 라이브러리로 재패키징된 파일은
의존 라이브러리 추가
- 스프링 프로젝트에 의존 라이브러리를 추가하는 방법은 스프링 모듈과 마찬가지로 두 가지 방법이다.
- 첫 번째는 수동으로 라이브러리 파일을 직접 넣어주는 방법이다.
- 스프링의 의존 라이브러리 파일은 각 라이브러리의 웹사이트에서 직접 다운로드 받을 수 있다.
이때는 스프링 버전에 따라서 호환 가능한 의존 라이브러리 버전이 맞는지 확인해야 한다.
스프링소스가 제공하는 OSGi 호환 라이브러리 파일을 사용할 경우는 스프링소스의 리포지토리 검색 기능을 활용하면 된다.
또한 의존 라이브러리로 인해 추가적으로 제3의 라이브러리를 필요로 할 경우 일일이 확인해서 추가해줘야 한다.
각 라이브러리의 의존정보는 해당 라이브러리의 문서나 POM 정보를 참고해야 한다. - 수동 추가의 경우는 이렇게 추가적으로 필요한 라이브러리를 일일이 찾아서 넣어줘야 하는 번거로움이 있다.
- 두 번째는 Maven 또는 Ivy의 의존 라이브러리 관리 기능을 사용해 자동으로 넣어주는 방법이다.
- 이 경우에는 Maven의 디폴트 리포지토리인 Maven Central에서 Maven 스타일의 이름을 가진 파일을 가져오는 방법과
스프링소스가 제공하는 Maven 리포지토리에서 OSGi 호환 파일을 가져오는 방법이 있다.
디폴트 리포지토리를 이용하는 경우에는 Maven 검색 사이트를 통해 손쉽게 의존 라이브러리 설정정보를 얻을 수 있다.
스프링소스가 제공하는 OSGi 호환 라이브러리 Maven 리포지토리를 이용하려면 추가 리포지토리 설정을 넣어준 후
각 라이브러리의 Maven 설정정보를 검색에서 찾아 스프링소스 Maven 리포지토리에 등록된 설정을 통해 가져올 수 있다. - 자동 의존 라이브러리 관리 기능을 사용할 경우 라이브러리의 의존정보를 참고해서
추가적인 의존 라이브러리도 추가해주지만 의존정보가 항상 완벽하진 않고,
프로젝트마다 선택적으로 추가하거나 제외시켜야 할 것도 있으므로
어떤 라이브러리가 자동으로 추가되는지 직접 확인해볼 필요가 있다.
- 첫 번째는 수동으로 라이브러리 파일을 직접 넣어주는 방법이다.
// Maven의 디폴트 라이브러리인 Maven Contral 이용
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-loging</artifactId>
<version>1.1.1</version>
</dependency>
// 스프링소스가 제공하는 OSGi 호환 라이브러리 Maven 리포지토리 이용
<repository>
<id>com.springsource.repository.bundles.external</id>
<name>SpringSource Enterprise Repository - External Bundle Releases</name>
<url>http://repository.springsource.com/maven/bundles/external</url>
<repository>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>com.springsource.org.apahce.commons.logging</artifactId>
<version>1.1.1</version>
</dependency>
'Java-Spring > 토비의 스프링 3.1' 카테고리의 다른 글
[토비의 스프링 3.1] Vol. 1 스프링의 이해와 원리 - 목차 (0) | 2024.05.28 |
---|---|
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 의존 라이브러리(2) (0) | 2024.05.28 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 의존 라이브러리(0) (0) | 2024.05.27 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 모듈(2) (0) | 2024.05.20 |
[토비의 스프링 3.1] Vol.1 스프링의 이해와 원리 - 스프링 모듈(1) (0) | 2024.05.18 |