on
Webjar
들어가며
재직 중인 회사에서 CMS 개발에 jquery datatable 을 사용하고 있습니다. 사용은 처음에 단순하게 select만 가능한 기능에서 사용하다가, 생산성을 더 높이기 위해서 datatable editor 유료 플러그인을 추가로 구매하여 사용하고 있습니다. 만족도는 SO,SO (시간이 흐를 수록 내부를 뜯어 고쳐서 쓰고 있는 나 자신을 발견하게 됩니다.) 개발 생산성은 좋아졌는 데, 문제는 이 플러그인을 어떻게 관리를 해야할지에 대한 고민이 생겼습니다.
가장 큰 문제는 매 프로젝트 마다 static 리소스 폴더에 플러그인 소스들을 개발자가 직접 압축을 풀고 옮기고 하는 번거로운 일을 해야했습니다.
이런 걸 막고자 webjar 와 같은 프로젝트가 있습니다.
webjar 는 웹 프론트엔드 리소스들을 자바 엔지니어가 프로젝트 툴(Maven 이나 Gradle)에 의존 라이브러리(jar 아티팩트)를 정의해서 손쉽게 사용하는 환경을 만들어주자는 취지의 프로젝트입니다.
예를 들어 Maven Central Repository 에서 검색을 해보면 익숙한 라이브러리들의 이름이 눈에 보입니다.
대부분의 유명한 프론트엔드 라이브러리는 이미 누군가가 사용하려고 만들어놓은 것들이 많습니다.
이를 가져다가 사용하면 해결될 문제로 보이지만..
우리 팀의 사정은 조금 다른 것이 datatable-editor는 유료 플러그인이어서 만들어져 있는 것이 없으며, 더군다나 외부에 유출되면 안되는 내부용 라이브러리였습니다.
즉, 결국 직접 만들어야 한다는 문제에 봉착했습니다.
그래서 단순히 사용하는 수준이 아니라, 직접 만들고, private repository에서 관리하는 방안에 대해 고민해봤습니다.
제작 방법
직접 만들면서 구성했던 POM.XML를 참고하자.
위의 예제를 좀 더 디테일한 설명은 공식레퍼런스를 참고한다.
- https://www.webjars.org/
- https://www.webjars.org/contributing
사용방법
레퍼런스는 이곳에서 확인이 가능. http://www.baeldung.com/maven-webjars
webjars-locator
webjar-locator는 static 리소스의 경로를 /webjars/.. 가 default이다. web configration 에서 직접 해당 리소스의 location을 설정할 수 있지만.. 예를 들면 아래와 같다.
알아서 location configration을 해주는 라이브러리이다. 말보다는 코드로 설명하면 아래와 같다.
라이브러리 적용 전
<script src="/webjars/jquery/3.1.1/jquery.min.js"/>
적용 후
<script src="/jquery/3.1.1/jquery.min.js/>
path 가 간략해진 것을 알 수 있다.