코드
코드(code) 혹은 소스(source)는 프로그램이 어떤 모습이고, 어떻게 동작해야 하는가를 표현한 일종의 설계도라고 할 수 있다. 그런데 컴퓨터 프로그래밍에서의 설계도는 설계도 이상의 의미가 있다. 설계도를 컴퓨터에게 제출하는 순간 컴퓨터는 그 설계도에서 요구하는 프로그램을 마법처럼 만들어주기 때문이다. 그래서 프로그래밍에서의 설계도는 그 프로그램 자체라고도 할 수 있다. 코드는 자바의 문법에 맞게 만들어진 텍스트 파일이고, 이 파일의 확장자는 .java를 사용한다.
아래와 같이 파일을 만들어보자. 코드를 만드는 데는 복잡한 프로그램이 필요 없다. 가장 간단한 에디터인 메모장으로도 코드를 만들 수 있다. 적당한 디렉터리(Java/exam)를 만들고 아래와 같은 내용을 가지고 있는 파일을 만들어보자. 파일의 이름은 Helloworld.java다.
1
2
3
4
5
|
class Helloworld { public static void main(String[] args){ System.out.println( "Hello world" ); } } |
컴파일
그런데 코드 자체를 바로 실행할 수는 없다. 자바의 문법은 사람만이 이해할 수 있는 형식으로 되어 있기 때문이다. 이 코드를 컴퓨터가 이해할 수 있는 상태로 변환해주는 과정이 필요한데 이것을 컴파일(compile)이라고 하고, 이 작업을 하는 소프트웨어를 컴파일러(compiler)라고 부른다.
1
|
javac Helloworld.java |
실행
위 의 명령을 실행하면 같은 디렉터리에 helloworld.class라는 이름의 파일이 생성된다. 바로 이 파일이 컴파일된 파일이고, 쉽게 말해서 실행파일이라고 할 수 있다. 그런데 이 파일은 파일 이름만으로 실행 할 수 있는 것은 아니고, 컴파일된 파일을 실행시켜주는 프로그램을 이용해야 한다. 이 작업을 하는 프로그램을 런처(launcher)라고 하고 아래와 같이 실행한다.
1
|
java Helloworld |
런처는 내부적으로 자바 가상 머신에서 우리가 만든 코드가 동작하도록 한다. 우리가 만든 프로그램은 최종적으로 자바 가상머신이라는 것을 통해서 동작하게 된다.
위와 같은 흐름을 통해서 자바 프로그램이 만들어지고 실행된다. 이를 통해서 알 수 있는 것은 코드만 있다고 프로그램이 만들어지는 것은 아니라는 것이다. 실제로 동작하는 프로그램은 자바이고, 여러분은 자바가 어떻게 동작할 것인가를 코드로 작성해서 자바에게 전달하면 자바는 그 코드에 적혀있는 데로 실행하게 되는 것이다.