[Java] 01. Java의 시작
1. Java의 시작
1
2
3
4
5
public class Main {
public static void main(String[] args) {
// 앞으로 자주 보게 될 코드
}
}
Java를 설치하는 방법을 따로 소개하지는 않지만 따로 설치할 때 알아볼 내용을 살펴봅시다
1-1. 버전별 차이
Java는 버전마다 LTS(Long-term Support) 버전과 non-LTS 버전으로 나뉩니다
- LTS : 후속 버전이 출시되어도 일정 기간 동안 지원을 지속
- non-LTS : 후속 버전이 출시되면 지원 종료
안정적인 시스템 운용 및 호환을 위해 LTS 버전을 사용하는 것을 강력하게 권장합니다
그리고 버전마다 사용되는 숫자는 8, 11, 17, 21이 주로 사용됩니다
- Java 8
- Optional, 새로운 날짜 및 시간 API 제공 (ex. LocalDateTime)
- Oracle이 Java를 인수한 후 첫 번째 LTS 출시 버전
- Java 11
- String과 File 기능 향상
- var 키워드 사용 가능
- Open JDK와 Oracle JDK가 통합
- Java 17
- Spring Boot 3.x.x 버전은 JDK 17 이상부터 지원
- Switch에 대한 패턴 매칭, 텍스트 블록 기능 추가
- Java 21
- Spring Boot 3.2부터 지원
- Java 플랫폼에 가상 스레드 도입
- UTF-8이 기본값
각각 버전마다 지원하는 기간이 다르며, 제일 길게 지원하는 Java 8를 사용하는 사람도 많습니다
Java 17도 사용하는 인원이 증가하고 있는데, Spring Boot 지원이 주 원인인 것으로 보입니다
저도 Spring Boot를 사용할 예정이기 때문에 17버전을 사용하도록 하겠습니다
1-2. JDK vs JRE
처음 Java를 접하면 JDK과 JRE이 무엇인지 혼동하는 경우가 많습니다
- JDK (Java Development Kit)
- Java 어플리케이션 개발에 반드시 필요하며, Java 컴파일러가 포함되어 있습니다
- 일반적으로 JDK는 OpenJDK + 제조사의 부가 기능 으로 구성되며, 현재 Oracle JDK는 상용버전으로 공개되고 있으니 라이센스 이슈에 주의해서 다른 제조사의 JDK 이용을 권장합니다
- JDK에 JRE가 포함되어 있으니 별도로 분리하여 설치할 필요가 없습니다
- JRE (Java Runtime Environment), JVM (Java Virtual Machine)
- Java로 컴파일된 어플리케이션을 실행하는 역할입니다
- 모든 Java 어플리케이션은 JVM 이라고 하는 가상의 컴퓨터 공간에서 실행되며, 어떠한 운영체제라도 JVM이 설치되어 있다면 Java 어플리케이션을 실행할 수 있습니다
컴파일(Complie)이란
프로그래밍 언어로 작성된 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정을 의미합니다
1-3. Oracle JDK 라이센스 상용화 이슈
Java가 유료화 되면 어떻게 개발해요?
2019년 Oracle은 상업적인 목적으로 사용되는 Oracle JDK에 대하여 유료 구독모델을 적용 하였습니다
엄밀히 말하면 Java라는 언어 자체는 오픈소스이며 사용에 제약이 없습니다
이러한 상황에서 Orcale의 공개 소스인 OpenJDK를 활용한 여러 대안이 나오게 되었습니다
현재 대중에게 공개된 JDK는 OpenJDK의 레퍼런스를 바탕으로 개발되었으며, Oracle의 엄격한 심사와 테스트를 거쳐야한 출시할 수 있기에 일정 수준 이상의 성능과 안정성을 갖추었다고 할 수 있습니다
앞으로의 실습에서 OS 별 설치가 용이하고 안정성이 뛰어난 Zulu JDK를 사용하도록 하겠습니다
Zulu ZDK(링크)는 Azul Systems에서 제공하는 무료 오픈 소스 JDK입니다