Java란 무엇인가?

김영한님의 Java 강의로 기초다지기 - 자바란?

Posted by Warner on November 28, 2023

자바란?

자바 표준 스펙

자바 표준 스펙과 구현

java-spec.png

자바는 표준 스펙과 구현으로 나눌 수 있다.

  • 자바 표준 스펙
    • 자바의 설계도 문서이다.
    • 표준 스펙을 기반으로 여러회사에서 실제 작동하는 자바를 만든다.
    • 자바 표준 스펙은 자바 커뮤니티 프로세스(JCP)를 통해 관리된다.
  • 다양한 자바 구현
    • 여러 회사에서 자바 표준 스펙에 맞추어 실제 작동하는 자바 프로그램을 개발
    • 각각 장단점이 있다. 예를 들어 Amazon Corretto는 AWS에 최적화 되어 있다.

참고사이트 whichjdk

컴파일과 실행

compile.png

자바 프로그램은 컴파일과 실행 단계를 거친다.

  1. Hello.java 와 같은 자바 소스 코드를 개발자가 작성
  2. 자바 컴파일러를 사용해서 소스 코드를 컴파일
    • 자바가 제공하는 javac 라는 프로그램을 사용
    • .java -> .class 파일이 생성
    • 자바 소스 코드를 바이트코드로 변환하여 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화하고 문법 오류도 검출
  3. 자바 프로그램을 실행
    • 자바가 제공하는 java 라는 프로그램을 사용
    • 자바 가상 머신(JVM)이 실행되면서 프로그램이 작동

IDE와 자바

인텔리제이를 통한 자바 설치 관리 intellij-java.png

  • 인텔리제이는 내부에 자바를 편리하게 설치하고 관리할 수 있는 기능을 제공
  • 이 기능을 사용하여 인텔리제이를 통해 자바를 편리하게 다운로드 받고 실핼할 수 있다.

자바와 운영체제 독립성

일반적인 프로그램 os.png

  • 일반적인 프로그램은 다른 운영체제에서 실행할 수 없다.
  • 예를 들어서 윈도우 프로그램은 MAC이나 리눅스에서 작동하지 않는다.
  • 왜냐하면 윈도우 프로그램은 윈도우 OS가 사용하는 명령어들로 구성되어 있기 때문이다. 해당 명령어는 다른 OS와는 호환되지 않는다.

자바 프로그램 os-java.png

  • 자바 프로그램은 자바가 설치된 모든 OS에서 실행할 수 있다.
  • 자바 개발자는 특정 OS에 맞추어 개발을 하지 않아도 된다. 자바 개발자는 자바에 맞추어 개발하면 된다. OS 호환성 문제는 자바가 해결한다. Hello.class와 같이 컴파일된 자바 파일은 모든 자바 환경에서 실행할 수 있다.
  • 윈도우 자바는 윈도우 OS가 사용하는 명령어들로 구성되어 있다. MAC이나 리눅스 자바도 본인의 OS가 사용하는 명령어들로 구성되어 있다. 개발자는 각 OS에 맞도록 자바를 설치하기만 하면 된다.

자바 개발과 운영환경 java-dev.png

  • 개발할 때 자바와 서버에서 실행할 때 다른 자바를 사용할 수 있다.
  • 개발자들은 개발의 편의를 위해서 윈도우나 MAC OS를 주로 사용한다.
  • 서버는 주로 리눅스를 사용한다. 만약 AWS를 사용한다면 Amazon Corretto 자바를 AWS 리눅스 서버에 설치하면 된다.
  • 자바의 운영체제 독립성 덕분에 각각의 환경에 맞추어 자바를 설치하는 것이 가능하다.