무료 버전: IntelliJ IDEA Community Edition (이것 다운로드 하기)
OS 선택: Windows, macOS, Linux
Windows: .exe 선택
macOS: M1, M2, M3는 Apple Silicon; 나머지는 Intel 선택
참고: 인텔리제이는 무료 버전인 Community Edition과 유료 버전인 IntelliJ IDEA Ultimate가 있음. 이 강의에서는 무료 버전인 Community Edition으로 충분함. 특히 자바 언어를 학습하는 단계에서는 유료 버전과 무료 버전의 차이가 없음.
3. 인텔리제이(IntelliJ) 실행하기
1) 새 프로젝트 생성
'New Project' 클릭 >
Name: 원하는 이름 지정
Location: 프로젝트를 저장할 원하는 경로 지정
Create Git repository: 깃 저장 원할 경우 선택, 이 강의에서는 uncheck
Language: Java
Build system: IntelliJ
JDK: 아무거나 사용해도 무방, 없으면 다운로드,이 강의에서는 가장 최신 버전인 Oracle OpenJDK 21 사용
JDK란: 자바로 개발하기 위해 필요한 도구 + 자바 실행 프로그램의 묶음
'Download JDK' >
Version: 23
Vendor: Oracle OpenJDK
aarch64: 애플 M1, M2, M3 CPU 사용 시 선택, 나머지는 뒤에 이런 코드가 붙지 않은 JDK 선택하면 됨
Location: 기본설정, 건들지 않아도 됨
나는 Oracle OpenJDK 23 사용!
Add Sample Code (체크 되있는 상태) 및 Advanced Setting 그대로 두기
'Create' 클릭
2)ItelliJ 메인 화면
앞서 Add sample code 선택하여 샘플 코드가 만들어져 있음
위쪽에 초록색 화살표 버튼 클릭 > Run 'Main.main()' 버튼 클릭 시 프로그램 실행됨
public class HelloJava { //HelloJava 클래스의 범위 시작
public static void main(String[] args) { //main() 메서드의 범위 시작
System.out.println("hello java");
} //main() 메서드의 범위 끝
} //HelloJava 클래스의 범위 끝
블록 { }이 시작되고 끝날 때 마다 들여쓰기가 적용되어 있는 것을 확인 가능.
이것은 코드를 쉽게 구분하고 이해하도록 도와주는 좋은 관례임.
블록이 중첩될 때 마다 들여쓰기의 깊이가 추가됨.
들여쓰기는 보통 스페이스 4번을 사용함. 참고로 IntelliJ IDE를 사용하면 키보드 Tab을 1번 누르면 자동으로 스페이스 4번을 적용함.
참고로 들여쓰기를 하지 않아도 프로그램은 작동함. 하지만 코드를 읽기에 좋지 않음.
추가 예제
HelloJava2 클래스 새로 생성 후 다음을 작성
public class HelloJava2 {
public static void main(String[] args) {
System.out.println("hello java1");
System.out.println("hello java2");
System.out.println("hello java3");
}
}
실행 결과:
hello java1
hello java2
hello java3
프로그램은 main()을 시작으로 위에서 아래로 한 줄 씩 실행됨.
03 주석(comment)
자바는 주석이 있는 곳을 무시함.
사용 용도:
소스 코드가 복잡하다면 소스 코드에 대한 이해를 돕기 위해 설명을 적어둘 때.
특정 코드를 지우지 않고, 잠시 실행을 막아두고 싶을 때.
1. 주석의 종류
한 줄 주석 (single line comment):
// 기호로 시작. 이 기호 이후의 모든 텍스트는 주석으로 처리됨.
여러 줄 주석 (multi line comment)
/* 로 시작하고 */로 끝남. 이 사이의 모든 텍스트는 주석으로 처리됨.
주석 예시
public class CommentJava {
/*
주석을 설명하는 부분입니다.
*/
public static void main(String[] args) {
System.out.println("hello java1"); //hello java1을 출력합니다. (한 줄 주석 - 부분 적용)
//System.out.println("hello java2"); 한 줄 주석 - 라인 전체 적용
/* 여러 줄 주석
System.out.println("hello java3");
System.out.println("hello java4");
*/
}
}
자바 구현들은 모두 표준 스펙에 맞도록 개발되어 있음. 따라서 오라클 Open JDK를 사용하다가 Amazon Corretto 자바로 변경해도 대부분 문제 없이 동작함 (학습 단계에서는 어떤 자바를 사용하든 크게 상관 없음)
각각 장단점 존재: 예) Amazon Corretto는 AWS에 최적화 되어있음
각 회사들은 대부분 윈도우, MAC, 리눅스 같이 다양한 OS에서 작동하는 버전의 자바도 함께 제공함
2. 컴파일과 실행
자바 프로그램은 컴파일과 실행 단계를 거침:
step 1. Hello.java와 같은 자바 소스 코드를 개발자가 작성함
step 2. 자바 컬파일러를 사용해서 소스 코드를 컴파일함
자바가 제공하는 javac라는 프로그램을 사용함
.java → .class 파일이 생성됨
자바 소스 코드를 바이트코드로 변환하며 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화하고 문법 오류도 검출함
step 3. 자바 프로그램을 실행함
자바가 제공하는 java라는 프로그램 사용함
자바 가상 머신 (JVM)이 실행되면서 프로그램이 작동함
3. IDE와 자바
1) IntelliJ를 통한 자바 설치 관리
인텔리제이는 내부에 자바를 편리하게 설치하고 관리할 수 있는 기능을 제공함
이 기능을 사용하면 인텔리제이를 통해 자바를 편리하게 다운로드 받고 실행할 수 있음
참고: 자바를 OS에 직접 설치해도 되지만, 처음 프로그래밍을 시작하는 사람에게 이 과정은 매우 번거로움. 자바를 직접 설치하는 경우 환경 설정이 복잡함. 그래서 자바를 설치하다가 잘 안되어 시작도 하기 저에 포기하는 경우 다수. 자바 언어를 배우는 단계라면 인텔리제이를 통해 자바를 설치하는 정도면 충분함. 자바를 직접 설치하고 실행하는 내용은 별도로 다룰 것.
2) IntelliJ를 통한 자바 컴파일, 실행 과정
컴파일
자바 코드를 컴파일 하려면 javac라는 프로그램을 직접 사용해야 하는데, 인텔리제이는 자바 코드를 실행할 때 이 과정을 자동으로 처리해줌
예) javac Hello.java
인텔리제이 화면에서 프로젝트에 있는 out 폴더에 가보면 컴파일된 .class 파일이 있는 것을 확인 가능
.java가 컴파일 돼서 .class가 된 것
.java vs .class
.class에는 .java에 있던 주석들이 없음; 실행 되는 코드만 작성하기 때문.
CommentJava.javaCommentJava.class
실행
자바를 실행하려면 java라는 프로그램을 사용해야 함. 이때 컴파일된 .class 파일을 지정해주면 됨.
예) java Hello
참고: 확장자는 제외함
인텔리제이에서 자바 코드를 실행하면 컴파일과 실행을 모두 한번에 처리함
인텔리제이로 매우 편리하게 자바 프로그램을 개발하고 학습 가능
4. 자바와 운영체제의 독립성
1) 일반적인 프로그램
일반적인 프로그램은 다른 운영체제에서 실행 불가능함
예) 윈도우 프로그램을 실행하면 MAC이나 리눅스에서 작동하지 않음.
이유: 윈도우 프로그램은 윈도우 OS가 사용하는 명령어들로 구성되어 있기 때문. 해당 명령어는 다른 OS와 호환되지 않음.
2) 자바 프로그램
자바 프로그램은 자바가 설치된 모든 OS에서 실행 가능
자바 개발자는 특정 OS에 맞추어 개발을 하지 않아도 됨. 자바 개발자는 자바에 맞추어 개발하면 됨. OS 호환성 문제는 자바가 해결함. Hello.class와 같이 컴파일된 자바 파일은 모든 자바 환경에서 실행 가능
윈도우 자바는 윈도우 OS가 사용하는 명령어들로 구성되어 있음. MAC이나 리눅스 자바도 본인의 OS가 사용하는 명령어들로 구성되어 있음. 개발자는 각 OS에 맞도록 자바를 설치하기만 하면 됨.
3) 자바 개발과 운영 환경
개발할 때 자바와 서버에서 실행할 때 다른 자바를 사용할 수 있음
개발자들은 개발의 편의를 위해 윈도우나 MAC OS를 주로 사용함
서버는 주로 리눅스를 사용함. 만약 AWS를 사용한다면 Amazon Corretto 자바를 AWS 리눅스 서버에 설치하면 됨