자바 공부

[Java] 자바 빌드와 실행

민석삼 2025. 2. 27. 19:28

빌드(build)

(!= 실행)

소스 코드 파일을 여러 과정을 거쳐 컴퓨터에서 실행할 수 있는 독립 SW 가공물로 변환시키는 과정

*독립 SW 가공물 = Artifact

 

내가 만든 소스코드 파일들을 독립적인 하나의 파일(독립 SW 가공물 = Artifact)로 만들어내는 것

소스코드 파일을 Artifact로 만드는 과정이다

 

빌드 세분화

1) 소스코드 컴파일

2) 테스트 코드 컴파일

3) 테스트 코드 실행

4) 테스트 코드 리포트 작성

5) 기타 추가 설정한 작업 진행

6) 패키징 수행

7) 최종 SW 결과물 (Artifact) 를 만듦

 

테스트코드: 내가 작성한 코드를 자동 테스트해주는 코드를 추가로 작성한 것

패키징: 자바 라이브러리 외에 다른 사람이 만들어 놓은 오픈 소스를 사용하게 되는데, 이 오픈 소스들을 내가 만든 코드와 함께 하나로 묶는 것

 

실행(run)

내가 작성한 코드 (혹은 테스트 코드)를 컴파일을 거쳐 작동시켜 보는 것

독립 SW 가공물이 나올 수도 있고, 나오지 않을 수도 있다

(빌드는 독립 SW 가공물이 무조건 나옴)

주의: 인터프리터 언어(자바스크립트, 파이썬 등, 인터프리터가 한 줄 씩 읽어 실행시키는 언어)는 컴파일이 필요 없다

 

 

하지만 빌드 한 번 하는 게 쉬운 게 아님! 심지어 수동이면 실수할 가능성도 있고, 리소스(시간 등)가 많이 듦

그래서 나온게..

빌드 툴 (build tool)

소스코드의 빌드 과정을 자동으로 처리해주는 프로그램

외부 소스 코드 (외부 라이브러리) 자동 추가, 관리

 

자바에서 쓰이는 빌드 툴 크게 세가지: ant, maven, gradle

빌드 툴 종류

Ant

설정을 위해 xml(예전에 사용하던 웹 통신 데이터)을 사용

간단하고 사용하기 쉽다

복잡한 처리를 하려 하면 빌드 스크립트가 장황해져 관리가 어려움 (자동 빌드 코드가 길어지는 것)

외부 라이브러리를 관리하는 구조가 없다

2000년대 초중반에 많이 사용됨

Maven

설정을 위해 xml을 사용

외부 라이브러리를 관리할 수 있음

장황한 빌드 스크립트 문제를 해결함

특정 경우에 xml이 복잡해짐

xml 자체의 한계가 있었음

Ant가 가지고 있는 단점을 대부분 극복

지금도 쓰는 경우가 있으나 신규 프로젝트에는 지양하는 편

Gradle

설정을 위해 (xml 대신) groovy 언어를 사용 (*groovy는 JVM 언어임. xml이 갖는 한계를 갖지 않음)

외부 라이브러리 관리 가능

유연하게 빌드 스크립트 작성 가능

성능이 뛰어남

가장 최신에 나온 java 빌드 툴

(특히 신규 프로젝트에) 많이 사용되고 있음

 

 

https://youtu.be/L19wXSpv5cs

해당 강의를 참고하여 작성된 게시물입니다