팀 프로젝트를 진행하던 중 문제가 생겼다.
팀 프로젝트는 영화 리뷰 사이트인데
나는 OpenApi 를 적극 활용하고 싶어서 영화를 불러오는 OpenApi를 적용 시키려고 했다.
영화 진흥 위원회 오픈 API를 사용하고 싶었다.
영화 진흥 위원회 Opne API 인데 이 오픈 API를 간단하게 사용하기 위해서
이런 외부 라이브러리 파일을 제공한다!
그래서 외부 라이브러리 적용 방법을 찾고 적용을 헀더니...
이런 오류가 난다.
내가 적용 했던 방법이 뭐냐
근데 이상한게
import는 잘 되고 있다는 것이다.
왜 인식을 못하는 거지?
그래도 꼭 저 라이브러리를 사용하고 싶어서 여러 분들께 여쭤봤다.
뭐가 문젤까요?
뭐가 문젤까요?
하다가 라이브러리를 사용하지 말아야하나..?
그냥 라이브러리에 있는 것들을 복사해서 그대로 사용하면 되지 않을까..?
싶었는데
튜터님께서 원인을 찾아주셨다.
이유까지 !!!
이유가 뭐야?
스프링, 인텔리제이, Gradle, 외부 라이브러리 등은 다 각자 따로의 역할이 있다.
다 같은 게 아니다. 생각해보면 당연하다.
Structure 인텔리제이에서 사용하기 쉽도록 만들어 놓은거지 Gradle이랑은 다른 거다.
Structure에 외부 라이브러리를 추가 하고 Gradle에서 dependencies를 넣는다고 그대로 쓰는 게 아니다.
Gradle은 이걸 초기화 시키는 작업을 한다.
gradle은 빌드 자동화 도구로 Structure에서 설정한 구성과 Gradle 스크립트의 설정은 서로 다를 수 있다.
Structure에 라이브러리를 추가하는 것은 개발 환경 내에서만 해당 라이브러리를 사용할 수 있게 하는 것이다.
어떻게 해결했어?
프로젝트에 libs 폴더를 만들고 외부 라이브러리를 넣어주고
폴더명에 맞춰서 dependencies에 들어간 폴더명을 매칭 시켜주기만 하면 된다.
gradle은 최상위폴더를 기준으로 찾기 때문에 프로젝트 내의 libs에 들어간 jar 파일을 찾을 것이다.
이유를 알았으니 Gradle에 대해 조금 더 가까워 진 거 같다.
이유를 더 명확히 알고 싶다!! 나중에 Gradle 배울 때 이런 부분에 대해 집중해서 공부해야 겠다고 생각했다.
'TIL' 카테고리의 다른 글
TIL 2023-11-24 영속성 컨텍스트 동일성 보장 (0) | 2023.11.24 |
---|---|
TIL 2023-11-23 영화진흥위원회 오픈 API 사용 (파싱 후 DB 저장 방법) (0) | 2023.11.23 |
TIL 2023-11-21 PUT과 PATCH의 차이 (0) | 2023.11.21 |
TIL 2023-11-20 CascadeType.REMOVE orphanRemoval = true 차이 (0) | 2023.11.20 |
TIL 2023-11-17 Entity 연관 관계 정리! (0) | 2023.11.17 |