Spring, Maven, Gradle, Logbac

Build Tool

  • 빠른 기간동안에 계속해서 늘어나는 라이브러리 추가
  • 프로젝트를 진행하며 라이브러리 버전 동기화
  • 이 두가지를 위해 초기의 JAVA빌드 도구로 Ant라는 도구를 많이 사용했으나 이도구를 보완하기 위해 Maven,Gradle이 등장했다.

Apache ANT

  • xml기반 스크립트 개발
  • 형식적인 규직이 없다
  • 명확한 빌드 절차 정의가 필요
  • 생명주기를 갖지 않기 때문에 target에 대한 의존관계와 일련의 작업을 정의해 주어야 한다

Maven이란?

  • pom.xml을 공유하면 개발환경이 다르더라도 사용할 라이브러리뿐만 아니라 해당 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 n/w를 통해서 자동으로 다운 받아준다.
  • 필요한 라이브러리를 특정문서(pom.xml)에 정의해 놓으면 자동으로 다운 받아준다.
  • 프로젝트 전체적인 라이프 사이클을 관리하는 도구이다

  • pom.xml을 이용한 정형화된 빌드 시스템

  • build를 쉽게
  • ※ jar : 압축파일, 아카이빙이 목적이다(여러가지 파일을 하나로 묶어서 사용하기 편하게 하기 위함)
    [단점]
  • xml이 복잡해질 수 있다

Gradle

  • Ant처럼 유연한 범용 빌드 도구
  • Maven을 사용할 수 있는 변환 가능 컨벤션 프레임 워크
  • 원격 저장소나, pom, ivy 파일 없이 연결되는 의존성 관리 지원
  • Ant의 유연한 구조적 장점 + Maven의 편리한 의존성 관리 기능
  • Groovy를 이용한 빌드 자동화 시스템

Maven vs Gradle

  • Gradle이 가독성이 좋다
  • Gradle이 빌트 테스트 실행 결과가 더 빠르다

logback

package org.slf4j;
public interface Logger {

  // Printing methods:
  public void trace(String message);
  public void debug(String message);
  public void info(String message);
  public void warn(String message);
  public void error(String message);
}

logback


Reference