언어/JAVA

[김영한의 자바 입문] - Hello World

charlie.saewoo 2025. 3. 10. 19:47

김영한 자바 강의 기본까지 듣고 중급 강의를 수강하기 전에
입문+기본 강의를 한번 내 입맛에 맞게 정리를 하고 넘어가는 게 좋을 것 같다는 생각이 들어서
이번달에 정리를 한번 쭉 해보려고 한다.

본격적으로 정리를 하기 전에 자바+인텔리제이(자바 개발 툴)를 세팅하고 hello java를 한번 출력해보자


자바

자바란?

먼저 자바를 설치해보기 전에 자바에 대해서 간단하게 설명을 적어보려고 한다.

자바는 표준 스펙구현으로 나눌 수 있다.

자바 표준 스펙은 자바를 어떻게 만들어야 하는지에 대한 설계도 문서이다.

그리고 이 설계도(자바 표준스펙)를 기반으로 여러 회사에서 실제 자바를 구현한다.(오라클 Open JDK, Amazon Corretto 처럼)

내 입장에선 처음 자바 공부를 시작할때 그래서 어떤 자바를 선택하라는건지 너무 결정하기 힘들었는데,각각 장단점은 있지만 다들 자바 표준 스펙에 맞춰 개발되었기 때문에 뭘 선택하든지 크게 문제는 되지 않을 것 같다.

오라클 Open JDK를 사용하다가 Amazon Corretto를 사용해도 대부분 문제 없이 동작한다.그리고 나처럼 자바를 학습하는 단계에서는 어떤 자바를 사용하든 크게 상관이 없기 때문에..나는 Zulu를 설치하려고 한다.

참고: 다양한 자바 구현에 대해 참고할 수 있는 사이트가 있다.
https://whichjdk.com/ko

자바 설치

1. JDK 설치

강의에서는 인텔리제이 안에서 설치할 수 있다고 알려주셨는데 난 이미 Zulu로 여러가지 설치해놨어가지고..

내 방식대로 자바 설치하는 방법을 적어보려고 한다

Zulu Open JDK 21 버전을 설치해보자. 링크는 아래와 같다.

https://www.azul.com/downloads/?version=java-21-lts&os=windows#zulu

 

Azul Downloads

No matter the size of your company, Azul offers competitive pricing options to fit your needs, your budget, and your ambition.

www.azul.com

 

설치하는 데 신경써야 할 것들은 다음과 같다

  • Java Version
    • 필요한 자바 버전을 선택하면 된다. LTS가 장기 지원 버전이므로 같은 버전인데 종류가 많고 뭘 써야 할 지 애매하다면 LTS 버전을 추천한다. EA는 Early Access의 줄임말.
  • Operating System
    • 쓰고 있는 운영체제를 선택하면 된다.
  • 64bit / 32bit
    • 아마 대부분 64비트 운영체제 컴퓨터를 사용하고 있을 것이다. 잘 모르겠다면 [설정 > 시스템 > 정보 >장치 사양] 에서 시스템 종류를 확인해보면 된다.
  • JDK / JRE
    • JRE : 자바 프로그램을 실행하는 데 필요한 패키지
    • JDK : 자바 개발 키트의 약자로 자바 프로그램 생성, 컴파일 가능. 개발할 때 사용한다. JRE는 JDK의 부분집합이므로 애매하면 JDK를 설치하자.
  • .msi /.zip
    • .msi : 윈도우 프로그램을 설치하고 실행하는 파일이다. 난 msi 파일로 설치하는 걸 좋아한다.

msi 파일 실행해서 자바 설치를 끝내고

환경변수 세팅을 진행하면 된다.

2. 환경변수 세팅

이제 환경 변수 세팅을 해줘야 한다.

[설정 > 시스템 > 정보] 로 들어가서 "고급 시스템 설정" 버튼을 클릭한다.

"환경 변수" 클릭

사용자변수와 시스템변수가 있을텐데 시스템변수에 새로 만들기를 클릭한다.

변수 이름: JAVA_HOME

변수 값: JDK 설치 경로

이렇게 작성 후 확인 클릭

다시 시스템변수 새로 만들기 클릭

변수 이름: CLASSPATH

변수 값: %JAVA_HOME%\lib

작성 후 확인 클릭

그리고 시스템변수에 잘 찾아보면 변수명이 "Path"인 애가 있다. 얘를 누르고 편집 버튼 클릭

새로 만들기 클릭하고 다음과 같이 추가한다.

%JAVA_HOME%\bin

bin 폴더에 자바 실행파일이 있기 때문에, 이렇게 지정해주면 어느 위치에서 cmd를 열어도 자바를 인식할 수 있게 된다.

여기까지 따라왔으면 자바가 잘 설치됐는지 확인해보자

cmd를 열어서

java --version 작성 후 엔터

잘 설치가 된 것을 확인할 수 있다.


인텔리제이 설치

자바 설치를 끝냈으니 인텔리제이를 설치해보자

다운로드 링크는 여기

https://www.jetbrains.com/ko-kr/idea/download/?section=windows

 

IntelliJ IDEA 다운로드

 

www.jetbrains.com

 

무료 버전인 Intellij IDEA Community Edition을 설치하자.

다운로드 클릭 후 exe파일 실행

다음 클릭

다음

  • 데스크톱 바로가기 생성
    • 취향껏 선택하면 된다. 나는 바로가기 생성하는걸 별로 안좋아해서 체크하지 않았다.
  • 컨텍스트 메뉴 업데이트
    • 체크하면 아래 사진처럼 우클릭 시 "Open Folder as IntelliJ IDEA Project"를 선택할 수 있다. 나는 이게 편해서 체크해줬다.

그 외에 PATH 변수 업데이트 체크, 연결생성을 .java로 체크해준 후 다음 클릭

설치를 클릭하면 인텔리제이 설치가 완료된다.

자바와 인텔리제이까지 설치했으니 프로젝트를 하나 만들어서 "hello java"를 출력하는 프로그램을 작성해보자


자바 프로그램 실행

먼저 인텔리제이 실행

New Project 클릭

Name: 원하는 프로젝트명 작성. 나는 그냥 test로 적었다

Location: 원하는 경로. 해당 경로에 프로젝트가 생성된다.

Build system: IntelliJ

JDK: 설치해준 zulu-21로 세팅해준다

그리고 Create 클릭하면 프로젝트가 생성된다.

src 폴더에서 우클릭 -> New -> Java Class 클릭

Name은 "HelloJava"로 작성하고 엔터

그럼 다음과 같이 클래스가 하나 만들어진다.

HelloJava

public class HelloJava {
    public static void main(String[] args) {
        System.out.println("Hello Java");
    }
}

위와 같이 코드를 작성한 후, Ctrl+Shift+F10 를 누르면

이렇게 실행이 된다.

이제 이 코드를 분석해보자.

public class HelloJava

  • HelloJava를 클래스라고 한다.클래스(class)의 개념은 추후에 정리를 하고 링크 추가를 하려고 한다.
  • 지금은 단순히 HelloJava.java라는 파일을 만들었다고 이해하면 된다.
  • 파일명과 클래스 이름이 같아야 한다.
  • {}블록을 사용해서 클래스의 시작과 끝을 나타낸다.

public static void main(String[] args)

  • main메서드라 한다. 메서드의 개념은 추후에 정리를 하고 링크 추가를 하려고 한다.
  • 자바는 main(String[] args) 메서드를 찾아서 프로그램을 시작한다.
  • main은 프로그램의 시작점이라고 이해하면 된다.
  • {} 블록을 사용해서 메서드의 시작과 끝을 나타낸다.

System.out.println("Hello Java");

  • System.out.println(): 값을 콘솔에 출력하는 기능이다.
  • "Hello Java": 자바는 문자열을 사용할 때 "(쌍따옴표)를 사용한다. 쌍따옴표 사이에 원하는 문자열을 감싸면 된다.
  • ;: 자바는 세미콜론으로 문장을 구분한다. 문장이 끝나면 세미콜론을 필수로 넣어주어야 한다.

참고: 괄호

  • 소괄호 ()
  • 중괄호 {}
  • 대괄호 []

실행 과정

  1. HelloJava 프로그램을 실행한다.
  2. 자바는 시작점인 main() 메서드를 실행한다.
  3. System.out.println("Hello Java")을 만나고, 문자열 Hello Java를 출력한다.
  4. main() 메서드의 {} 블록이 끝나면 프로그램은 종료된다.

블록(block) 예시

public class HelloJava { //HelloJava 클래스의 범위 시작
    public static void main(String[] args) { //main() 메서드의 범위 시작
        System.out.println("hello java");
    } //main() 메서드의 범위 끝
} //HelloJava 클래스의 범위 끝
  • 블록({})이 시작되고 끝날 때 마다 들여쓰기가 적용되어 있는 것을 확인할 수 있다. 코드를 쉽게 구분하고 이해하도록 도와주는 관례이다. 블록이 중첩될 때 마다 들여쓰기의 깊이가 추가된다.
  • 들여쓰기는 보통 스페이스 4번을 사용한다. 또는 키보드 Tab을 한번 누르면 자동으로 스페이스 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()을 시작으로 위에서 아래로 한줄씩 실행된다.


주석

소스 코드가 복잡하다면 소스 코드에 대한 이해를 돕기 위해 설명을 적어두고 싶을 수 있다.

또는 특정 코드를 지우지 않고, 잠시 실행을 막아두고 싶을 때도 있다.

이럴 때 주석을 사용하면 된다. 자바는 주석이 있는 곳을 무시한다

주석의 종류

  • 한 줄 주석 (single line comment)
    • //기호로 시작한다. 이 기호 이후의 모든 텍스트는 주석으로 처리된다.
  • 여러 줄 주석(multi line comment)
    • /*로 시작하고 */로 끝난다. 이 사이의 모든 텍스트는 주석으로 처리된다.

CommentJava

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");
        */
    }
}

실행 결과

 hello java1

주석으로 처리한 코드가 실행되지 않은 것을 확인할 수 있다.

주석은 자바 프로그램이 읽지 않고 무시하는 부분이다. 사람이 읽기 위해서 사용한다.


컴파일과 실행

자바 프로그램을 실행하면 무슨 일이 일어나는지 알아보자.

자바 프로그램은 컴파일과 실행 단계를 거친다.

  • Hello.java와 같은 자바 소스 코드를 개발자가 작성한다.
  • 자바 컴파일러를 사용해서 소스 코드를 컴파일 한다. (인텔리제이가 자동으로 처리해줌)
    • 자바가 제공하는 javac라는 프로그램을 사용한다.
    • .java -> .class 파일이 생성된다.
    • 자바 소스 코드를 바이트코드로 변환하며 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화하고 문법 오류도 검출한다.
  • 자바 프로그램을 실행한다.
    • 자바가 제공하는 java라는 프로그램을 사용한다.
    • 자바 가상 머신(JVM)이 실행되면서 프로그램이 작동한다.

이제 인텔리제이에서 자바 코드를 실행하면 컴파일과 실행이 모두 한번에 처리가 되는 것이다.


자바와 운영체제 독립성

일반적인 프로그램과 자바 프로그램의 차이를 비교하여 자바의 운영체제 독립성에 대해 알아보자.

일반적인 프로그램

  • 일반적인 프로그램은 다른 운영체제에서 실행할 수 없다.
  • 예를 들어 윈도우 프로그램은 MAC이나 리눅스에서 작동하지 않는다.
  • 윈도우 프로그램은 윈도우 OS가 사용하는 명령어들로 구성되어 있기 때문이다. 해당 명령어는 다른 OS와는 호환되지 않는다.

자바 프로그램

  • 자바 프로그램은 자바가 설치된 모든 OS에서 실행할 수 있다.
  • 자바 개발자는 특정 OS에 맞추어 개발을 하지 않아도 된다. 자바 개발자는 자바에 맞추어 개발하면 된다. OS 호환성 문제는 자바가 해결한다. Hello.class 와 같이 컴파일된 자바 파일은 모든 자바 환경에서 실행할 수 있다.
  • 윈도우 자바는 윈도우 OS가 사용하는 명령어들로 구성되어 있다. MAC이나 리눅스 자바도 본인의 OS가 사용하는 명령어들로 구성되어 있다. 개발자는 각 OS에 맞도록 자바를 설치하기만 하면 된다.

자바 개발과 운영 환경

  • 개발할 때 자바와 서버에서 실행할 때 다른 자바를 사용할 수 있다.
  • 개발자들은 개발의 편의를 위해서 윈도우나 MAC OS를 주로 사용한다.
  • 서버는 주로 리눅스를 사용한다. 만약 AWS를 사용한다면 Amazon Corretto 자바를 AWS 리눅스 서버에 설치 하면 된다. 
  • 자바의 운영체제 독립성 덕분에 각각의 환경에 맞추어 자바를 설치하는 것이 가능하다.

이렇게 [김영한의 자바 입문] 강의의 첫번째 섹션 - Hello World 내용 정리를 해봤다.

생각보다 오래 걸리네..다음번엔 섹션2 - 변수에 관한 내용을 정리하려고 한다.