Sam Story

자바 버전에 대하여 (8 , 11 , 17) 본문

개발지식

자바 버전에 대하여 (8 , 11 , 17)

Sam H 2024. 12. 2. 17:50

오늘은 사용하는 자바 버전에 대하여 간단하게 포스팅 해보려 한다.

 

24년 기준으로 현재 자바 버전은 23버전까지 릴리스 되었다.

기존에 내가 진행했던 프로젝트들의 경우 대부분 8버전으로 진행했었다.

처음 개발을 시작할 때 (유튜브를 보며 공부할 때) 

8버전으로 진행했기에 그 때 8버전으로 했었지만

 

자바 버전을 어떤것으로 선정할지에 대한 기준이 없었기에 그랬던 것이고

이제는 자바 버전도 각 버전의 특징들을 알고

개발환경에 맞게 어떤 버전을 사용할지 생각할 수 있어야 한다고 생각한다.

 

자바 버전 선택

먼저 많이 사용하는 자바버전의 경우 글 제목에도 적어놨지만 Java 8 , Java 11 , Java 17

세가지 버전의 자바를 많이 사용한다.

 

그렇다면 이 세가지 버전을 가장 많이 사용하는가?

그 이유는 이 세가지 버전이 LTS (Long Term Support) 이기 때문이다.

LTS 는 단어 뜻 그대로 오랜기간 이 버전을 지원하고

보안, 버그 수정이 이루어지므로 LTS 버전을 많이 사용하는 것이다.

 

모든 버전에 대해서 다루기 보다는 LTS 인 세가지 버전에 대해서 알아보도록 하자.

 

 

Java 8

주요 특징:

  1. 람다 표현식:
    • 함수형 프로그래밍 지원, 코드 간결화.
  2. Stream API:
    • 대규모 컬렉션 처리에 적합.
  3. 새로운 날짜 및 시간 API:
    • java.time 패키지로 복잡한 날짜/시간 연산 간소화.
  4. Optional 클래스:
    • NullPointerException 방지.
  5. 기타:
    • 기본 메서드(Default Methods): 인터페이스에서 구현 가능.

 

Java 11

주요 특징:

  1. 새로운 HTTP Client API:
    • HTTP/2 및 WebSocket 지원.
    • 비동기 요청 처리 가능.
  2. 로컬 변수 타입(var) 지원:
    • 람다 표현식에서도 사용 가능.
  3. 다수의 모듈 제거:
    • 예: Java EE, CORBA 모듈 삭제.
  4. Garbage Collector(GC) 개선:
    • G1 GC 기본화.
  5. 런타임 실행 파일 간소화:
    • java 명령어로 소스 파일 직접 실행 가능.

 

Java 17

주요 특징:

  1. Sealed Classes:
    • 상속 가능한 클래스 범위 제한.
  2. Records:
    • 데이터 객체를 간결하게 선언.
  3. 패턴 매칭:
    • instanceof에서 타입 캐스팅 간소화.
  4. ZGC(가비지 컬렉터) 개선:
    • 낮은 지연 시간 보장.
  5. 새로운 언어 기능:
    • 텍스트 블록(Text Blocks): 멀티라인 문자열 지원.
    • Switch 표현식: 조건문 간소화.
  6. 보안 및 성능 강화:
    • TLS 및 암호화 알고리즘 최신화.

 

위 내용을 간단하게 요약해서 표로 보게되면

 

 

 

표에도 간단한 사용 사례를 적었지만 조금 간단히 풀어내자면

 

Java 8: 레거시 시스템을 유지하는 경우

(현재 우리나라에서 가장 많이 사용하는 버전)

 

Java 11: 현재 널리 사용되고 있는 안정적인 LTS 버전, 대부분의 환경에 적합.

(8 -> 11로 마이그레이션 하는경우도 많음)

 

Java 17: 최신 LTS 버전으로, 최신 기능과 장기 지원이 필요한 경우 추천.

(최신 버전인 만큼 버그나,안정성이 떨어질 수 있음)

 

정도로 간단히 정리할 수 있을것 같다.

 

 

 

대부분 사람들이 버전이 높으면 무조건 좋다라고 생각할 수 있지만

각 상황에 맞게 사용해야하는 버전이 있고,

각 버전의 큰특징 정도는 파악하고 있어야 한다고 생각한다.

'개발지식' 카테고리의 다른 글

Observer 패턴  (0) 2025.02.12
Singletone Pattern (싱글톤 패턴)  (2) 2024.12.06
객체지향 프로그래밍 SOLID 원칙  (1) 2024.09.24
객체지향 프로그래밍  (5) 2024.09.23
REST,REST API  (0) 2024.08.21