JAVA 기초를 배우기 위해 시작하다.
백엔드 개발자를 목표로 하고 있는데 자바스크립트, 파이썬도 충분히 좋은 언어지만 나의 능력을 더 넓히고 싶은 욕심에 자바를 배우고 싶어졌다. Node.js의 프레임워크는 Express, NestJS가 대표적으로 있는데 Express로 프로젝트를 해본 경험도 있고 NestJS는 최근에 인프런 강의를 들어서 프로젝트 경험은 없지만 어떻게 이루어지고 작동하는지 알고 있다. JAVA 기초 문법을 빠르게 배우고 Spring, JPA까지 학습할 예정이다.
자바는 표준 스펙과 구현으로 나눌 수 있다. 표준 스펙은 자바의 순수한 기반? 설계도?이다. 표준 스펙을 기반으로 여러 회사들에 실제 작동하는 자바를 만든다. 그 회사에 최적화된 자바를 개발하는 것이다. 자바 구현들은 모두 표준 스펙에 맞도록 개발되기 때문에 다른 구현에서 실행시켜도 문제없이 작동한다.
자바는 코드를 실행하는 과정에서 컴파일과 실행 단계를 거친다.
컴파일은 javac프로그램을 사용하여 소스 코드를 컴파일한다. .java를 .class 파일로 새롭게 생성하고 자바 소스 코드를 바이트 코드로 변환하여 자바 가상 머신(JVM)에서 더 빠르게 실행될 수 있게 최적화하고 오류도 검출하는 역할을 한다.
실행 단계는 java 프로그램을 사용하여 자바 가상 머신이 실행되면서 프로그램이 작동한다.
일반적인 프로그램은 다른 운영체제에서 실행할 수 없다. exe 프로그램은 윈도우에서만 실행가능 하듯이, 각 운영체제에 맞는 명령어들로 구성되어 있기 때문에 호환되는 운영체제에서만 실행가능하다.
하지만 자바는 특정 운영체제에 맞춰 개발하지 않아도 된다. 운영체제 호환성문제는 자바가 알아서 해결하기 때문에 자바 파일은 모든 자바 환경에서 실행할 수 있다. 따라서 자바 프로그램을 다른 운영체제에서 실행하고 싶다면 거기에 자바만 설치하면 된다.
이렇게 내가 배우려는 언어의 실행과정과 특징을 알아두면 배우는데 큰 도움이 됐으면 됐지 방해는 안된다.
1. JAVA의 개발 환경 (IDE)
자바 프로그램을 개발할 때는 인텔리제이(Intelli J) 또는 이클립스(Eclipse)를 사용하는데 최근에는 인텔리제이가 빠른 속도와 사용의 편의성 덕분에 주로 사용한다.
https://www.jetbrains.com/ko-kr/idea/download
OS는 각자 알맞게 선택하고 Windows는. exe, MAC은 M1, M2, 나머지는 Intel을 선택하면 된다.
그리고 가장 중요한 무료버전인 Community Edition을 다운로드해야 한다.
2. Project 파일 생성
Name: 프로젝트 파일 이름
Location: 프로젝트 생성 위치
Create Git repository: 선택 X
Language: JavaBuild system: Intelli JJDK: 자바 버전 17이상Add sample code 선택
JDK가 없다면 Add SDK를 누르고 Download JDK를 누른다. Version 21, Vendor는 Oracle OpenJDK를 선택하는데 다른 걸 선택해도 된다.
3. 코드 작성
src 폴더 안에서 새로운 클래스를 생성해서 코드를 작성하면 된다. 그럼 .java 파일이 생성될 것이다.
새로운 클래스를 생성하고 나면 클래스만 생성되어 있을 텐데 클래스 내부에서 psvm 자동완성하면
public class HelloJava { //HelloJava 클래스의 범위 시작
public static void main(String[] args) { //main() 메서드의 범위 시작
System.out.println("hello java");
} //main() 메서드의 범위 끝
} //HelloJava 클래스의 범위 끝
public static void main이 바로 생성된다. main 메서드를 생성한 것이다. 단순하게 포괄하는 함수라고 생각해도 된다.
이제 이 안에 작성하고 싶은 코드를 작성하면 된다. 자바는 대소문자를 구별하기 때문에 대소문자가 다르면 오류가 발생할 수 있다. 그리고 세미콜론(;)을 코드 끝에 붙여야 한다.
System.out.println("hello java")는 print 함수, 무언가를 출력할 때 사용한다. sout 자동완성이 있다. 자바는 문자열을 사용할 때 무조건 큰따옴표("문자열")를 사용한다.
주석은 자바스크립트와 동일하게 // 은 한 줄 주석, /**/은 여러 줄 주석이다.