java
java란?
22gamin
2024. 1. 27. 01:16
자바는 표준 스펙과 구현으로 나눌 수 있다.
- 자바 표준 스펙
- 자바는 이렇게 만들어야 한다는 설계도, 문서이다.
- 이 설계도를 기반으로 여러 회사에서 각자 실제로 작동하는 자바를 만듦
- 다양한 자바 구현
- 여러 회사에서 자바 표준 스펙에 맞추어 실제 작동하는 자바 프로그램을 개발한다.
- 각 회사에서 만든 자바마다 장단점 존재 ex) Amazon Corretto는 AWS에 최적화 등
- 각 회사에서 만든 자바는 대부분 윈도우, MAC, 리눅스 같이 다양한 OS에서 작동하는 버전의 자바도 함께 제공함!!
여기서 자바의 최대 강점 - 변경의 용이
이렇게 자바 구현들은 모두 표준 스펙에 맞도록 개발되어 있어 오라클 Open JDK를 사용하다가 Amazon Corretto 자바로 변경해도 대부분 문제 없이 동작한다.
컴파일과 실행
자바 프로그램은 컴파일과 실행 단계를 거친다.
- Hello.java와 같은 자바 소스 코드를 개발자가 작성
- 자바 컴파일러를 사용해서 소스 코드를 컴파일함
- 자바가 제공하는 javac 라는 프로그램을 사용한다.
- .java -> .class 파일이 생성됨
- 자바 소스 코드를 바이트코드로 변환하며 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화하고 문법 오류도 검출한다,
- 자바 프로그램을 실행
- 자바가 제공하는 java라는 프로그램을 사용한다.
- 자바 가상 머신(JVM)이 실행되면서 프로그램이 작동한다.
자바와 운영체제 독립성
일반적인 프로그램
- 일반적인 프로그램은 다른 운영체제에서 실행할 수 없다.
ex) 윈도우 프로그램은 MAC이나 리눅스에서 작동하지 않음
→ 윈도우 프로그램은 윈도우 OS가 사용하는 명령어들로 구성되어 있기 때문에 해당 명령어는 다른 OS와 호환되지 않음
자바 프로그램
- 자바 프로그램은 자바가 설치된 모든 OS에서 실행할 수 있다.
- 자바 개발자는 특정 OS에 맞추어 개발을 하지 않아도 된다. 자바 개발자는 자바에 맞추어 개발하면 됨
- OS 호환성 문제는 자바가 해결한다. Hello.class 와 같이 컴파일된 자바 파일은 모든 자바 환경에서 실행할 수 있다.
- 윈도우 자바는 윈도우 OS가 사용하는 명령어들로 구성되어 있다. MAC이나 리눅스 자바도 본인의 OS가 사용하는 명령어들로 구성되어 있다.
- 개발자는 각 OS에 맞도록 자바를 설치하기만 하면 된다.
ex)
- 개발할 때 사용하였던 자바와 서버에서 실행할 때 자바는 다른 자바를 사용할 수 있다.
- 개발자들의 개발 편의를 위해서 윈도우나 MAC OS에서 개발을 한다. 서버는 주로 리눅스를 사용한다. 만약 AWS를 사용한다면 Amazon Corretto 자바를 AWS 리눅스 서버에 설치하면 된다.
- 자바의 운영체제 독립성 덕분에 각각의 환경에 맞추어 자바를 설치하는 것이 가능하다.