[Java] 자바 빌드와 실행
📌 빌드 도구가 없는 경우
✔ 빌드 (Build)
✅ 빌드란?
소스 코드 파일을 여러 단계의 과정을 거쳐 컴퓨터에서 실행할 수 있는
독립 SW 가공물로 변환시키는 과정.
- 쉽게 말해 개발자가 타이핑한 수천 줄의 코드를 하나의 파일로 만드는 것.
✅ 빌드 과정을 세분화
- 소스 코드 컴파일
- 테스트 코드 컴파일
- 테스트 코드 실행
- 테스트 코드 리포트 작성
- 기타 추가 설정 작업 진행
- 패키징 수행
- 최종 SW 결과물를 생성
✅ 테스트 코드
- 내가 작성한 코드를 자동 테스트해주는 코드를 추가로 작성한 것.
- TDD, JUnit5
- 테스트 코드 작성 역시 빌드 과정에 포함이 된다.
✅ 패키징
- 현업에서 다른 사람들이 만들어 놓은 오픈 소스를 사용하는 경우.
- Spring Boot 프레임워크를 사용한다.
- 엑셀 다운로드 POI 오픈 소스를 사용한다.
- 우리가 사용한 코드와 해당 오픈 소스를 하나로 패키징한다.
✅ 실행 (Run)
- 개발자가 작성한 코드 (혹은 테스트 코드)를 컴파일을 거쳐, 작동시켜 보는 것.
- 독립 SW 가공물이 나올 수도 있고, 나오지 않을 수도 있다.
- 빌드와, 실행을 구분하여 이해해야 한다.
- 인터프리터 언어(python, ruby, javascript)
- 컴파일 언어(Java, C#..)
✔ 빌드를 수동으로 한다면?
- 여러 복잡한 단계를 한번에 하는 것은 쉽지가 않다.
- 모든 과정을 수동으로 해야하기 때문에 리소스 낭비를 가져온다
✅ 빌드 툴 (Build tool)
- 소스코드의 빌드 과정을 자동으로 처리 해주는 프로그램이다.
- 외부 소스 코드(외부 라이브러리) 자동 추가 및 관리한다.
- JAVA에서는 Maven, Gradle, Apache Ant가 존재한다.
✅ Maven
- 설정을 위해 xml을 사용한다.
- 외부 라이브러리를 관리할 수 있다.
- pom.xml
- 장황한 빌드 스크립트 문제 해결 할수있다.
- 특정 경우 xml이 복잡해진다.
- xml 자체의 한계가 있었다.
✅ Gradle
- 설정을 위해 groovy 언어를 사용한다.
- 외부 라이브러리를 관리할 수 있다.
- 유연하게 빌드 스크립트를 작성할 수 있다.
- 캐싱이 잘되어 성능이 뛰어나다.
✅ 정리
- 빌드란 단순히 실행하는 것과 다르다.
- 빌드 과정 자동화와 외부 라이브러리 관리를 위해 빌드 툴이 사용된다.
- 대표적으로 Maven, Gradle이 존재한다.
댓글남기기