[JAVA] 자바의 기초/이클립스 프로젝트 만들기
자바의 기초
자바로 코딩을 시작하기 전에, 코딩 과정의 흐름에 대해서 적어보려고 한다. 우선 컴퓨터는 우리가 작성한 소스코드를 그대로 이해하지 못한다. 따라서 우리가 적은 소스 코드를 컴퓨터가 이해할 수 있게 변환시켜줘야 하는데, 이클립스의 장점이 바로 여기 있다. 파일 변환과 실행까지의 과정을 프로그램 내에서 실행할 수 있다는 점이다.
이런 과정을 자세히 살펴보도록 하면,
위와 같은 도식도의 흐름이 된다.
이것을 상세하게 설명해보면, 개발자가 소스 코드 파일을 작성하면 JVM이 소스 코드 파일을 기계어가 읽을 수 있는 바이트 코드 파일로 만들어주고 실행까지 시켜준다. 이때, 바이트 코드 파일은 완전한 기계어가 아니다. 그렇기 때문에 바이트 파일을 운영체제에서 바로 실행할 수 없고 JVM(자바 가상 기계, Java Virtual Machine)이 필요하다. 다시 말해 JVM은 바이트 파일을 운영체제에 번역해주는 번역기라고 볼 수 있겠다.
소스 코드를 바이트 코드로 바꾸기 위해 javac-라는 명령어를 사용하고, 바이트코드를 JVM으로 읽기 위해 java-라는 명령어를 사용한다. 윈도우 기준으로 소스 코드를 작성하면 실행을 위해 CMD를 열어 직접 명령어를 입력해서 파일 변환과 실행을 명량해야하지만 이클립스는 이 모든 과정을 알아서 진행 해준다.
참고로 이때 여기서 JVM은 OS마다 다르므로 OS에 맞게 설치해줘야한다. 하지만 JVM만 설치하면 하나의 바이트코드 파일을 여러 OS에서 사용할 수 있게 되는데 이게 바로 자바의 강점이라고 할 수 있다.
덧붙이자면 JVM은 JDK에 포함되어있는 소프트웨어이다(머신이라고 적혀있지만 HW기기 아님.)
이클립스 퍼스펙티브/뷰
퍼스펙티브(Perspective)는 이클립스에서 프로젝트를 개발할 때 유용하게 사용할 수 있는 뷰들을 묶어둔 것을 부른다. 다시 말해서 이클립스를 구성하는 다양한 뷰들의 세트라고 볼 수 있을 것이다.
각자 선호하는 대로 화면을 구성하면 되지만, IDE 버전의 이클립스는 기본적으로 JAVA EE 퍼스펙티브를 보여주기 때문에, 개인적으로는 좀 더 편한 JAVA 퍼스펙티브로 변경해서 사용한다.
변경하는 방법은, Window – Perspective – Open Perspective – Java 메뉴를 선택하면 된다.
이렇게 설정해주면 기본적인 화면 구조는,
이렇게 구성된다.
화면에서 왼쪽은 Package Explorer 뷰로써, 프로젝트를 관리하고 자바소스파일을 생성 및 삭제하는 작업을 한다.
나는 미리 하단에 콘솔뷰를 띄워뒀는데, 소스코드 파일을 컴파일하게 되면 Output이 콘솔창에 뜨게 된다.
(만약 콘솔뷰가 보이지 않는다면, Window – Show View – Console을 눌러주면 된다.)
또한 참고 사항으로 오른쪽 상단에 퍼스펙티브 단축키가 있다.
빨간 동그라미가 JAVA EE 퍼스펙티브, 파란 동그라미가 JAVA 퍼스펙티브의 단축키이다.
또 가장 왼쪽의 단축키를 누르면 새로운 퍼스펙티브를 불러올 수 있다.
이클립스 프로젝트 / 소스파일 생성하기
이제 본격적으로 프로젝트를 만들어보자.
File – New – Java Project 메뉴를 눌러준다.
(자바 퍼스펙티브 모드가 아니면 Java Project 메뉴가 안보일 수도 있다. 안보이면 퍼스펙티브를 변경시켜준다.)
1. Project name: 새로운 프로젝트 명을 적어준다.
2. Location 에서 프로젝트 경로를 확인해준다.
3. JRE에서 사용할 JAVA 버전을 확인한다.
4. Project layout은 자바 소스 파일과 바이트 코드 파일을 분리해 저장하도록 설정되어 있는 것이 기본값이다.
여기서 JDK 11 이후 버전과 이전 버전이 나뉘게 된다. 이전 버전은 Finish를 눌렀을 때 아무것도 뜨지 않고 프로젝트 파일이 완성되지만 11 이후 버전은 New module-info.java 창이 나타나게 된다.
이클립스가 생성하는 프로젝트는 모듈로 만들어진다. 따라서 Module Descriptor(모듈 기술자)이라고 부르는 module-info.java가 필요하다. Module name에 모듈명을 입력하면 되는데, 기본적으로 프로젝트명이 들어가 있다. 해당 모듈 기술자(module-info.java)를 열면 Module 옆에 있는 것이 모듈명이 된다.
module (모듈 기술자 이름) {
}
꼭 모듈 이름을 프로젝트 이름으로 할 필요는 없지만 개인적으로 함수 이름 짓기가 제일 어려워서 보통 프로젝트로 설정하곤 한다.
(JDK 8 이하 버전은 module-info.java를 생성하지 않아도 된다. 오히려 모듈 기술자를 생성하면 컴파일 에러가 발생된다.)
JDK 11 이후부터는 명령 프롬프트와 같은 명령 라인에서 프로젝트를 실행할 때 모듈명이 필요하다. 이때, 프로젝트의 모듈명을 모른다면 module-info.java의 내용을 보고 확인하면 된다.
이제 module-info.java의 편집 뷰에서 블록 안에 필요한 모듈을 작성해줄 것이다.
module (모듈 기술자 이름) {
requires java.se;
}
이는 java se가 제공하는 모든 모듈이 필요함을 의미한다. 위와 같이 작성 되었으면 파일을 저장하도록 한다.
이제부터 이후의 모든 프로젝트에도 별도의 설정이 필요 없다면 이처럼 작성해주면 된다.
자바 이클립스 소스파일 생성하기
이제 소스 파일을 생성해보도록 하겠다.
프로젝트 익스플로어 뷰에서(JAVA 퍼스펙티브에서 화면 왼쪽) src폴더를 선택하고 마우스 오른쪽 버튼 – New – Package를 눌러준다.
자바는 소스 파일이나 바이트 코드 파일을 기능별로 관리할 수 있게 패키지를 사용한다. 패키지는 디렉토리와 비슷한 개념이라고 볼 수 있는데, JDK 11 이후부터는 직접 생성하는 프로젝트도 모듈로 활용할 수 있기 때문에 패키지를 요구한다고 한다. JDK 8 이전 버전에서는 꼭 필요하지 않지만, 패키지가 없는 프로젝트는 거의 없으므로 습관으로 만드는 걸 추천한다.
체크는 할 필요 없다. 이제 src 폴더 밑에 위에서 정해준 이름의 패키지가 생긴다. 다시 패키지를 클릭하고 마우스 우클릭 – New – Class 를 눌러준다.
원하는 class 파일의 이름을 적어준다. 간단한 출력만 해볼 것이라서 Hello라고 설정했다. 이후 main() 메소드를 자동으로 추가하기 위해서 아래의 public static void main버튼을 체크해준다. Finish를 눌러주면 자동으로 Hello.java 소스파일이 생성되고, 편집 뷰가 열린다. 편집부에서 Hello, World를 출력해 볼 것이다.
여기서 라인 끝에 세미콜론(;)은 필수로 붙여주며, class 이름은 파일명과 대소문자가 동일해야한다. 또한, System 호출에서도 대문자를 주의해야한다.
package sample.01;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
이클립스는 소스 파일을 저장하면 자동으로 컴파일이 된다. 꼭 수정사항을 저장하고, 상단에서 run을 시켜보도록 한다.
바로 이 로고인데, 파일에서 그냥 마우스 우클릭 – Run As – Java Application을 눌러서 실행할 수도 있다. 콘솔창에 제대로 출력이 나오면 에러 없이 잘 돌아간 것이다.
*참고 - 이클립스를 사용하지 않고 CMD로 자바 소스코드 실행하기: https://hyojin-p.tistory.com/15