Build Automation Tool
인간이 이해할 수 있는 언어인 high level language 에서
기계가 이해할 수 있는 언어인 low level language로 변환하는 과정을
컴파일이라고 한다.
그리고 여러 코드, 리소스, 외부 라이브러리 파일들은
사용자들이 쓸 수 있는 일종의 실행 파일 형태로 전달이 되어야 하는데
프로젝트 소스코드를 실행 가능한 형태로 만드는 과정을 빌드라고 한다.
이렇게 프로젝트를 하기 위해선 컴파일 이상의 많은 작업이 필요하다.
그래서 Build Automation Tool이라는 도구가 있는데
대표적으로 Gradle과 Maven이 이에 해당한다.
얘네는 Java 프로젝트를 빌드하는데 사용되는 대표적인 도구로
소스파일 컴파일, 단위 테스트, 버전관리, Jar 생성 등을 도와준다.
jar 파일은 배포를 위해 java class를 부수 정보와 함께 압축한 형태로
스프링부트도 jar 형태로 라이브러리에 포함되어있다.
프로젝트에서 사용하는 jar 파일들을 보면 무수히 많은데 이 중 하나만 놓쳐도 제대로 실행되지 않는다.
그래서 gradle, maven 같은 빌드 자동화 툴이 나온 것이다.
Gradle vs Maven
둘 다 자바 프로젝트를 관리하는 도구이기 때문에 의존성 관리 등은 비슷하게 동작한다.
Maven
xml 기반 설정 파일을 사용한다. 작업 단계가 고정되어 있어 좀 더 경직되어 있다.
Gradle
groovy 또는 kotlin 기반 설정 파일을 사용한다.
작업 단계를 개발자가 어느 정도 커스텀 할 수 있어 좀 더 열려있다고 볼 수 있다.
Group ID & Artifact ID
스프링 프로젝트를 시작하기 위해 start.spring.io에 접속하면 이런 화면을 볼 수 있다.
저 Project Metadata의 group과 artifact는 무엇인지 궁금했었는데 오늘 알게 되었다.
Group ID와 Artifact ID는 각각의 프로젝트를 구분하기 위해 사용되는 식별자이다.
Group ID : 해당 프로젝트를 관리하는 조직을 식별한다. 보통 회사에 따라서 딴다. 구글인 경우 com.google 이렇게..
Artifact ID : 해당 조직 내의 독립적인 프로젝트를 식별한다.
그래서 Group과 Artifact를 합치면 하나의 프로젝트를 식별할 수 있다.
'멋쟁이 사자처럼 > TIL' 카테고리의 다른 글
230612 TIL. Stack, Call Stack, 괄호 검사, lombok (0) | 2023.06.12 |
---|---|
230609 8주 4일차 TIL. @PathVariable, Thymeleaf th:, @{} (0) | 2023.06.11 |
230605 8주 1일차 TIL. @Controller, @RequestMapping, IOC (0) | 2023.06.05 |
230601 7주 3일차 TIL. 프로그래머스 배열 만들기 4 (0) | 2023.06.01 |
230531 7주 2일차 TIL. 컬렉션, DB 대소문자 구분, JDBC, 예외처리 (0) | 2023.05.31 |