본문 바로가기
IT/김영한의JAVA입문_inFlearn

1. 자바란,

by for-learn 2024. 11. 29.

자바 - 표준 스펙, 구현

 

자바 표준 스펙

  • 설계도이자 문서
  • 표준 스펙을 기반으로 여러 회사에서 실제 작동하는 자바를 만듦
  • 자바 표준 스펙은 자바 커뮤니티 프로세스(JCP)를 통해 관리됨

다양한 자바 구현

  • 여러 회사에서 자바 표준 스펙에 맞춰 실제 작동하는 자바 프로그램 개발
  • 최적화 차이가 있지만,
  • 대부분 회사들은 윈도우, 맥, 리눅스 같이 다양한 OS에서 작동하는 버전의 자바도 함께 제공
  • 모두 표준 스펙에 맞게 개발되었기 때문에,
  • 오라클 Open JDK를 사용하다가 Amazon Corretto 자바로 변경해도 문제없이 동작

 

컴파일과 실행

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

 

IDE와 자바

자바를 OS에 직접 설치해도 된다.

 

인텔리제이를 통한 자바 컴파일, 실행 과정

  • 컴파일
    • 자바 코드를 컴파일 하려면 javac 라는 프로그램을 직접 사용해야 하는데,
    • 인텔리제이는 자바 코드를 실행 할 때 이 과정을 자동으로 처리
    • 인텔리제이 화면에서 프로젝트에 있는 out 폴더에 가보면 컴파일된 .class 파일이 있는 것을 확인(주석제외)
  • 실행
    • 자바를 실행하려면 java 라는 프로그램을 사용해야 한다. 이때 컴파일된 .class 파일을 지정해주면 된다.
    • 예) java Hello , 참고로 확장자는 제외한다.
  • 인텔리제이에서 자바 코드를 실행하면 컴파일과 실행을 모두 한번에 처리

 

자바와 운영체제 독립성

일반적인 프로그램

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

 

자바 프로그램

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

 

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