1. Hello world

개발 환경 설정

IDE - 인텔리제이 vs 이클립스

  • 자바 프로그램을 개발할 때는 인텔리제이 또는 이클립스 사용, 인텔리제이가 주력
  • 자바로 개발하는 데부분 메이저 회사도 인텔리제이 사용

OS - 윈도우 vs Mac

  • 자바로 개발하는 대부분 메이저 회사는 Mac 사용
  • 윈도우를 사용해도 무방함

자바 프로그램 실행

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

주의

자바 언어는 대소문자를 구분한다. 대소문자가 다르면 오류가 발생할 수 있다.

실행 결과

hello java
  • public class HelloJava
    • HelloJava를 클래스라 한다. 클래스의 개념을 학습해야 이해할 수 있다. 클래스는 뒤에서 학습한다.
    • 지금은 단순히 HelloJava.java라는 파일을 만들었다고 이해하면 된다.
    • 파일명과 클래스 이름이 같아야 한다.
    • {} 블록을 사용해 시작과 끝을 나타낸다.
  • public static void main(String[] args)
    • main 메서드
    • 자바는 main(String[] args) 메서드를 찾아서 프로그램을 시작한다.
    • 시작점이라고 이해하면 된다.
  • System.out.println("hello java");
    • System.out.println(); 값을 콘솔에 출력하는 기능
    • 문자열은 "" 를 사용한다;

주석

  • 한 줄 주석
    • // 기호로 시작
  • 여러 줄 주석
    • /**/

자바란

자바 표준 스펙

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

  • 자바 표준 스펙
    • 자바는 이렇게 만들어야 한다는 설계도이며, 문서다.
    • 이 표준 스펙을 기반으로 여러 회사에서 실제 작동하는 자바를 만든다.
    • 자바 표준 스펙은 자바 커뮤니티 프로세스(JCP)를 통해 관리된다.
  • 다양한 자바 구현
    • 여러 회사에서 자바 표준 스펙에 맞추어 실제 작동하는 자바 프로그램을 개발
    • 각 장단점이 분명함 ex) Amazon Corretto는 AWS에 최적화
    • 각 회사들은 다양한 OS의 자바도 함께 제공

다양한 자바 구현 (opens in a new tab)

변경에 용이

  • 자바 구현들은 모두 표준 스펙에 맞도록 개발되어 있다. 따라서 오라클 Open JDK를 사용하다가 Amazon Corretto 자바로 변경해도 대부분 문제없이 동작한다.
🚨

참고

학습 단계에서는 어떤 자바를 사용하든 크게 상관 없음

컴파일과 실행

자바 프로그램은 다음과 같은 컴파일 실행단계를 가짐

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

IDE와 자바

  • 인텔리제이는 내부에 자바를 편리하게 설치하고 관리할 수 있는 기능을 제공
  • 이 기능을 사용하면 인텔리제이를 통해 자바를 편리하게 다운받고 실행할 수 있음
🚨

참고

자바를 OS에 직접 설치해도 되지만, 처음 프로그래밍을 시작하는 사람에게 이 과정은 매우 번거롭다. 자바를 직접 설치하는 경우 환경 설정이 복잡하다. 그래서 자바를 설치하다가 잘 안되어서 시작도 하기 전에 포기하는 경우가 많다. 자바 언어를 배우는 단계라면 인텔리제이를 통해 자바를 설치하는 정도면 충분하다. 자바를 직접설치하고 실행하는 내용은 별도로 다룬다.

인텔리제이를 통한 자바 컴파일, 실행 과정

  • 컴파일
    • 자바 코드를 컴파일 하려면 javac 라는 프로그램을 직접 사용해야 하는데, 인텔리제이는 자바 코드를 실행할 때 이 과정을 자동으로 처리한다.
    • 인텔리제이 화면에서 프로젝트에 있는 out 폴더에 가보면 컴파일된 .class 파일이 있는 것을 확인할 수 있음
  • 실행
    • 자바를 실행하려면 java 라는 프로그램을 사용해야 한다. 이때 컴파일 된 .class 파일을 지정해주면 된다.
    • 인텔리제이에서 자바 코드를 실행하면 컴파일과 실행을 모두 한번에 처리한다.
    • 인텔리제이 덕분에 매우 편리하게 자바 프로그램을 개발하고, 학습할 수 있다.

자바와 운영체제 독립성

일반적인 프로그램

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

자바 프로그램

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

자바 개발과 운영환경

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