자바

프로그램에 대한 오해

iseohyun 2021. 12. 17.

목차

    1. 자바프로그램은 내 컴퓨터에서 잘 동작하면 친구 컴퓨터에서도 잘 동작한다.

     아닙니다. 대부분은 컴퓨터 환경이 다르기 때문에 잘 동작하지 않습니다. 제조사도 다르고, 제조사가 같더라도 제조 시기가 달라 모델이나 라인업이 다를 수 있습니다.

    > 그렇다면, 필요한 프로그램이 생기면 그 때 그 때 코딩을 해야하나요?

    예, 예전에는 그랬습니다. Java는 이런 문제를 해결하기 위해서, 자기네 프로그램이 설치 되어 있다면, 어디서든 여러분의 코드가 동작 할 수 있도록 설계했습니다. 이를 JVM(자바 가상 머신)이라고 합니다.

    > 그럼 JDK는 뭔가요?

    가상머신은 정말정말 필요한 아주 핵심적인 기능만 추려서 만들어진 최소한의 프로그램입니다. 개발자는 실행 외에도 디버깅을 위해 여러가지 보조 장비가 필요합니다. JRE는 JVM의 동작을 좀 더 원할하게 하기 위한 보조도구라고 생각하면 됩니다.

    추가로, Java 진영은 병적으로 J를 붙이는 경향이 있습니다. 예를들어, SDK(표준 개발 도구), IDK(통합 개발 툴)과 같은용어가 이미 있었는데, JDK라고 이름을 붙였습니다. RE(Runtime Evironment),와 VM(Virture Machine)도 이미 있는 단어에서 J만 붙여서 만든 용어입니다.

     

     

     


    2. 코드를 컴파일 하면 코드가 실행된다?

    아닙니다. 코드를 실행 가능한 코드로 바꾸는 작업을 컴파일이라고 합니다. 실행 가능한 코드를 실행해야 합니다. 실행 가능한 코드는 확장자가 .exe인 파일을 의미합니다.

    > Java를 컴파일 하면 .class파일이 생성됩니다. exe파일이 생성되지 않습니다!

    맞습니다. Java프로그램을 실행하려면 java.exe파일을 실행해야하고 c:\Program files\java 하위 폴더에 위치해 있습니다. 이 파일을 통해서만 실행 할 수 있습니다. class파일을 실행하는 방법은 [다음]을 확인하세요. 참고로 C언어는 바로 exe파일을 생성하기 때문에 다른 프로그램 도움 없이 바로 실행이 가능합니다.

    > 간단판 프로그램이라도 돌려보려면 java.exe가 실행되야하나요? 왜 그런 번거로운 방법을 채택하는 거죠?

    마냥 번거로운 것 만은 아닙니다. 통상 컴파일과 실행 중 컴파일에 대한 부담이 훨씬 큽니다. 컴퓨팅 파워도 많이 필요하고, 라이브러리도 많이 필요하기 때문에, JRE만 있다면 실행 가능한 class파일이, 바로 실행가능하긴 하지만 컴퓨터가 바뀌었을 때마다 컴파일이 필요할지도 모르는 exe보다 이식성에 있어서 유리합니다.

    둘째, C언어에서도 .Net Framework 등의 Runtime Environment 프로그램을 설치해야 하는 경우가 대부분입니다. 즉, 어차피 보조 프로그램이 필요할바에 이식성을 높이는 것도 괜찮은 전략입니다.

    단, 아무래도 간접실행이다보니 실행속도에 있어서는 직접실행하는 방식보다는 떨어질 수 있습니다만, 컴퓨팅파워가 좋아지면서 체감할 정도가 아닌경우가 많고, 직접실행방식이라고 해도 알고리즘에 의해 속도가 좌우되는 경우가 더 크다고 하겠습니다.

    '자바' 카테고리의 다른 글

    Swing 예제코드  (0) 2021.12.17
    자바 유료화 이슈와 해석  (0) 2021.12.17
    Java 컴파일은 무엇을 하는 걸까?  (0) 2021.12.17
    클래스- 다이어그램  (0) 2021.12.16
    JavaFX 모듈 추가하는 방법  (0) 2021.12.04

    댓글