[Java] 개요 및 환경세팅

이지연·2025년 12월 8일

자바 개요

프로그래밍 언어의 기본 개념

프로그래밍이란 간단히 말해 컴퓨터(CPU)에게 어떤 일을 시키기 위해 “프로그램 코드”를 작성하는 과정임.
즉, 우리가 쓰는 코드는 사람이 이해하기 쉬운 문자(소스코드)이고, 최종적으로 컴퓨터가 이해할 기계어(binary) 형태로 바뀌어야 함.


컴파일 언어 vs 인터프리터 언어

  • 컴파일 언어 (예: C언어)
    소스코드를 한 번에 전체 변환(컴파일) 해서 실행 파일(기계어로 된 결과물)을 만들어 둠.
    → 그래서 실행 속도가 빠름.
    → 대신 코드가 변경되면 다시 컴파일해서 서버에 올려야 함.

    예를 들어 C언어는 코드를 운영 서버에 올릴 땐 이미 “컴파일된 기계어” 형태로 배포함.
    문제가 생기면 소스 코드를 다시 컴파일해서 결과물을 재배포해야 함.

  • 인터프리터 언어 (예: 파이썬)
    소스 코드를 서버에 올리고, 실행할 때 한 줄씩 즉석에서 번역(인터프리팅) 함.
    → 실행 속도는 느리지만, 수정이 빠르고 유연함.
    → 즉, 서버에서 바로 코드 수정 후 반영 가능.

백준 같은 온라인 저지에서도 C가 가장 빠른 이유는 실행 시 이미 컴파일된 결과를 실행하기 때문임.
요약하자면, C는 성능, 파이썬은 편의성 중심으로 구분됨.


자바(Java)는 둘의 ‘혼합형 언어’

자바는 컴파일 + 인터프리팅을 결합한 구조의 언어.
즉, “소스코드 → 컴파일(.class) → 인터프리팅(실행)” 과정을 모두 거침.

구체적인 실행 과정

  1. 개발자가 .java 파일을 작성함.
  2. 자바 컴파일러(javac.exe)가 해당 파일을 바이트코드(.class 파일) 로 변환함.
    • 이 바이트코드는 바로 기계어는 아니고, JVM이 이해할 수 있는 중간 언어임.
  3. 런타임 시점에 JVM(Java Virtual Machine) 이 이를 읽어 기계어로 해석(인터프리팅) 하거나,
    JIT(Just-In-Time) 컴파일러를 통해 실제 기계어로 변환함.

즉, 자바는 컴파일 타임과 런타임이 모두 존재하는 구조라고 보면 됨.

  • 컴파일 타임.class 파일이 생성되는 시점
  • 런타임 → JVM이 .class를 읽어 실제 실행하는 시점

💡 오류가 언제 발생했는지를 구분할 수 있어야 함

  • 컴파일 시점의 오류는 즉시 확인 가능해서 수정이 쉬움
  • 런타임 에러는 프로그램 실행 중 발생 → 예외처리 필요, 디버깅 어려움

자바의 특징

  • 탄생: 1991년 썬 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링이 개발 시작
  • 현재 상황: 국내에선 거의 표준 수준 언어 (대기업, 공공기관, 금융권 등 대부분 Java 기반)

장점

  • 운영체제에 독립적: “한 번 작성하면 어디서든 실행” (Write Once, Run Anywhere)
  • JVM 덕분에 Windows, macOS, Linux 어디서든 같은 코드로 동작함
  • 가비지 컬렉터(GC)가 메모리 자동 관리 → 개발 편의성 매우 높음
  • 자료가 풍부함 (국내 레퍼런스 압도적)

단점

  • C보단 실행속도 느림 (하지만 파이썬보다 훨씬 빠름)
  • 문법이 길고 코드가 장황한 편

JDK / JRE / JVM 개념 정리

구분주요 역할
JDK (Java Development Kit)자바 개발도구 전체 세트 (컴파일러, 디버거, JRE 포함)
JRE (Java Runtime Environment)실행환경(JVM + 기본 라이브러리 포함)
JVM (Java Virtual Machine)자바 바이트코드를 실행시키는 가상의 기계

즉, JDK ⊃ JRE ⊃ JVM 구조로 이해하면 됨.
개발할 땐 JDK가 필수.


자바 설치 및 환경 세팅

설치 버전

현재 많이 쓰는 버전은 8, 11, 17

  • Java 8 : 현대적 문법 도입 (Optional, Lambda 등)
  • Java 11 : 스프링(Spring) 호환성 높아서 여전히 실무 다수
  • Java 17 : 최신 표준, 스프링 부트 3.x 이상에서 권장됨

우리 실습은 Java 17로 진행!

Windows 설치 방법

  1. Java SE 17 다운로드 (Oracle 공식 사이트)
  2. C:\Program Files\Java\jdk-17\bin 경로를 시스템 환경 변수에 추가
  3. 명령 프롬프트에서 java --version 확인

  • C:\Program Files\Java\jdk-17\bin를 시스템 path에 추가

  • javac.exe → 컴파일러 (코드를 .class로 변환)
  • java.exe → 인터프리터 (바이트코드를 실행)

macOS 설치 방법

  • Intel 칩: x64 dmg 설치
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
    source ~/.bash_profile
    java --version
  • M1/M2 칩: arm64 dmg 설치

IntelliJ에서 설치

IDE(통합개발환경)를 쓰면 더 편함.

  • IntelliJ → New Project → add SDK → JDK 17 선택
  • 이후엔 File > Project Structure > Project SDK 에서 변경 가능

  • 빌드 시스템은 IntelliJ 내부의 기본 빌드로 진행하면 됨.
    (나중에 스프링 프로젝트 가면 Gradle이나 Maven 같은 빌드 툴을 쓰게 될 것)

정리 요약

구분특징
C언어컴파일 언어, 빠름, 수정 불편
Python인터프리터 언어, 느림, 수정 쉬움
Java중간형(컴파일 + 인터프리팅), JVM 기반, 범용성 높음
profile
Eazy하게

2개의 댓글

comment-user-thumbnail
2025년 12월 11일

기. 계. 어.
안. 녕. 하. 세 . 요.
저. 는. 이 . 지. 연 . 입 . 니. 다.
H.e.l.l.o.w.o.r.l.d

답글 달기
comment-user-thumbnail
2025년 12월 11일

칩? 저는 피쉬앤칩스요~
아. 하. 하.

답글 달기