개발을 할 때, 개발자들은 컴퓨터가 이해하는 명령어로 컴퓨터에게 지시를 내려야 합니다. 명령어는 프로그래밍 언어로 작성하고, 명령어가 모여 프로그램이 됩니다. 즉, 명령어로 프로그램을 작성해 실행하면 컴퓨터는 그에 맞게 작동합니다.
프로그래밍 언어로 프로그램을 작성하려면 도구가 필요합니다. 자바에서는 프로그램을 작성하는 데 필요한 것들을 모아 JDK(Java Development Kit, 자바 개발 도구 모음)라는 이름으로 제공합니다. 일반적으로 자바를 설치한다는 것은 결국 JDK를 설치한다는 것입니다.
JDK 외에도 자바로 프로그램을 작성하는 것을 돕는 IDE(Integrated Development Environment, 통합 개발 환경)라는 도구가 있습니다. 자바용 IDE로는 Eclipse(이클립스)와 IntelliJ IDEA(인텔리제이)가 대표적입니다.
macOS에서는 Homebrew로 설치하는 방법이 가장 간단하고 가장 권장됩니다. Homebrew는 macOS에서 패키지를 관리하는 도구입니다.
Homebrew가 설치되지 않은 경우 Homebrew 공식 웹사이트를 참조하여 Homebrew를 설치합니다.
/bin/bash -c "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >>
/Users/<USER_ID>/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
# jdk21 설치
$ brew install openjdk@21
# jdk17 설치
$ brew install openjdk@17
$ java --version
Homebrew를 이용하여 인텔리제이를 간편하게 설치할 수 있습니다.
# IntelliJ IDEA Community Edition (무료 버전)
$ brew install --cask intellij-idea-ce
# IntelliJ IDEA Ultimate Edition (유료 버전)
$ brew install --cask intellij-idea
설치가 완료되면 애플리케이션 폴더에 IntelliJ IDEA 아이콘이 추가됩니다. 이 아이콘을 클릭하여 인텔리제이를 실행할 수 있습니다.
인텔리제이 공식 홈페이지에서도 인텔리제이를 다운로드해 설치할 수 있습니다.

인텔리제이를 실행하고 시작 화면에서 New Project 버튼을 선택합니다. IntelliJ IDEA가 이미 열려있다면, 메뉴에서 File → New → Project...를 선택합니다.


프로젝트를 설정할 수 있는 화면이 나옵니다.
Name 필드에 프로젝트 이름을 입력합니다.Location 필드에 프로젝트를 저장할 경로를 지정합니다.Build System 필드는 IntelliJ를 선택합니다.JDK 필드는 앞에서 설치한 JDK 버전에 맞게 선택합니다. JDK가 설정되어 있지 않다면, Add JDK...를 선택하여 설치한 JDK 경로를 추가합니다.Add sample code 부분은 선택사항입니다.

프로젝트 생성 완료 화면

자동으로 입력된 샘플 코드(Main.java)로 자바 소스 코드의 기본 구조를 간단히 살펴보겠습니다.
public class Main { // 1
public static void main(String[] args) { // 2
System.out.printf("Hello and welcome!"); // 3
for (int i = 1; i <= 5; i++) { // 4
System.out.println("i = " + i); // 4
}
}
}
1:public class Main { ... }
클래스를 선언한 문장입니다. 클래스(class)는 자바에서 프로그램을 구성하는 기본 단위로, 자바 프로그램은 1개 이상의 클래스로 구성됩니다. 첫 줄에 있는 Main이 클래스명(클래스 이름)입니다. 클래스명은 자바 파일명(Main.java)과 동일하게 작성하고, 첫 글자는 알파벳 대문자로 시작합니다.
한 프로그램 안에 클래스가 2개 이상 존재할 수 있습니다. 이런 경우 파일명과 클래스명을 다르게 짓고 해당 클래스 앞에는 public을 붙이지 않습니다. 즉, public이 붙은 클래스는 한 파일에 1개만 존재합니다.
클래스명 뒤에 한 칸 띄고 중괄호({})가 있습니다. 중괄호는 클래스의 시작과 끝을 나타냅니다. 모든 코드는 클래스의 중괄호 안에 작성합니다.
2:public static void main(String[] args) { ... }
main()은 클래스에 포함된 메서드로, 프로그램의 시작점을 의미합니다. 프로그램을 실행하면 JVM에서 가장 먼저 main() 메서드를 찾습니다. 클래스 전체에서 main() 메서드는 하나만 존재할 수 있습니다. main() 메서드도 클래스와 마찬가지로 뒤에 중괄호가 오고, 그 안에 코드를 작성합니다.
3:System.out.printf("Hello and welcome!");
소괄호(()) 안에 있는 내용을 화면에 출력하라는 뜻입니다. 이와 같은 명령문 뒤에는 명령의 종료를 나타내는 세미콜론(;)을 항상 붙입니다.
자바는 명령어 끝에 항상 세미콜론(;)을 넣어야 합니다.
4:for (int i = 1; i <= 5; i++) {
System.out.println("i = " + i);
}
중괄호({}) 안에 있는 내용을 i가 1부터 5가 될 때까지 반복해서 실행하라는 의미입니다(반복문).