자바란 무엇인가 - 1일차

은채의 성장통·2025년 5월 27일

KCC정보통신

목록 보기
1/30
post-thumbnail

Notion kcc정리 링크

☕ 자바 실행 환경과 JDK 개념 정리

✅ 자바 설치는 어디서?

  • Adoptium (https://adoptium.net/)에서 Eclipse에서 배포하는 JDK 다운로드 가능
  • Adoptium JDK는 호환성이 뛰어나며 안정적인 선택
  • 현재 가장 많이 사용되는 버전은 Java 11, 그다음은 Java 8
  • 최신 버전인 Java 21도 점점 사용 증가 중

📌 Tip: Java 21을 설치해도, 컴파일 시 옵션(--release)을 설정하여 8이나 11로 하위 호환 컴파일 가능


🔧 자바 실행에는 뭐가 필요할까?

자바는 "혼자서 실행이 불가능"한 언어입니다.

즉, 실행 환경(runtime environment)이 반드시 필요합니다.

자바의 실행 구성 요소를 기차 시스템에 비유해 볼게요:

구성 요소설명비유
JVM (Java Virtual Machine)바이트코드(.class)를 실행기차 선로 위를 달리는 엔진
API (Java Standard API)자주 쓰는 기능(입출력, 컬렉션 등) 묶음기차 객차에 실린 도구들
JRE (JVM + API)자바 프로그램 실행 환경운행 준비된 기차 한 대
JDK (JRE + javac + java 등)자바 개발 환경 (컴파일, 실행 포함)기차를 만드는 공장까지 포함된 전체 세트

📦 자바의 핵심 특징

  1. 플랫폼 독립성 (WORA: Write Once, Run Anywhere)

    • 한 번 작성한 자바 프로그램은 윈도우, 리눅스, 맥 등 다양한 운영체제에서 동일하게 실행 가능
    • 핵심 비결은 JVM: OS별로 다른 JVM이 같은 바이트코드를 실행함

    🎭 예시:

    마치 모든 나라에서 자국 언어로 번역해주는 통역사(JVM)가 있다면,

    우리는 공통 언어(바이트코드)로 말만 하면 어디서든 대화가 가능함

  2. 동적 메모리 할당

    • 실행 중에 필요한 만큼 메모리를 할당하고 해제함
    • 유연하고 효율적이지만, 실행 중 성능 저하가 발생할 수도 있음

    💡 비유:

    마치 사람 수에 맞춰 식탁에 의자를 하나씩 가져다 놓는 식당처럼,

    처음부터 모든 자원을 할당하지 않고 필요할 때만 쓰는 구조

  3. 보안성

    • 자바는 컴파일 시실행 시 두 번에 걸쳐 코드 안전성을 검증함
    • JVM은 메모리를 직접 건드릴 수 없도록 관리함 → 보안에 강함

🧾 자바는 컴파일도 하고, 인터프리팅도 한다?

  • 자바는 일반적인 인터프리터 언어와 다르게, 먼저 컴파일을 하고그 후 인터프리팅하는 방식
  • .javajavac.class (바이트코드) → JVM이 실행
  • 이런 혼합 방식 덕분에 자바는 성능과 보안, 플랫폼 독립성을 모두 챙김

🎯 요약:

자바는 .class라는 공통 언어로 말하고, 각 JVM이 해당 운영체제에 맞게 실행시켜주는 다국어 통역기 기반 실행 방식


🧩 클래스 파일 포맷 버전이란?

  • 자바는 버전별로 클래스 파일 포맷(버전 정보)이 다름
  • 예: Java 21에서 컴파일한 .class 파일은 Java 8 환경에서 실행 불가 → 포맷 버전이 맞지 않음
  • 실행 환경의 JVM은 자신이 이해할 수 있는 클래스 파일만 실행할 수 있음

⚠️ 개발 환경(JDK 버전)실행 환경(JRE 버전)이 달라 생기는 대표적인 에러:

"Unsupported major.minor version" 또는 "class file version X.Y is not supported"


🎁 요약

용어설명
JDK개발 도구 (컴파일러 + 실행기 포함)
JRE실행만을 위한 환경 (JVM + API)
JVM바이트코드를 실제로 실행하는 가상 머신
API자바 표준 라이브러리 집합
클래스 포맷 버전JVM이 이해할 수 있는 .class 파일의 버전 정보
자바의 특징플랫폼 독립성, 동적 할당, 보안, 컴파일+인터프리팅 방식

☕ 자바 개발 환경 이해하기: JDK, 환경변수, 프로젝트 생성


✅ Java와 JDK는 다르다!

구분설명비유
Java자바라는 프로그래밍 언어 자체요리의 레시피
JDK (Java Development Kit)자바를 개발하기 위한 도구 모음 (JRE + 컴파일러 등 포함)요리하기 위한 주방 + 조리도구 세트

🔑 정리:

자바(JAVA)는 언어고,

JDK는 그 언어를 작성하고, 컴파일하고, 실행할 수 있는 툴킷이다.

자바를 배우는 것과 JDK를 설치하는 것은 다르다!


🔧 환경변수: 자바가 “어디에 있는지” 알려주는 지도

1. JAVA_HOME

  • JDK가 설치된 경로를 나타내는 환경변수
  • 다른 툴(예: Maven, Gradle 등)이 자바를 사용할 수 있게 도와줌

📌 예시:

JAVA_HOME = C:\Program Files\Java\jdk-21

2. Path 환경변수

  • javac, java 같은 명령어를 터미널(PowerShell)에서 실행할 수 있게 설정
  • JDK의 /bin 디렉토리를 등록해야 함

📌 예시:

Path = %JAVA_HOME%\bin

🧭 비유:

  • JAVA_HOME은 JDK가 설치된 건물 주소
  • Path는 그 주소 안에 있는 비상 출입문을 터미널이 바로 열 수 있게 등록하는 것

🛠 RC (Run Configuration)이란?

RC는 Run Configuration의 약자로, Eclipse나 IntelliJ 같은 IDE에서 프로젝트를 실행하는 방법을 설정하는 기능입니다.

RC에서 설정하는 항목들:

  • 어떤 파일을 실행할지
  • 어떤 JVM을 사용할지
  • 인자(arguments)나 환경 변수 설정

🧪 비유:

RC는 마치 요리 레시피를 실행할 때 어떤 조리도구와 재료를 쓸지 정리한 실행 순서표 같음


💻 자바 프로젝트 만들기 (in Eclipse 기준)

▶️ 새 프로젝트 생성 절차:

  1. FileNewJava Project
  2. 프로젝트 이름 입력
  3. JDK 버전 선택 (보통 Workspace default JRE 사용)
  4. [Finish] 클릭

▶️ 클래스 파일 생성:

  1. src 폴더 우클릭 → NewClass
  2. 클래스 이름 입력 (예: Main)
  3. public static void main(String[] args) 체크박스 활성화 → 메인 클래스일떄
  4. [Finish] 클릭

▶️ 실행:

  • 클래스에서 우클릭 → Run AsJava Application
  • 단축키 ⇒ Ctrl + F11

❗ 오류 발생: “빌드 패스 오류 - API 버전 잘못 지정”

⚠️ 발생 상황:

  • 자바 프로젝트를 만들거나 불러올 때
  • Project → Properties → Java Build Path 설정에서 존재하지 않는 JDK/JRE 버전이 설정되어 있음
  • 해당 버전이 내 컴퓨터에 설치되어 있지 않은 경우

🧭 비유로 이해하기:

📦 비유: "없는 공구를 쓰려고 하는 목수"

당신이 목공 작업을 하려고 프로젝트를 열었는데,

작업 도구로 '전기톱 11번 모델'을 쓰겠다고 설정돼 있었어요.

그런데 그 전기톱은 당신의 공방에 존재하지 않아요.

따라서 프로젝트는 "전기톱이 없어서 작업을 못 한다"고 말하며 오류를 냅니다.

이때 이 "전기톱"이 바로 JDK/JRE 버전,

"작업 도구 설정"은 Build Path 설정,

"작업을 못 한다"는 것은 컴파일/실행 오류 발생입니다.


🛠 근본 원인

원인설명
❌ 지정된 JDK/JRE가 설치되어 있지 않음예: Java 17이 Build Path에 등록돼 있지만, 실제로는 Java 17이 설치되어 있지 않음
❌ 프로젝트 설정이 잘못된 위치를 참조경로가 깨진 외부 JRE나 잘못된 라이브러리 설정 등
❌ 다른 컴퓨터에서 프로젝트 가져왔을 때예전 설정이 남아 있음 (예: .classpath, .project 파일)

✅ 해결 방법

1. 설치된 JDK/JRE 확인

  • Eclipse: Window → Preferences → Java → Installed JREs
  • 거기에서 실제로 설치된 JRE 목록을 확인하고,
  • 프로젝트에 설정된 JRE가 거기 있는지 체크

2. 프로젝트에 올바른 JRE 다시 지정

  • Project → Properties → Java Build Path → Libraries
  • 잘못된 JRE를 제거하고,
  • Add Library → JRE System LibraryWorkspace default JRE 선택
    • 또는 Installed JREs에서 직접 선택

나의 후기

  • KCC1일차라서 사실 별다르게 크게 한게 없지만 자바라는 언어를 본격적으로 들어가기전의 전초전이라는 마음으로 들어갔다. 파이썬과 c를 학습을 했으나 중국어 잘한다고 스페인어 잘하나... 부족한 부분도 많고 아직 노력해야할점이 많아서 걱정도 되지만 강사님의 커리큘럼에 뒤쳐지지 않고 잘 따라가면 될듯한 믿음을 갖게 되어서 다행이라고 생각하고 있다 아마 내일부터 본격적인 학습이 시작될텐데.. ㅎㅇㅌ
profile
인생 별거 없어

0개의 댓글