1-1. Build Automation Tool

khs·2022년 1월 21일
0

Java Spring Boot

목록 보기
6/34

Java와 Build Automation Tool

  • Java로 이뤄진 프로젝트는 '*java' 파일에 정의된 Java Source 코드로 구성된다.
  • javac = Java Compiler
  • Compile: 소스코드를 기계어로 바꾸는 과정
  • 컴파일을 다 한 후 빌드를 실행한다. 빌드란 기계어로 바꾸는 것 뿐만 아니라 실제로 어떤 기계어가 실행이 돼서 프로그램을 완성을 하는데까지 필요한 모든 과정을 모두 말한다.
    빌드 과정
    1. main, test 디렉토리에 있는 모든 자바 소스코드를 자바 바이트 코드로 변환한다.
    2. test 디렉토리에 만든 자바 바이트 코드는 바로 그 단계에서 실행을 하고 아무 문제가 없다면 프로젝트를 구성했던 모든 파일들을 합쳐서 하나의 파일로 제작을 하게 된다. (이 과정을 패키징이라고 부른다.)

    ** 상황에 따라 과정이 추가, 제거되기도 한다.




위 과정을 javac 명령어만 가지고 다 하기에는 너무 복잡하다.
=> 그래서 등장하게 된 것이 MavenGradle이다.

● Maven : java를 위한 Build Automation Tool(C#, Ruby 등의 다른 언어를 위해서도 사용 가능)

  • xml의 형태로 프로젝트를 정의
  • pom.xml을 분석해 프로젝트 빌드

    ※ pom.xml: 빌드를 자동화 하기 위해서 무슨 작업을 해야하는지 알아야하는데 그 정보를 저장한 파일을 말한다.

    => Maven 프로젝트를 만들게 된다면 pom.xml이라는 파일부터 시작해서 그 파일이 존재하는 디렉토리가 프로젝트를 관리하는 디렉토리가 된다.

pom.xml 화면
< xml > : 어떤 형식의 xml문서인지를 알려줌
< project > : 프로젝트에서 사용하고 있는 키 값들이 어디서 온건지 등이 정의 되어있음
< modelVersion > : pom의 구조를 담당하는 모델의 버전
< parent > : 이 프로젝트가 어떠한 프로젝트의 하위 프로젝트인지를 정의
< properties > : 선정의된 속성들
< dependencies > : 프로젝트에 사용할 외부 프레임워크 또는 라이브러리를 정의하는 부분
< build > : 어떤 식으로 빌드를 진행할 것인지 정의하는 부분




● Gradle : java를 위한 Build Automation Tool(C#, C++, Javascript 등의 다른 언어를 위해서도 사용 가능)

  • build.gradle을 분석해 프로젝트 빌드

    ※ build.gradle
    - groovy라는 언어로 프로젝트 정의
    - Sub-project 등을 포함시키는 용도의 settings.gradle도 있다.
    - Kotlin을 사용하여 정의할 수도 있다. (build.gradle.kts)

build.gradle화면

  • plugins : Maven에서 parent와 같은 역할을 한다.
  • dependencies : Maven과 유사하다.

**요즘은 gradle을 더 많이 사용하는 추세이다.

profile
권혁상입니다. 행복코딩^_^

0개의 댓글