WEEK 2-1: Java

ensalada.de.pollo·2025년 4월 27일

be

목록 보기
3/44

Java의 특징

플랫폼 독립성

각 OS마다 기계어를 해석하는 방식이 다릅니다. 그렇기 때문에 다른 컴파일 언어(C, C++)들을 컴파일하고 서로 다른 OS에서 실행하려고 할 때, 동작하지 않는 경우가 많습니다.
Java의 경우에는 소스 코드를 먼저 Java 컴파일러인 javac를 이용하여 바이트 코드(.class) 라는 중간 형태로 컴파일합니다. 여기서 만들어진 바이트 코드라는 것은, JVM으로 실행할 수 있습니다.

JVM(Java Virtual Machine)이란?

Java 프로그램을 실행하기 위한 가상머신입니다. 보통 사용하는 컴퓨터는 하드웨어로 구성이 되어있는데, JVM 같은 경우에는 소프트웨어로 구현된 컴퓨터라고 생각할 수 있습니다.
가장 중요한 역할은, 운영체제나 하드웨어에 상관없이 Java 바이트 코드를 실행할 수 있도록 돕는 것입니다. 소프트웨어로 구현된 컴퓨터이기 때문에 각각의 운영체제에 맞는 JVM만 갖추어져 있다면 컴파일된 Java 바이트 코드는 어느 실행 환경에서나 실행을 할 수 있습니다!

Java은 컴파일 언어인가?

JVM은 기본적으로 인터프리터 역할을 수행합니다. 여기서, 인터프리터의 단점을 보완하기 위해 캐싱 등을 수행하는 JIT 컴파일러 기능 또한 포함이 되어있기는 합니다.
JVM은 바이트 코드를 한 줄 한 줄 읽고 실행하는데, JVM은 실행 기계일 뿐, 이 때문에 Java가 컴파일 언어가 아니라는 것은 아닙니다.
우선 Java를 바이트 코드로 컴파일하는 과정에서 Java는 컴파일 언어라고 볼 수 있습니다. JVM이 바이트 코드를 실행하는 것 부터는 컴파일된 바이트 코드를 실행하는 과정이기 때문입니다.

컴파일러와 JVM은 어디에서 가져올 수 있나요?

JDK(Java Development Kit) 라는 Java 개발 도구 모음이 있습니다. JDK 안에 컴파일러(javac)와 JVM은 물론, Java 라이브러리 파일 등이 포함되어 있습니다.

객체 지향

처음 배우는 단계에선 크게 와닿지 않는 개념일 수 있습니다. 나중에 객체 지향 단계에서 구체적으로 설명을 하겠지만, 실제 세계에 존재하는 개념을 표현하고, 복잡한 소프트웨어를 더 잘 관리하기 위해 객체 지향이라는 개념을 사용한다는 정도로 알아두어도 될 것 같습니다.

거대한 생태계

Java는 1990년대에 발표되고 꾸준히 발전이 되어 온 언어입니다. 때문에 매우 다양한 라이브러리, 프레임워크 등을 가지고 있고, 공식 문서와 같은 것들도 충분히 인터넷에서 쉽게 찾아볼 수 있다는 장점이 있습니다.

Java Naming Convention

Class

첫 글자는 대문자를 사용합니다.
여러 단어를 연결해서 사용할 때에는 각 단어의 첫 글자를 대문자(PascalCase)로 사용합니다.

Variable, Method

첫 글자는 소문자를 사용합니다.
여러 단어를 연결해서 사용할 때에는 두 번째 단어부터 첫 글자를 대문자(camelCase)로 사용합니다.

Constant

모든 글자를 대문자로 사용합니다.
여러 단어를 연결해서 사용할 때에는 각 단어 사이를 언더스코어(_)로 구분합니다.

Package

모든 글자를 소문자로 사용합니다.
여러 단어를 연결해서 사용할 때에는 각 단어 사이를 점(.)으로 구분합니다.

이 외

  • 이름의 첫 글자는 숫자가 될 수 없습니다.
  • Java에서 사용하는 예약어(if, for 등)은 사용할 수 없습니다.
  • 식별자에 언더스코어(_)와 달러($)표시는 사용할 수 있지만, 시작 문자로는 권장하지 않는 편입니다.

Java 프로젝트 구조

Package란?

Java 프로젝트에서 파일들의 묶음을 Package 라고 합니다.
서로 연관이 되어있는 Java 클래스(파일)들을 묶어버린 것이라고 이해하시면 될 것 같습니다.

Class란?

Java 프로젝트에서 파일 하나하나를 의미한다고 생각하시면 됩니다. 클래스의 이름이 파일의 이름이 되고, 다른 파일에서 이 파일에 담긴 내용을 불러올 때도 클래스의 이름을 가져오면 됩니다.

자료 및 코드 출처: 스파르타 코딩클럽

0개의 댓글