[김영한의 자바 입문] - Hello World
김영한 자바 강의 기본까지 듣고 중급 강의를 수강하기 전에
입문+기본 강의를 한번 내 입맛에 맞게 정리를 하고 넘어가는 게 좋을 것 같다는 생각이 들어서
이번달에 정리를 한번 쭉 해보려고 한다.
본격적으로 정리를 하기 전에 자바+인텔리제이(자바 개발 툴)를 세팅하고 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"
: 자바는 문자열을 사용할 때"
(쌍따옴표)를 사용한다. 쌍따옴표 사이에 원하는 문자열을 감싸면 된다.;
: 자바는 세미콜론으로 문장을 구분한다. 문장이 끝나면 세미콜론을 필수로 넣어주어야 한다.
참고: 괄호
- 소괄호
()
- 중괄호
{}
- 대괄호
[]
실행 과정
HelloJava
프로그램을 실행한다.- 자바는 시작점인
main()
메서드를 실행한다. System.out.println("Hello Java")
을 만나고, 문자열Hello Java
를 출력한다.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 - 변수에 관한 내용을 정리하려고 한다.