의존성이란?
- 컴파일 시점 의존성
프로젝트를 컴파일할 때 사용되는 의존성으로, 해당 라이브러리의 API를 사용할 수 있다. - 런타임 시점 의존성
애플리케이션 실행 시 필요한 의존성으로, 실행 시점에도 라이브러리가 필요하다. - 은닉성
implementation
으로 추가된 의존성은 다른 프로젝트 모듈에서 직접 접근할 수 없으며, 모듈 간 캡슐화를 도와준다.
의존성 옵션
- implementation
직접적인 의존성을 추가할 때 사용되며, 컴파일 시 필요하지만 프로젝트 외부에 공개할 필요가 없다. - runtimeOnly
런타임 시점에서 필요한 라이브러리를 추가할 때 사용된다. 주로 로그나 DB 관련 라이브러리로 사용된다. - testImplementation 테스트 코드 실행에 필요한 라이브러리를 추가할 때 사용된다.
프로젝트 의존성 셋팅
의존성 | 설명 |
---|---|
h2database:h2 | 자바 기반의 인메모리 데이터베이스로, 로컬 개발 및 테스트 환경에서 DB를 별도로 구축하지 않고 사용할 수 있다. 빠르고 설정이 간단하다. |
spring-boot-starter-jdbc | 스프링 부트 애플리케이션에서 JDBC 사용에 필요한 모든 의존성을 포함하여, DB 연결 및 SQL 쿼리 실행을 쉽게 할 수 있다. |
mybatis-spring-boot-starter | SQL 매핑 프레임워크 MyBatis와 스프링 부트를 통합하여, SQL을 XML 또는 어노테이션을 통해 관리하고 DAO, Mapper 클래스에 쿼리 파일을 매핑할 수 있게 해준다. |
spring-boot-starter-data-jpa | JPA를 사용해 RDBMS를 객체지향적으로 다루며, JPA 구현체를 자동으로 설정한다. |
querydsl-jpa | 타입 안전한 쿼리를 지원하는 프레임워크로, JPA와 함께 사용할 때 엔티티 객체에 대한 동적 쿼리 생성을 용이하게 해준다. |
spring-boot-starter-web | 애플리케이션이 종료되지 않고 웹 서버를 실행할 수 있도록 돕는 의존성이다. |
JDBC 프로젝트 의존성
- runtimeOnly
- h2database:h2
- implementation
- spring-boot-starter-jdbc
- spring-boot-starter-web
JDBC Template 의존성
- runtimeOnly
- h2database:h2
- implementation
- spring-boot-starter-jdbc
- spring-boot-starter-web
QueryMapper 의존성
- runtimeOnly
- h2database:h2
- implementation
- spring-boot-starter-jdbc
- mybatis-spring-boot-starter
- spring-boot-starter-web
QueryFileMapper 의존성
- runtimeOnly
- h2database:h2
- implementation
- spring-boot-starter-jdbc
- mybatis-spring-boot-starter
- spring-boot-starter-web
JPA 의존성
- runtimeOnly
- h2database:h2
- implementation
- spring-boot-starter-jdbc
- spring-boot-starter-data-jpa
- querydsl-jpa
- spring-boot-starter-web