AFAIK은 As Far As I Know의 줄임말이다. 한국어로는 '내가 알기로는', '내피셜' 정도로 번역할 수 있다.
배운 내용들을 돌이켜보면 뭔가 이해한 듯 하고 프로그래밍 상으로도 작동은 하기는 한다.
그런데 여기에 틀린 부분이 없는지 아직 확실하지가 않으니 AFAIK만큼 딱 들어맞는 표현이 없다.
1. 바이트코드
VS Code로 자바 소스 파일을 하나 생성해보자.
Test라는 클래스 아래에 T01, T02, T03 이렇게 3개의 클래스가 포함되어 있다.
작성한 텍스트 파일의 확장자를 .java로 변경하고 터미널에서 컴파일해보자.
컴파일을 하기 위해서는 먼저 위에서 만든 자바 소스 파일이 저장된 폴더로 디렉터리를 옮겨주어야 한다.
그리고 컴파일 명령어 javac 소스파일이름.java 를 입력하면 된다.
컴파일이 정상적으로 완료되면 Test 클래스에 포함된 3개의 클래스 (T01, T02, T03)가 바이트코드로 생성된 것을 확인할 수 있다.
생성된 바이트코드는 JVM을 통해 기계어로 번역되어 최종적으로 컴퓨터에서 실행된다. 개발이 완료된 자바 프로그램 형태라고 할 수 있다.
도식화하면 위와 같다. 바이트코드 파일은 OS 종류와 무관하게 동일한 형태로 생성된다.
이것이 다시 JVM을 통해 각 OS에서 처리할 수 있는 기계어로 번역되어 실행된다. 자바의 우수한 호환성은 여기에서 나온다.
2. 패키지
패키지란 소스 파일과 컴파일된 바이트코드 파일을 관리하기 쉽도록 하나로 묶는 개념이다. 시스템의 파일 디렉터리와 유사하다.
VS Code에서 위와 같이 코드를 작성한다.순서대로 패키지, 클래스, 메서드를 선언하는 내용이다.
그리고 터미널에서 컴파일하면,
에러가 발생한다. 콘솔에 출력되는 코드는 터미널에서 컴파일할 수 없는 것으로 보인다.
출력 코드(5행)을 삭제하면 정상적으로 컴파일된다.
-> 문제 해결 및 원인
5행에 세미콜론(;)을 붙이지 않아 발생한 오류였다.
상단의 Ptest.java를 삭제하고 처음부터 다시 작성해보았다.
이번에는 터미널에서의 컴파일 과정 중 아예 패키지 단위까지 설정하였다.
명령어는 아래와 같다.
javac -d [바이트코드 저장위치] [소스 파일]
이번에는 2번에 걸쳐 반복적으로 폴더가 생성되었다. Verify.java 소스 파일은 ch01/verify에 위치해야 하는데,
그 앞에 동일한 경로가 하나 더 있는 상태다.


기본 설정 기준, 메인 화면의 좌측에는 Package Explorer가 있다.
패키지에 어떤 바이트코드가 포함되어 있는지 확인할 수 있다. 마우스 우클릭 후 등장하는 메뉴에서 Import 버튼을 클릭한다.


Import Wizard에서는 다양한 디렉터리로부터 자바 프로젝트(소스 파일)을 불러올 수 있다.
여기서 General 드롭다운 메뉴를 열어 맨 아래의 Projects from Folder or Archive 를 선택하고,
상단의 Import source 우측의 버튼에서 디렉터리 또는 아카이브를 지정할 수 있다.