본문 바로가기
기타/백엔드 기초

자바 Java | 자바의 역사와 커피에서 영감 받은 이름 유래

by YUNI Heo 2023. 1. 8.
반응형

 

✅ 자바 Java 역사

플랫폼 독립적인 특성과 객체 지향 프로그래밍의 장점, 그리고 자바 가상 머신(Java Virtual Machine)을 통한 메모리 관리 등의 혁신적인 기술로 빠르게 인기를 얻었다.

 

  • 1991년
    • 썬 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링(James Gosling) 등 개발자들은 가전제품의 셋톱박스를 위해 객체 지향 프로그래밍 언어인 오크(Oak)를 개발한다.
    • 오크(Oak)이란 이름이 이미 상표권 등록되어 있어서 이름을 바꾸게 되었다.
  • 1995년
    • 인터넷이 빠르게 발전하면서 썬 마이크로시스템즈는 오크의 개발 방향을 변경하여 인터넷 환경에 적용할 수 있는 자바(Java)를 발표한다.
    • 웹 브라우저에서 실행되는 애니메이션과 같은 것들을 위한 목적이었다.
  • 2009년: 오라클(Oracle)이 썬 마이크로시스템즈를 인수하였다.
  • 현재까지도 오라클을 중심으로 자바는 계속해서 발전하고 있으며, 다양한 분야에서 활용되고 있다.

 

💡 자바 Java 이름 유래

  • 커피를 마시던 중에 'Java'라는 이름이 떠올라서 자바(Java)라는 이름을 제안하게 되었다고 한다.
  • 자바의 공식 로고에는 커피잔과 커피 콩이 그려져 있다.

 

✅ 자바 Java 버전

자바 8 자바 11은  많은 개발자들이 선호하는 버전이다.

  • 자바 1.0: 최초 버전
  • 자바 1.1: 내부적인 성능 개선, JDBC(Java Database Connectivity) 추가
  • 자바 1.2: 자바 2로 이름 변경, JIT(Just-In-Time) 컴파일러 추가컬렉션 프레임워크(Collection Framework) 추가
  • 자바 1.3: JAR 파일에 서명 기능 추가, HotSpot JVM 추가
  • 자바 1.4: assert 키워드 추가, NIO(New Input/Output) 기능 추가
  • 자바 5: 제네릭(Generic) 타입 추가, 애너테이션(Annotation) 추가
  • 자바 6: JAX-WS(Java API for XML Web Services) 추가, JVM 성능 개선
  • 자바 7: 다이아몬드 연산자(Diamond Operator) 추가, try-with-resources 문 추가
  • 자바 8: 람다식(Lambda expression) 추가, 스트림(Stream) API 추가, 인터페이스 내의 디폴트 메서드(Default method) 추가
  • 자바 9: 모듈 시스템(Module system) 추가, JShell 대화형 셸 도구 추가, 인터페이스 내에 private 메서드와 private 정적 메서드 추가
  • 자바 10: 지역 변수 형 추론(Local variable type inference) 추가, G1GC(Garbage-First Garbage Collector) 개선
  • 자바 11: ZGC(Z Garbage Collector) 추가, HTTP 클라이언트 API 추가, 로컬 변수 문법 개선
  • 자바 12: switch 문 개선, 새로운 문자열 메서드 추가
  • 자바 13: 텍스트 블록(Text block) 추가, 스위치 식(Switch expression) 추가
  • 자바 14: instanceof 패턴 매칭(instanceof pattern matching) 추가, record 타입(Record type) 추가
  • 자바 15: 미리 컴파일된 코드(Precompiled code) 추가, 패턴 인스턴스 메서드(Pattern instance method) 추가
  • 자바 16: 레코드(Record) 기능 개선, instanceof 패턴 매칭(instanceof pattern matching) 개선
  • 자바 17: Sealed 클래스(Sealed class) 추가, 패턴 인스턴스 메서드(Pattern instance method) 개선

 

💡 자바 8

  • 람다식(Lambda expression)을 도입하여 코드의 가독성과 유지보수성을 향상하였다.
  • 스트림(Stream) API를 도입하여 함수형 프로그래밍 방식을 지원하며, 병렬처리를 간편하게 할 수 있다.
  • 인터페이스 내의 디폴트 메서드(Default method)를 도입하여 기존 라이브러리와 호환성을 유지하면서 새로운 기능을 추가한다.

 

💡 자바 11

  • 장기 지원(LTS, Long-term support) 버전으로 2023년까지 지원한다.
  • HTTP 클라이언트 API를 도입하여 HTTP/2와 WebSocket을 지원한다.
  • ZGC(Z Garbage Collector)를 도입하여 대규모 메모리 환경에서의 성능을 향상하였다.
반응형