이식성이 좋다는 말이 어떤 뜻인가요?
1180
작성한 질문수 4
안녕하세요~ 강의 잘 보고있습니다!
자바가 플랫폼에 영향을 받지 않는 다는 부분에서 이해가 어려운 점이 있는데요.
첫째로, 다른 머신에 코드를 이식할 때는 반드시 class file 또는 object file을 이식해야 하나요? 애초에 원본 코드를 넣으면 플랫폼 의존 문제가 없을 것 같은데 보안 문제 때문일까요?
둘째로, '자바 컴파일러'가 왜 존재하는 것인가요? 자바 가상머신을 플랫폼별 컴파일러로 한다면 한번에 실행파일로 번역가능 할 텐데 굳이 과정을 하나 더 거치는 것이 궁금합니다.
감사합니다~
답변 1
1
안녕하세요, 박현묵님!
- 코드 이식
우선 자바 소스코드는 자바 컴파일러에 의해 바이트코드로 변환됩니다.
변환된 바이트코드는 JVM에 의해 실행됩니다.
자바 소스코드는 OS에 독립적이지만, JVM 자체는 OS에 종속적입니다.
즉 OS에 맞는 JVM을 설치한 후에 class file, object file을 이식하는 것입니다.
- 자바 컴파일러 존재 이유
예를 들어서, C++ 프로그램은 모든 종류의 CPU에 맞게 컴파일될 수 있지만, 그것을 위해서는 해당 CPU에 맞는 C++ 컴파일러가 필요합니다.
하지만 각 환경별 컴파일러를 개발하기 위한 비용이 비싸고 시간도 많이 소요됩니다.
좀 더 나은 방식을 찾기 위해 Cross Platform 언어가 개발된 것입니다.
인터넷과 웹의 출현으로 이식성의 문제가 중요하게 여겨졌고, 자바가 이 때문에 많은 사람들에게 사용되고 있습니다.
혹시 궁금한 점이 있다면 댓글 남겨주세요.
도움이 되었으면 좋겠습니다. :)
이클립스 활성화가 안되는부분이있어요ㅜㅜ
0
432
1
책에 자료실
0
497
1
StudentID
0
558
1
인터페이스와 가상 메서드
0
356
1
11분쯤 price, int price 질문
0
352
1
For문 (중첩된 반복문) 구구단 문의 드립니다.
0
786
1
반복문 별 출력 연습문제
0
393
1
비트 연산자 질문입니다.
1
371
1
Scheduler scheduler = null 굳이 하는 이유가 있나요
1
335
0
Class간의 연결
1
294
1
선생님 스킬
0
397
1
초기화 에러!!!
0
285
1
선생님 영상에서 목소리가 좀 작은 것 같습니다 ㅠㅠ
2
302
0
출력
2
232
0
Main 함수 저번 강의 거가 나와요
0
316
1
결과값오류
1
225
0
printIn 함수 질문
0
452
1
24분 57초에 질문 있습니다!!
0
362
1
1분36초쯤에 말씀하시는 자바닥??그거 보라고 하셨는데 자바닥이 뭐죠..?
0
250
1
메서드와 생성자
0
396
2
참조형 데이터 타입은 클래스 이름과 같아야 하나요?
0
286
1
반환값은 정수 밖에 안되나요?
0
272
1
9분33초 설명!!부탁 드립니다!
0
299
1
48분쯤에 {"B","C","D""} 를 왜 {'B','C','D'}로 바꿨죠?
0
297
1





