Java란? Java 플랫폼

Java는 1996년 Sun Microsystems의 제임스 고슬링에 의해 탄생하게 되었다. 당시 인터넷의 발전으로 여러 운영체제가 등장하였고 이러한 상황은 운영체제에 독립적이었던 Java가 떠오르는 계기가 되었다.


Java의 장점과 단점

  1. 운영체제에 독립적이다 == 이식성이 높다
    Java로 작성한 프로그램은 운영체제가 아닌 JVM(Java Virtual Machine)과 통신한다. 그리고 JVM이 각 운영체제가 이해할 수 있도록 변환해서 운영체제와 소통한다. 즉, 운영체제에 맞는 JVM만 설치되어 있다면 어디서든 실행할 수 있다.(Write once, run anywhere)

  2. 메모리 관리
    C언어에서는 개발자가 동적할당을 할당할 경우 직접 해제도 해줘야한다. 하지만 Java는 Garbage Collector라는 메모리 관리 도구가 자동으로 메모리 해제를 도와준다.

  3. 멀티 쓰레딩
    라이브러리를 통해 Thread를 쉽게 구현하고 사용할 수 있다. Java의 인터프리터가 Thread에 대한 스케쥴링을 담당한다.

  4. 동적 로딩
    사용하는 여러 클래스들을 실행 시 모두 만드는 것이 아니라 필요한 시점에서 만들어 사용가능하다.

  5. 수 많은 레퍼런스
    개발하면서 가장 중요한 요소 중 하나는 참고할 만한 문서가 많은가이다. Java는 오랜기간 사랑받으며 업데이트되어졌다. 그만큼 많은 라이브러리와 문서, 커뮤니티가 존재하므로 높은 개발 생산성을 가진다.

  6. 실행 속도가 느리다
    바이트코드로 한 번 변환되는 과정을 거치므로 C/C++ 언어보다 실행 속도가 느리다.(물론 인터프리터 언어보다는 속도가 빠르다)

  7. 복잡한 코드
    복잡한 구문을 가지고 있다. 자동완성 기능이 없는 IDE를 사용한다면 개발하기가 어렵다.


Oracle JDK와 Open JDK

Java를 이용해 개발하고 컴파일하기 위해서는 JDK라고 하는 소프트웨어 도구가 필요하다.(Java 언어는 GPL 라이센스로 무료) JDK는 크게 Oracle JDK와 Open JDK로 나눌 수 있다.

Oracle JDK

  • 상업 코드 기반의 JDK
  • 사용목적에 따라 유료일 수도 있고 무료일 수도 있다.(SE - 무료, EE - 유료)
  • 약 2년마다 업데이트

Open JDK

  • 무료 라이센스
  • 운영 주체는 오라클
  • 여러 회사가 OpenJDK의 레퍼런스 소스 코드를 기반으로 자체 JVM을 제작함(이때 Oracle의 유료 라이센스인 OCTLA에 가입)
  • 약 6개월 마다 업데이트(안정성의 문제가 있을 수 있음)


다음 게시글에서

Java를 이용해서 개발하면서 JDK, JRE, JVM 등 많은 개념들과 마주치게 된다. Java를 실행하기 위한 도구들의 의미에 대해서 알아보자

카테고리:

업데이트:

댓글남기기