Gradle에 대해서 더 자세히 알아보기 전, 간단하게 정리하였습니다.
Gradle에 대한 포스팅은 Gradle 카테고리에 올라갈 예정입니다.
간단한 이론만 정리한 포스팅이니 참고용으로만 봐주시면 됩니다.
빌드(build)
소스 코드 파일을
컴퓨터에서 실행할 수 있는 독립 SW 가공물로 변환시키는 과정
빌드란 단순히 실행하는 것과 다르다
※독립 SW 가공물 = Artifact
빌드의 세분화
- 소스 코드를 컴파일 한다
- 테스트 코드를 컴파일 한다
- 테스트 코드를 실행한다
- 테스트 코드 리포트를 작성한다
- 기타 추가 설정한 작업들을 진행한다(소나 큐브에 코드 정적분석을 맡기는 등)
- 패키징을 수행한다
- 최종 SW 결과물(Artifact)을 만들어 낸다
테스트 코드 : 사용하고 있는 비지니스 로직이 새로운 요구사항이 반영되었을 때
기존의 로직이 잘 실행되는지 확인하는 코드
내가 작성한 코드를 자동테스트 해주는 코드를 추가로 작성한 것
테스트 코드의 존재 유무에 따라 개발 속도 및 안전성, 품질이 달라진다. 따라서 매우 중요하다.
패키징 : 사실 우리가 사용하고 있는 코드 System.out.println() 은 JRE에 포함되어 있다.
JAVA 라이브러리 외에 다른 사람이 만들어 놓은 오픈소스를 사용하는 경우도 많은데
예)Spring Boot등의 프레임워크 들을 사용한다
이 오픈소스를 우리가 사용한 코드와 패키징으로 하나로 묶는것.
실행(Run)
내가 작성한 코드 (혹은 테스트 코드)를 컴파일을 거쳐, 작동시켜 보는것
독립 SW 가공물이 나올 수도있고, 나오지 않을 수도 있다.
빌드에서는 독립 SW 가공물이 무조건 나온다.
주의 : 인터프리터 언어는 컴파일이 필요 없다.
인터프리터 언어 : 컴파일 과정 없이 인터프리터가 한줄씩 읽어 실행시켜주는 언어
만약 빌드를 수동으로 한다면?
각기 다른 사람들이, 모든 과정을 수동으로 처리하게되면 실수가 생기게 된다즉, Resource가 많이 든다. 이러한 단점들을 해결하기 위해빌드 툴(build tool)이 존재한다.
빌드 툴(build tool)
빌드 툴이 사용되는 이유 두가지
1. 소스 코드의 빌드 과정을 자동으로 처리 해주는 프로그램(빌드 과정 자동화)2. 외부소스 코드 (외부 라이브러리) 자동 추가, 관리
JAVA에서 쓰이는 빌드 관리 도구는 크게 세가지가 있다.
간단하게 알아보자
1. ANT
- 설정을 위해 xml을 사용한다
- 간단하고 사용하기 쉽다
- 복잡한 처리를 하려 하면 빌드 스크립트가 장황해져 관리가 어렵다
- 외부 라이브러리를 관리하는 구조가 없다
사용하는걸 본적도 없다.
2. Maven
-
설정을 위해 xml을 사용한다 - 외부 라이브러리를 관리할 수 있다. - 장황한 빌드 스크립트 문제를 해결했다. - 특정 경우에 xml이 복잡해진다. - xml 언어 자체의 한계가 있다
Ant가 가지고 있는 단점들을 대부분 극복 하였다여전히 많이 쓰인다. 하지만 신규 프로젝트에는 지양하는 편이다.
3. Gradle
- 설정을 위해 Groovy 언어를 사용한다. (xml이 가지는 한계를 갖지 않는다.) - 외부 라이브러리를 관리할 수 있다. - 유연하게 빌드 스크립트를 작성할 수 있다. - 성능이 뛰어나다.(Maven에 비해)
가장 최신에 나온 java 빌드 툴이다.
(특히 신규 프로젝트에) 많이 사용되고 있다.
참고. 구글 정식 빌드툴이 Gradle이다.
'프로그래밍 공부 > JAVA' 카테고리의 다른 글
애너테이션(어노테이션) (0) | 2021.12.05 |
---|---|
바이트코드란? JVM이란? JIT컴파일러란? GC란? JVM 실행과정 (0) | 2021.09.03 |
JDK, JRE, JVM은 무엇인가? (0) | 2021.09.03 |
JAVA중급강의 정리 람다식 (0) | 2021.08.30 |
JAVA중급강의 정리 어노테이션, 쓰레드 (0) | 2021.08.27 |