Spring Boot 에 Lombok을 설치하면서 Gradle의 Dependencies에 대해서도 알아보았다.
Dependencies 키워드 중에 예전에는 사용했지만 지금은 deprecated 되어 사용하지 않는 키워드가 있다.
그 중 하나는 compile 이다.
compile (deprecated) -> implementation
이제는 compile 말고 implementation을 사용한다고 한다.
그 이유는,
implementation이 더 빠르고 빌드 시 api가 노출되지 않아 보안에도 더욱 좋기 때문이라고 한다.
Dependencies Configuration
- compileOnly
컴파일 할 때만 사용
- runtimeOnly
런타임에만 사용
ex) DB 연동
- implementation
컴파일 + 런타임
해당 모듈까지만 재빌드
- api
api로 추가한 라이브러리에서 의존하고 있는 라이브러리에 의존하고자 할 때 사용 (컴파일 + 런타임)
해당 모듈이랑 관계있는 모듈 재빌드
-> deprecated 되진 않았지만 권장하지 않음
- testCompileOnly
테스트 코드 컴파일할 때만 사용
- testRuntimeOnly
테스트 런타임에 사용
- testImplementation
테스트 컴파일 + 런타임에 사용