코딩하는 털보

21.09.20 TIL 본문

Diary/Today I Learned

21.09.20 TIL

이정인 2021. 9. 20. 23:44

오늘은 스프링 1주차 강의를 보다가 Gradle에 대한 얘기가 잠깐 나와서 1주차 강의 끝내고나서 평소에 궁금했었던 Gradle, Maven 같은 빌드 툴에 대해서 공부해본다.

참고 : https://www.youtube.com/watch?v=Nabjqv8KDgc,
https://www.youtube.com/watch?v=3Jp9kGDb01g

Build Tools

빌드 도구란 빌드 자동화를 도와주는 소프트웨어 애플리케이션이다.

빌드 자동화
빌드 자동화는 소프트웨어 개발자가 수행하는 다양한 활동을 자동화하는 프로세스이다.
아래 목록은 빌드 도구가 자동화해주는 주요 활동이다.

  • 소스코드 컴파일링
  • 패키징
  • 종속성 관리
  • 자동화 업무 실행 (테스트, 분석 등)
  • 배포
  • 알림

일반적인 빌드 도구들
Apache Ant, Apache Maven, Gradle, Grunt, Gulp

Gradle

Gradle은 자바에 많이 사용되는 오픈 소스 빌드 도구중 하나이며 Apache Ant 및 Apache Maven에서 개선된 후속 제품이다.
Groovy 또는 Kotlin DSL 기반의 빌드 스크립트를 가지고 있다.
Ant나 Maven은 XML으로 빌드 스크립트를 관리하는데 이때 프로젝트 규모가 커지고 복잡해질수록 관리하는데 어려움이 있으며 Gradle은 보다 빠르고 간결하게 사용할 수 있다고 한다.

Gradle의 build를 실행하면 아래같은 과정으로 진행된다.

> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :bootJarMainClassName UP-TO-DATE
> Task :bootJar UP-TO-DATE
> Task :jar UP-TO-DATE
> Task :assemble UP-TO-DATE
> Task :compileTestJava UP-TO-DATE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE

시간이 된다면 하나하나 딥다이브 해봐야겠다.
그리고 검증에는 두가지 자동화 task(check, test)가 있는데 이것도 좀 자세히 알아볼 필요가 있을 것 같다.

Gradle을 찾다가 Swagger라는 협업을 도와주는 라이브러리를 발견했다.
Swagger를 사용하면 Swagger가 자동으로 생성해주는 API 테스트 목록 웹페이지로 좀더 편하게 클라이언트 프로그래머와 소통할 수 있을것 같다.
다음 프로젝트에서 팀원들과 상의해서 꼭 한번 써보고 싶다.

Comments