본문 바로가기
오류

[pom.xml]maven dependency 알아보기

by proudev 2023. 3. 8.

** Spring MVC를 사용하기 위한 디펜던시

예) 컨트롤러, 뷰, 모델 사용하기 위해 클래스, 인터페이스, 어노테이션이 포함되어 있다.

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>${org.springframework-version}</version>
</dependency>

 

 

**AspectJ는 자바 언어의 확장 프레임워크, AOP로도 알려져 있다.

<!-- AspectJ -->
<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjrt</artifactId>
  <version>${org.aspectj-version}</version>
</dependency>

 

**Simple Logging Facade for Java

쉽게 로깅하는 것, 자바에서 제공하는 java.util.loggin은 까다롭다. 그래서 많은

개발자들이 로깅 라이브러리 사용한다. 그 중에서도 SLF4J 호환이 좋고 많이 사용된다.

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>${org.slf4j-version}</version>
</dependency>

 

 

**로깅을 위한 API, 로깅 기능을 가지고 있지 않음

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>${org.slf4j-version}</version>
  <scope>runtime</scope>
</dependency>

 

 

**SLF4J와 Log4j 함께 사용할 때 필요합니다.

이 두개를 함께 사용할때... 

SLF4J를 통해 로깅 기능 호출-----> Log4j 실제 기능을 구현

이를 구현하려면 아래와 같은 slf4j-log4j12 dependency 추가해야함.

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>${org.slf4j-version}</version>
  <scope>runtime</scope>
</dependency>

 

 

**log4j 로그 출력

<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version>
</dependency>

 

 

**@inject 어노테이션 사용가능

<!-- @Inject -->
<dependency>
  <groupId>javax.inject</groupId>
  <artifactId>javax.inject</artifactId>
  <version>1</version>
</dependency>

 

 

**@Resouce 어노테이션 사용 가능 (클래스, 필드, 메서드에서 사용 가능: 이름 기반 의존성 주입)

<dependency>
  <groupId>javax.annotation</groupId>
  <artifactId>javax.annotation-api</artifactId>
  <version>1.3.2</version>
</dependency>

 

 

**Java Servlet API 일부

Servlet API를 구현한 컨테이너(예: Tomcat, Jetty 등) 에서 제공되는 라이브러리

이를 통해 Servlet API를 다운로드하거나 관리하지 않아도 됨

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>

 

**JSP API 제공함

JSP 작성할때 필요한 메서드나 상수가 포함된 클래스 사용가능함

<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.1</version>
  <scope>provided</scope>
</dependency>

 

 

**JSTL(JavaServer Pages Standard Tag Library)을 사용하기 위해 필요한 라이브러리를 제공함

JSTL은 JSP 페이지에서 자주 사용되는 일반적인 태그 라이브러리(조건문, 반복문 등)

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

 

 

 

**JUnit : 단위 테스트 위한 프레임워크(작은 단위 테스트: 메소드, 클래스)

<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
</dependency>

 

 

**Spring Test: 스프링 애플리케이션의 테스트를 위한 프레임워크(큰 규모 테스트: 서비스)

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-test</artifactId>
  <version>${org.springframework-version}</version>
  <scope>test</scope>
</dependency>

 

 

**Lombok 사용가능

getter/setter/생성자/equals/hashcode/toString 등 어노테이션만 붙여주면 자동으로 생성해줌

<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.12</version>
  <scope>provided</scope>
</dependency>

 

 

**MySQL과 Java를 연결하는 JDBC

MySQL의 데이터베이스와 통신하는 데 필요한 클래스, 인터페이스, 메소드 등을 제공함

JDBC 인터페이스를 구현하여 Java에서 MySQL 데이터베이스와 통신이 가능하도록 합니다.
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>6.0.6</version>
</dependency>

 

 

**MyBatis는 자바 객체와 SQL문 사이의 매핑을 편리하게 해주는 ORM(Object-Relational Mapping) 프레임워크 중 하나

MyBatis는 JDBC API를 이용하여 데이터베이스와 연동하므로 JDBC 드라이버도 함께 설치해야 합니다.

이 부분에서는 MySQL 데이터베이스에 연동하기 위한 MySQL JDBC 드라이버를 사용하고 있습니다.

즉, MyBatis사용해서 **Java 애플리케이션과 DB 간의 엑세스 간소화

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.6</version>
</dependency>

 

 

**MyBatis-Spring 통합 라이브러리

이 두개를 통합해서 Spring 어플리케이션에서 MyBatis 사용

MyBatis-Spring의 주요 기능은 Spring 트랜잭션을 관리하며, 이를 사용하여 데이터베이스 트랜잭션을 처리할 수 있습니다.

또한, MyBatis 구성을 간소화하고 XML 매퍼 파일을 사용하여 SQL 쿼리를 작성하고 실행할 수 있습니다.

이외에도 MyBatis-Spring은 Spring 애플리케이션에서 MyBatis를 사용하기 위한 다양한 유틸리티 클래스를 제공합니다.

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>

 

 

**Spring Framework에서 iBatis(MyBatis) 연동을 위해 사용됩니다.

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-ibatis</artifactId>
  <version>2.0.8</version>
</dependency>

 

**Spring Framework에서 JDBC(Java Database Connectivity)를 사용하여 데이터베이스와 상호 작용하기 위해 사용됩니다.

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>${org.springframework-version}</version>
</dependency>

 

 

 

**DBCP는 JDBC 연결 풀링을 구현하는 Apache Commons 프로젝트입니다. 이를 사용하면 웹 응용 프로그램에서 데이터베이스 연결을 관리할 수 있으며, 연결 객체를 생성 및 관리하는 데 필요한 작업을 수행합니다. 이를 통해 데이터베이스 연결을 다시 만드는 데 필요한 오버헤드를 줄일 수 있으며, 데이터베이스 연결의 안정성과 성능을 향상시킬 수 있습니다.

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-dbcp2</artifactId>
  <version>2.1.1</version>
</dependency>

 

 

**HikariCP는 대규모 Java 어플리케이션에서 높은 성능과 안정성을 제공하는 JDBC 커넥션 풀링 라이브러리입니다. HikariCP는 가볍고 빠르며, 대규모 어플리케이션에서도 안정적인 성능을 보장합니다. 이를 통해 데이터베이스 연결을 관리하는 데 필요한 작업을 수행하고, 데이터베이스 연결의 안정성과 성능을 향상시킬 수 있습니다. HikariCP는 JDBC 드라이버와 함께 사용할 수 있으며, Spring Framework에서도 HikariCP를 사용하는 방법을 제공합니다.

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>5.0.1</version>
</dependency>

 

 

**Apache Commons FileUpload는 파일 업로드를 위한 유틸리티 라이브러리로, HTTP multipart 요청을 처리할 수 있습니다. 이 라이브러리는 파일 업로드를 처리하는 데 필요한 모든 기능을 제공하며, 업로드된 파일의 크기, 저장 위치, 파일 이름 등을 구성할 수 있습니다. 이를 통해 파일 업로드 기능을 구현하는 데 필요한 오버헤드를 줄일 수 있으며, 보안 문제를 방지할 수 있습니다

<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.3</version>
</dependency>

 

 

Apache Commons IO는 자바 I/O 작업을 보다 쉽게 처리할 수 있도록 도와주는 라이브러리입니다. 이 라이브러리는 파일 및 디렉토리 작업, 스트림 및 리더/라이터 작업, 바이트 및 문자열 작업 등 다양한 유틸리티 클래스를 제공합니다. 예를 들어, 파일 복사, 파일 삭제, 파일 이동, 파일 읽기/쓰기, 디렉토리 작업 등을 간단한 코드로 처리할 수 있습니다.

<dependency>
  <groupId>commons-io</groupId>
  <artifactId>commons-io</artifactId>
  <version>2.4</version>
</dependency>

 

 

**Jackson Core는 JSON 데이터를 다루기 위한 라이브러리입니다. 이 라이브러리는 JSON 데이터를 Java 객체로 매핑하거나 Java 객체를 JSON으로 직렬화하는 기능을 제공합니다.

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.9.8</version>
</dependency>

 

**Jackson Dataformat Yaml은 YAML 데이터를 다루기 위한 라이브러리입니다. 이 라이브러리는 YAML 데이터를 Java 객체로 매핑하거나 Java 객체를 YAML으로 직렬화하는 기능을 제공합니다.

<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-yaml</artifactId>
  <version>2.9.8</version>
</dependency>

 

 

**Jackson Databind는 Jackson 라이브러리의 일부로, JSON 데이터를 Java 객체로 변환하거나 Java 객체를 JSON으로 직렬화하는 기능을 제공합니다. Jackson Databind는 자바에서 가장 인기있는 JSON 라이브러리 중 하나입니다.

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.9.8</version>
</dependency> 

 

두 가지 Maven 의존성(dependency)은 같은 Jackson Core 라이브러리를 사용하지만, jackson-databind는 Jackson Core 라이브러리를 포함합니다. 따라서, jackson-databind를 의존성으로 추가하면 jackson-core도 함께 추가됩니다.

 

 

**Jackson XML 데이터 형식 라이브러리를 프로젝트에 자동으로 다운로드하고 구성합니다. 이 라이브러리를 사용하여 XML 데이터를 읽고 쓰는 등의 작업을 수행할 수 있습니다.

<dependency>
  <groupId>com.fasterxml.jackson.dataformat</groupId>
  <artifactId>jackson-dataformat-xml</artifactId>
  <version>2.9.8</version>
</dependency>

 

**JSON-Simple은 JSON 데이터를 생성하고 구문 분석하는 데 사용되는 라이브러리입니다. 이 라이브러리를 사용하여 JSON 데이터를 생성하고 구문 분석하는 등의 작업을 수행할 수 있습니다.

<dependency>
  <groupId>com.googlecode.json-simple</groupId>
  <artifactId>json-simple</artifactId>
  <version>1.1.1</version>
</dependency>

 

**HttpClient는 HTTP 프로토콜을 사용하여 통신하는 데 사용되는 라이브러리입니다.

이 라이브러리를 사용하여 HTTP 요청을 보내고 응답을 받는 등의 작업을 수행할 수 있습니다.

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.5.13</version>
</dependency>

 

 

 

**JSON 데이터에서 Java 객체로의 변환과 Java 객체에서 JSON 데이터로의 변환 기능 외에도, Jackson ObjectMapper는 JSON 데이터의 유효성 검사, 데이터 바인딩, 객체 시리얼라이제이션/디시리얼라이제이션, 그리고 다양한 JSON 데이터 포맷 지원 등의 기능을 제공합니다.

<dependency>
  <groupId>org.codehaus.jackson</groupId>
  <artifactId>jackson-mapper-asl</artifactId>
  <version>1.9.13</version>
</dependency>

 

 

 

Gson은 Google에서 개발한 자바용 JSON 라이브러리입니다. 이 라이브러리를 사용하여 JSON 데이터와 Java 객체 간의 변환을 수행할 수 있습니다. Gson은 Jackson ObjectMapper와 유사한 기능을 제공하지만, Jackson ObjectMapper보다 간단하고 쉽게 사용할 수 있습니다. Gson은 자동 객체 직렬화/역직렬화, 객체 그래프 처리, JSON 데이터 유효성 검사, JSON 데이터 포맷 지원 등의 기능을 제공합니다.

<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>

 

 

 

 

**imgscalr은 자바용 이미지 스케일링 라이브러리입니다. 이 라이브러리를 사용하여 이미지의 크기를 변경하거나 회전시킬 수 있습니다. imgscalr은 고품질 이미지 스케일링을 위한 다양한 알고리즘을 제공합니다. 또한, imgscalr은 여러 개의 이미지 처리 기능을 제공하며, JPEG, PNG, BMP, WBMP와 같은 다양한 이미지 형식을 지원합니다.

<dependency>
  <groupId>org.imgscalr</groupId>
  <artifactId>imgscalr-lib</artifactId>
  <version>4.2</version>
</dependency>

 

 

**json-simple은 JSON 데이터를 처리하기 위한 자바 라이브러리입니다. 이 라이브러리를 사용하여 JSON 데이터를 파싱하고 생성할 수 있습니다. json-simple은 간단하고 사용하기 쉬운 API를 제공하며, JSON 데이터를 Map 또는 List와 같은 자바 객체로 변환할 수 있습니다.

<dependency>
  <groupId>com.googlecode.json-simple</groupId>
  <artifactId>json-simple</artifactId>
  <version>1.1</version>
</dependency>

 

 

 

 

 

 
 

댓글