ant, maven, gradle : build tool
ide 통합환경에서 build tool을 선택
build tool 역할에는 compile, deployment, run이 포함된다
compile이 되면 .java 가 .class 로 변환된다(ide를 사용시 ide가 자동으로 해줌)
.class 파일 : byte code
링크 : 의존성 주입을 통해 클래스에서 다른 클래스에 있는 메소드를 사용할 수 있게 함
정적 링크 / 동적 링크
build : 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정을 말한다
전처리, 컴파일, 패키징, 테스팅, 배포 - build에 포함됨. 빌드 과정을 도와주는 도구를 빌드 툴이라 한다.
war, jar 파일 : 결과물
compile -> build -> deploy 서버 배포
class loader : .class 파일을 jvm이 읽을 수 있도록 함
컴파일러 : 전체 소스코드를 보고 명령어로 재구성 - C, C++
인터프리터 : 실시간 번역 - 각 행을 연속적으로 분석하면서 명령어로 실행 - 자바스크립트, 파이썬 - 속도 느림
자바-둘 모두에 해당
JIT compiler
gradle-점진적 빌드(그래들의 특징) : 이미 빌드된 파일들을 모두 다시 빌드하는 것이 아니라 변경된 파일들만 빌드하는 것
빌드 캐시 : 빌드 캐시를 이용해서 이전 빌드의 결과물을 다른 빌드에서 사용할 수 있다.
daemon process : 빌드한 결과물을 메모리상에 보관, 다음에 빌드할 때 사용 / on off 가능
build.gradle : 설정인데 소스코드를 함수와 똑같이 쓸 수 있다.