정의
jar(java archive) 여러 개의 자바 클래스 파일과 리소스 파일들을 하나의 압축 파일로 묶어서 관리할 수 있도록 하는 파일 형식
그렇다면 클래스 파일과 리소스 파일은 무엇인가?
클래스 파일은 자바 소스 코드를 컴파일한 결과물로, 자바 가상 머신에서 실행 가능한 이진 형식의 파일이다. 자바 가상 머신은 자바 클래스 파일을 읽어서 실행한다.
리소스 파일은 애플리케이션에서 사용되는 이미지, 텍스트, 설정 파일 등의 자원을 말한다.
리소스 파일은 클래스 파일과 함께 패키지 구조로 구성될 수 있다.
설명을 보니 클래스 파일은 일반적인 소스 자바 스크립트로 치면 js 파일이 되겠고, 리소스 파일은 package.json 또는 css 파일 또는 robots 파일 등등이 되겠다.
그렇다면 JAR 파일이란 이러한 파일들을 하나의 압축 파일 형식으로 만들어서 (zip파일 처럼) 파일 하나만 배포하면 애플리케이션이 정상적으로 작동 하도록하여 관리가 용이하게 만들었다. 또, jar 파일은 다양한 운영체제에서 사용 가능하므로, 자바 애플리케이션을 개발할 때 크로스 플랫폼 호환성을 고려하지 않아도 된다.
크로스 플랫폼 호환성이란?
서로 다른 운영체제나 하드웨어 환경에서도 동일한 애플리케이션을 실행할 수 있는 것을 말한다.
자바로 작성한 애플리케이션은 JVM 위에서 실행된다.
JVM은 운영체제나 하드웨어와는 독립적으로 동작하며, 자바 바이트 코드를 실행할 수 있다.
이런 내부 사정으로 JVM이 동작하는 지는 처음 알았다.
JAR 파일은 압축 파일 형식으로 되어 있기 때문에, 다른 압축 파일 형식인 zip 파일처럼 파일 크기를 줄일 수 있어서 네트워크를 통해 전송할 때 효율적이다. 자바 가상 머신에서 실행할 수 있는 형식이므로, 애플리케이션을 배포할 때 자바 가상 머신이 설치되어 있지 않아도 실행이 가능하다.
3줄 요약
JAR 파일이란 zip과 같이 java의 코드를 한 곳에 압축시켜 애플리케이션을 관리하거나 실행하기 용이하게 끔 만들은 것이고, 안에는 클래스 파일과 리소스 파일로 구성되어 있으며 클래스 파일은 소스 코드 리소스 파일은 소스 코드를 동작하는 데 도움을 줄 (img,css,config 등등) 파일이다. 또한 jar 파일은 다양한 운영체제에서 동작 가능 한데, java 만 설치되어 있다면 애플리케이션이 JVM 위에서 실행 되므로 크로스 플랫폼 호환성을 고려하지 않아도 된다.
'CS 지식' 카테고리의 다른 글
Openshift 란? (0) | 2023.05.20 |
---|---|
Swagger란? (0) | 2023.05.15 |
분산 트랜잭션이란? (0) | 2023.05.01 |
DPU란? (0) | 2023.04.30 |
API 쓰로틀링이란 무엇인가? (0) | 2023.04.30 |