728x90
🎈 문제 정의
build.gradle에서 책에서 쓰라는 대로 따라가면
사진과 같이 아예 인식을 못한다.
🔑 원인 추론
- jdk 버전 문제라고 생각 (X)
- compile 에서 implementation 과 api 로 변경되었다고 함. (O)
compile과 implementation 차이
compile은 연결된 API 모두가 프로젝트에 의해 노출이 되고 implementation은 노출되지 않는다.
- api가 노출이 되면, API로직에서 유효성 검사 및 기타 원하지 않는 형태의 데이터가 들어와 보안의 위협이 돼서 골치 아파진다.
A <- B <- C와 같이 B, C가 A라는 모듈을 의존하고 있다고 가정하자.
compile은 A가 수정이 되면, B, C와 같이 의존하고 있는 오브젝트들이 모두 다시 빌드되어야 한다.
- 반면 implementation은 A수정 시, 직접 의존하는 B만 다시 빌드를 하기 때문에 속도적인 측면에서 더 유리하다.
그리고 이는 프로젝트의 구조가 복잡할수록, 커질수록 더욱 많은 퍼포먼스상 차이를 보인다.
- 게다가 공식문서에서, gradle 3.0 이상부터는 compile을 사용을 권장하지 않는다.
(출처 : https://compogetters.tistory.com/64)
🦾 this is assisted by 관프님😠
🎆 조치 및 방안 검토
dependencies {
implementation('org.springframework.boot:spring-boot-starter-web')
implementation('org.springframework.boot:spring-boot-starter-test')
}
똑같은 부분을 implementation으로 바꾼다.
👀 결과관찰
빌드쓰가 완료쓰
'Web > 📗 Spring' 카테고리의 다른 글
롬복 소개 및 설치하기 [Spring / 스프링 부트와 AWS로 혼자 구현하는 웹 서비스] (0) | 2022.07.08 |
---|---|
테스트 코드 작성하기 [Spring / 스프링 부트와 AWS로 혼자 구현하는 웹 서비스] (0) | 2022.07.08 |
테스트 코드 소개 (TDD) [Spring / 스프링 부트와 AWS로 혼자 구현하는 웹 서비스] (0) | 2022.07.07 |
gitignore 설정 [Spring / 스프링 부트와 AWS로 혼자 구현하는 웹 서비스] (0) | 2022.07.07 |
그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기 [Spring / 스프링 부트와 AWS로 혼자 구현하는 웹 서비스] (0) | 2022.07.07 |
댓글