Skip to main content Link Search Menu Expand Document (external link) Copy Copied

의존성이란?

  • 컴파일 시점 의존성
    프로젝트를 컴파일할 때 사용되는 의존성으로, 해당 라이브러리의 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