* 원래는 운영체제(OS) 마다 다른 '컴파일러'가 필요하지만, 자바는 JVM이 0과 1을 운영체제에 맞게 번역해준다.
JDK > JRE > JVM
JVM ( Java Virtual Machine ) : 자바 가상 머신
똑같은 자바 바이트 코드를 운영체제 마다 다르게 해석
- OS마다 존재
- 바이너리 코드 읽고 검증하고 실행
JRE ( Java Runtime Environment ) : 자바 실행 환경
= JVM + 자바 프로그램
실행에 필요한 라이브러리 파일 등
- JVM의 실행 환경을 구현
- 실행을 위한 도구
JDK ( Java Development Kit ) : 자바 개발 도구
= JRE + 개발을 위한 도구
- 컴파일러, 디버그 도구 등이 포함
- 개발을 위한 도구
https://youtu.be/f0cAmTYo4tQ?si=fPdO5lj67He1p6Ll
빌드 ( build )
- 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 SW 가공물로 변환시키는 과정
** 독립 SW 가공물 : artifact
1) 소스 코드 컴파일
2) 테스트 코드 컴파일
3) 테스트 코드 실행
4) 테스트 코드 리포트 작성
5) 기타 추가 설정 작업을 진행
6) 패키징을 수행
** 패키징
: JRE에 포함된다.
외부에서 사용하는 오픈소스들을 우리가 사용하는 코드와 하나로 묶음
-> 이걸 패키징 이라고 한다.
7) 최종 SW 결과물을 만들어 낸다
빌드툴 ( build tool )
1. 소스 코드의 빌드 과정을 자동으로 처리해주는 프로그램
2. 외부 소스 코드 (외부 라이브러리) 자동 추가, 관리
APACHE ANT
- 설정을 위해 xml 을 사용한다
- 간단하고 사용하기 쉬움
- 복잡한 처리를 하려고 하면 빌드 스크립트가 장황해져 관리가 어렵다
- 외부 라이브러리를 관리하는 구조가 없다
-> 2000년대 초중반....에 사용....
Maven
- 설정을 위해 xml 을 사용한다
- 외부 라이브러리를 관리할 수 있다
- 장황한 빌드 스크립트 문제 해결
- 특정 경우에 xml이 복잡해진다
- xml 자체의 한계가 있다
-> 쓰는 경우가 있지만 신규 프젝에서는 지양....
Gradle
- 설정을 위해 groovy 언어를 사용한다 ( ** groovy : jvm 언어 )
- 외부 라이브러리를 관리할 수 있다
- 유연하게 빌드 스크립트를 작성할 수 있다
- 성능이 뛰어나다
-> 가장 최신에 나온 java 빌드툴
-> 신규 프젝에 많이 이용된다
'IT > JAVA' 카테고리의 다른 글
[JAVA / spring] POST API 만들어보기 (0) | 2023.12.28 |
---|---|
[JAVA / spring] GET API 만들어보기 (0) | 2023.12.28 |