• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

이식성이 좋다는 말이 어떤 뜻인가요?

20.12.04 12:27 작성 조회수 764

0

안녕하세요~ 강의 잘 보고있습니다!

자바가 플랫폼에 영향을 받지 않는 다는 부분에서 이해가 어려운 점이 있는데요.

첫째로, 다른 머신에 코드를 이식할 때는 반드시 class file 또는 object file을 이식해야 하나요? 애초에 원본 코드를 넣으면 플랫폼 의존 문제가 없을 것 같은데 보안 문제 때문일까요?

둘째로, '자바 컴파일러'가 왜 존재하는 것인가요? 자바 가상머신을 플랫폼별 컴파일러로 한다면 한번에 실행파일로 번역가능 할 텐데 굳이 과정을 하나 더 거치는 것이 궁금합니다.

감사합니다~ 

답변 1

답변을 작성해보세요.

1

김현지님의 프로필

김현지

2021.03.20

안녕하세요, 박현묵님!

  • 코드 이식

우선 자바 소스코드는 자바 컴파일러에 의해 바이트코드로 변환됩니다. 

변환된 바이트코드는 JVM에 의해 실행됩니다.

자바 소스코드는 OS에 독립적이지만, JVM 자체는 OS에 종속적입니다.

즉 OS에 맞는 JVM을 설치한 후에 class file, object file을 이식하는 것입니다.

  • 자바 컴파일러 존재 이유

예를 들어서, C++ 프로그램은 모든 종류의 CPU에 맞게 컴파일될 수 있지만, 그것을 위해서는 해당 CPU에 맞는 C++ 컴파일러가 필요합니다.

하지만 각 환경별 컴파일러를 개발하기 위한 비용이 비싸고 시간도 많이 소요됩니다.

좀 더 나은 방식을 찾기 위해 Cross Platform 언어가 개발된 것입니다.

인터넷과 웹의 출현으로 이식성의 문제가 중요하게 여겨졌고, 자바가 이 때문에 많은 사람들에게 사용되고 있습니다.

혹시 궁금한 점이 있다면 댓글 남겨주세요.

도움이 되었으면 좋겠습니다. :)