Maven vs Gradle

SaGo_MunGcci·2022년 8월 1일
0

스프링

목록 보기
6/31

Today do list

  • 오늘 JWT 과제만 주구장창 함.
  • JWT header에 JWT Access, refreshToken 넣었음.
  • 스프링시큐리티를 공부함.
  • 벨로그에 정리해서 올리기.


TIL

빌드 도구

  • 빌드 도구란?

    • 소스코드를 컴파일, 테스트, 정적분석 등을 실시하여 실행 가능한 어플리케이션으로 자동 생성하는 프로그램
    • 계속해서 늘어나는 라이브러리 자동 추가 및 관리
    • 프로젝트를 진행하며 시간이 지남에 따라 라이브러리의 버전을 자동으로 동기화
  • 배경

    • 웹, 앱 프로그래밍 개발이 발전하며 어플을 개발함에 있어 필요한 라이브러리도 많아지게 되었다.
    • 많은 라이브러리를 직접 다운받아서 추가하여 사용하는 방법도 있지만 많은 번거로움이 따르기 때문에 나오게 된 것이 빌드 도구이다.
  • 종류

    • Ant

    • Maven

    • Gradle

      Maven

  • Mavne이란?

    • 아파치 메이븐은 자바용 프로젝트 관리 도구이다.
    • 아파치 Ant의 대안으로 만들어졌다.
    • 아파치 라이센스로 배포되는 오픈 소스 소프트웨이어다.
    • 프로젝트를 진행하면서 사용하는 수많은 라이브러리들을 관리해주는 도구
    • 네트워크를 통해 연관된 라이브러리까지 같이 업데이트를 해주기 때문에 사용이 편리
  • POM - Project Object Model

    • 메이븐의 기능을 이용하기 위해 POM(Project Object Model의 정보를 담고 있는 파일)을 사용
    • pom.xml에서 주요하게 다루는 기능들
      • 프로젝트 정보 : 프로젝트의 이름, 라이센스 등
      • 빌드 설정 : 소스, 리소스, 라이프사이클별 실행한 플러그인 등 빌드와 관련된 설정
      • 빌드 환경 : 사용자 환경 별로 달라질 수 있는 프로파일 정보
      • pom 연관 정보 : 의존 프로젝트(모듈), 상위 프로젝트, 포함하고 있는 하위 모듈 등

Gradle

  • Gradle이란?
    • 빌드, 프로젝트 구성/관리, 테스트, 배포 도구
    • 안드로이드 앱의 공식 빌드 시스템
    • 빌드 속도가 Maven에 비해 10 ~ 100배 가량 빠름
    • JAVA, C/C++, Python 등을 지원
    • 빌드툴인 Ant Builder와 Groovy 스크립트 기반으로 만들어져 기존 Ant의 역할과 배포 스크립트의 기능을 모두 사용 가능
      • Groovy란? Groovy는 Java 가상 머신에서 실행되는 스크립트 언어이다. Java 가상 머신에서 동작하지만, Java와는 달리 소스 코드를 컴파일 할 필요는 없다. Groovy는 스크립트 언어이고, 소스 코드를 그대로 실행한다. 또한 Java와 호환되고, Java 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있다.

Maven VS Gradle

  • 스크립트 길이와 가독성 면에서 Gradle이 우세하다.
  • 빌드와 테스트 실행 결과 Gradle이 더 빠르다.(Gradle은 캐시를 사용하기 때문에 테스트 반복 시 차이가 더 커진다.)
  • 의존성이 늘어날 수록 성능과 스크립트 품질의 차이가 심해질 것이다.

출처 : https://dev-coco.tistory.com/65



Retrospection

  • 항성 써왔던 gradle뿐만아니라 Maven이라는 빌드도구가 있는 것은 처음알게 되었다.


Tommorrow do list

  • JWT accessToken, refreshToken활용해서 게시판 만들기


profile
이리저리 생각만 많은 사고뭉치입니다.

0개의 댓글