Java

JAVA 기초 정리 - 자바의 특징과 개발 환경

chungmani 2026. 5. 12. 17:26

오늘은 자바의 기본 특징과 실행 구조에 대해 공부했다.
처음에는 용어들이 많아서 헷갈렸는데, 흐름으로 이해하니까 조금씩 정리가 되는 느낌이었다.

자바의 가장 큰 특징 - 플랫폼 독립성

자바는 대표적으로 플랫폼 독립성을 가진 언어라고 한다.

자바에서 자주 나오는 문장이 있는데:

Write Once, Run Anywhere

한 번 작성하면 어디서든 실행 가능하다는 의미이다.

 

예전에는 Windows, Mac, Linux 같은 운영체제마다 각각 맞는 프로그램을 따로 만들어야 했다고 한다.
하지만 자바는 JVM(Java Virtual Machine) 덕분에 운영체제에 크게 영향을 받지 않는다.


JDK(Java Development Kit)

자바 프로그램을 개발할 때 필요한 개발 도구 모음이다.

대표적으로 아래와 같은 것들이 포함되어 있다.

  • Javac(Java Compiler)
  • JVM(Java Virtual Machine)

자바 실행 과정

1. 자바 파일 작성

코드를 작성하면 .java 파일이 생성된다.

예를 들면:

Main.java

2. 자바 컴파일러(Javac)

작성한 .java 파일을 컴파일러가 바이트코드(Bytecode)로 변환한다.

바이트코드는 자바 프로그램이 실행되기 전의 중간 코드라고 볼 수 있다.

즉,

.java → 바이트코드(.class)

이런 흐름으로 변환된다.

3. JVM(Java Virtual Machine)

JVM은 바이트코드를 읽고 해석해서 실제 프로그램을 실행시킨다.

이 과정 덕분에 JVM만 설치되어 있다면 어떤 운영체제에서도 실행이 가능하다.

전체 실행 흐름 정리

자바 파일 작성(.java)
→ 컴파일러(Javac)
→ 바이트코드(.class)
→ JVM
→ 프로그램 실행

IntelliJ 실습

자바를 실습하면서 기본 규칙들도 함께 배웠다.

클래스 이름과 파일 이름은 동일해야 한다

예를 들어 클래스 이름이 Main 이라면 파일 이름도 Main.java 여야 한다.

public class Main {

}

프로그램 시작점

public static void main(String[] args) {

}

위 코드는 자바 프로그램의 시작점 역할을 한다.

모든 자바 프로그램은 main 메서드부터 실행된다.

 

처음에는 엄청 길고 복잡해 보였는데, 지금은 "프로그램 시작 버튼" 정도로 이해하고 넘어가는 중이다.


자바는 객체지향 언어

자바는 기본적으로 객체(Object) 중심으로 동작하는 언어라고 한다.

수업에서는:

  • 클래스 → 설계도
  • 객체 → 실제 만들어진 결과물

이라고 설명해주셨다.

아직 완전히 이해되진 않았지만, 앞으로 계속 나오게 될 중요한 개념인 것 같다.

그리고 실무에서는 클래스와 객체라는 표현을 혼용해서 사용하는 경우도 많다고 한다.


메모리 개념

컴퓨터는 데이터를 메모리에 저장하면서 동작한다.

RAM (주기억장치)

  • 속도가 빠르다
  • 휘발성이다
  • 전원이 꺼지면 데이터가 사라진다

하드디스크 (보조기억장치)

  • 속도는 상대적으로 느리다
  • 데이터를 영구적으로 저장할 수 있다

네이밍 규칙

코드를 작성할 때 이름 규칙도 중요하다.

camelCase

띄어쓰기 대신 대문자를 사용하는 방식이다.

첫 글자는 소문자로 시작한다.

예시:

userName
studentAge

낙타 등처럼 생겼다고 해서 camelCase 라고 부른다.

snake_case

언더바(_)로 단어를 연결하는 방식이다.

예시:

user_name
student_age

언더바가 뱀처럼 이어져 있어서 snake_case 라고 부른다.


패키지와 클래스 규칙

패키지(package)

폴더 개념이라고 이해하면 편하다.

패키지 이름 규칙

  • 소문자만 사용
  • 숫자로 시작 불가
  • 특수문자 사용 불가
  • 예약어 사용 불가 (class, public 등)

클래스(class)

자바 파일 단위라고 볼 수 있다.

클래스 이름 규칙

  • 첫 글자는 대문자
  • 카멜케이스 방식 사용

예시:

UserInfo
OrderService

오늘은 자바의 기본 구조와 실행 흐름에 대해 처음 공부했는데,
특히 JVM과 바이트코드 개념이 자바의 핵심 특징이라는 걸 알게 되었다 😊