◎ JAVA 프로그램을 사용하는 이유?
JAVA 프로그램을 사용해야 하는 주요 이유는 플랫폼 독립성, 객체 지향 특성, 그리고 강력하고 안정적인 엔터프라이즈 환경 지원 때문입니다.
🚀 주요 사용 이유 및 장점
1. 플랫폼 독립성 (Write Once, Run Anywhere)
- Java의 가장 큰 장점 중 하나는 JVM(Java Virtual Machine)을 기반으로 동작하기 때문에 운영 체제(OS)에 독립적이라는 것입니다.
- "한 번 작성하면 어디서든 실행된다(WORA: Write Once, Run Anywhere)"는 철학을 실현합니다. 즉, Windows에서 작성한 Java 코드는 별도의 수정 없이 Linux, macOS 등 JVM이 설치된 모든 환경에서 실행될 수 있습니다.
2. 강력한 객체 지향 언어 (Object-Oriented)
- Java는 객체 지향 프로그래밍(OOP)의 원칙(캡슐화, 상속, 다형성 등)을 완벽하게 지원합니다.
- 이는 모듈식 프로그램 개발과 코드의 재사용성 및 유지 보수성을 높여 대규모 소프트웨어 프로젝트에 매우 적합하게 만듭니다.
3. 안정성과 보안
- Java는 포인터(Pointer)를 사용하지 않아 메모리 직접 접근으로 인한 오류나 보안 문제를 줄입니다.
- Garbage Collector(가비지 컬렉터)가 있어 개발자가 수동으로 메모리 관리를 할 필요가 없어 메모리 누수와 같은 문제를 방지하고 개발자가 비즈니스 로직에 더 집중할 수 있게 합니다.
4. 풍부한 생태계와 커뮤니티
- 오랜 기간 동안 사용되어 온 언어인 만큼, 활발한 개발자 커뮤니티와 방대한 오픈 소스 라이브러리 및 프레임워크 (예: Spring, Spring Boot)가 존재합니다.
- 이러한 풍부한 생태계는 개발 시간을 단축하고, 발생 가능한 문제를 해결하는 데 큰 도움이 됩니다.
🎯 주요 활용 분야
Java는 다음과 같은 분야에서 광범위하게 사용됩니다.
- 엔터프라이즈(기업용) 애플리케이션: 은행, 금융 시스템, 대규모 비즈니스 시스템 등 안정성과 확장성이 중요한 분야에서 널리 사용됩니다.
- Android 모바일 앱 개발: Android 운영 체제의 공식 개발 언어 중 하나였습니다 (현재는 Kotlin도 널리 사용됨).
- 웹 애플리케이션 백엔드: Spring, Spring Boot 등의 프레임워크를 이용한 서버 측 개발에서 핵심적인 역할을 합니다.
- 빅데이터 기술: Apache Hadoop, Apache Spark 등 많은 빅데이터 기술이 Java 기반으로 작성되었거나 Java를 지원합니다.
◎ JAVA 프로그램 동작 순서
• 소스 코드와 언어의 정의
소프트웨어 개발에서 '소스'는 원천을 의미하며, '코드'는 부호나 기호를 뜻합니다. '소스 코드'는 사람이 이해할 수 있는 형태로 작성된 컴퓨터 프로그램의 원본을 말합니다. '언어'는 이러한 소스 코드를 작성하기 위한 약속된 규칙이나 문법 체계를 의미하며, '소스 코드 랭귀지'는 이러한 관점들을 종합하여 같은 대상을 지칭하는 표현입니다.
• 애플리케이션과 프로그램의 개념
소스 코드를 통해 만들어진 결과물을 '애플리케이션'(또는 '앱') 또는 '프로그램'이라고 부릅니다. 이 두 용어는 같은 대상을 지칭하지만, 바라보는 관점이나 맥락에 따라 다르게 사용될 수 있으며, 결국 소스 코드를 언어로 작성하여 컴퓨터에게 원하는 작업을 시키는 과정을 통해 만들어집니다.
• 자바 애플리케이션 실행 과정
자바 애플리케이션 실행을 위해서는 컴퓨터에 자바 가상 머신(JVM)이 설치되어 있어야 합니다. 개발자는 자바 언어 문법에 맞춰 작성한 소스 코드(.java 파일)를 컴파일 과정을 거쳐 기계가 이해할 수 있는 형태의 클래스 파일(.class 파일)로 변환합니다. 이후 JVM은 이 클래스 파일을 읽어 컴퓨터가 해당 명령을 수행하도록 합니다.
◎ 소스 코드(.java 파일) 컴파일
컴파일은 *자바 컴파일러(javac)**라는 별도의 도구에 의해 수행됩니다.
1. 🔍 컴파일을 수행하는 주체
자바 컴파일은 **JDK (Java Development Kit)**에 포함되어 있는 **자바 컴파일러 (javac)**가 수행합니다.
- 컴파일러 (javac): 개발자가 작성한 자바 소스 코드(.java 파일)를 JVM이 이해할 수 있는 바이트 코드(.class 파일)로 변환하는 역할을 합니다.
- JDK (Java 개발 키트): 자바 개발을 위한 모든 도구(컴파일러, JVM, JRE, 디버거 등)를 포함하는 패키지입니다.
자바 개발 환경을 설정할 때 JDK를 설치하는 이유가 바로 이 컴파일러를 포함한 개발 도구들을 사용하기 위해서입니다.
2. 🚀 실행 주체: 자바 가상 머신 (JVM)
JVM은 변환된 바이트 코드(.class 파일)를 실제로 읽어서 메모리에 로드하고, 운영체제가 이해할 수 있는 기계어로 바꾸어 명령을 수행하게 만듭니다.
Java 프로그램 실행 과정 (JDK + JVM)
1. 소스 코드 작성
┌────────────────────┐
│ Hello.java │
│ (.java 파일) │
└────────────────────┘
↓
javac (Java Compiler)
↓
2. 컴파일 → 바이트 코드 생성
┌────────────────────┐
│ Hello.class │
│ (바이트 코드) │
└────────────────────┘
↓
java (JVM 실행)
3. JVM이 .class 파일을 메모리에 로드
┌───────────────── ── ───────── ─ ───────┐
│ JVM │
│ ┌──────────────┐ ┌─────────────────┐ │
│ │ Class Loader │ → │ Bytecode │ │
│ │ (로드 & 검증) │ │ Verifier │ │
│ └──────────────┘ └─────────────────┘ │
│ ↓ │
│ ┌───────────────────────── ── ────┐ │
│ │ Execution Engine │ │
│ │ ├─ Interpreter │ │
│ │ └─ JIT Compiler │ │
│ │ ↓ │ │
│ │ 네이티브 기계어 실행 │ │
│ └────────────────────── ─ ─ ──────┘ │
└──────────────────────────── ─ ─ ──────┘
↓
4. 운영체제 & 하드웨어에서 실행
┌────────────────────┐
│ CPU + OS │
└────────────────────┘
💻 VS CODE와 컴파일
VS CODE는 소스 코드를 작성하고 관리하기 위한 편집기(Editor) 역할만 할 뿐, 컴파일 기능을 내장하고 있지는 않습니다.
다만, VS CODE에서 자바 코드를 실행할 때 컴파일이 자동으로 수행되는 이유는 다음과 같습니다.
- 확장 기능(Extension)의 도움: VS CODE에 설치하는 **Java 확장팩(Extension Pack for Java)**과 같은 도구들이 내부적으로 **JDK의 컴파일러(javac)**를 호출하여 컴파일을 수행하고, 그 결과를 JVM으로 실행하도록 명령합니다.
- 자동화: 사용자가 직접 명령어를 입력하는 대신, IDE(통합 개발 환경)나 VS CODE의 확장 기능이 빌드/실행 과정을 자동화하여 편리하게 만들어 주는 것입니다.
요약하자면, 컴파일러는 JDK에 있고, VS CODE는 그 컴파일러를 편리하게 불러서 쓰는 환경을 제공하는 것이라고 이해하시면 됩니다.

위 "Java SE Development Kit 25.0.1"은 JDK의 구체적인 버전 이름입니다. 즉, JDK의 한 종류를 나타내는 이름입니다.쉽게 말해, '자동차'와 '현대 아반떼 2025년형'의 관계와 같습니다.
Java SE Development Kit 25.0.1의 의미
Java SE: 이 개발 키트가 표준 에디션(SE) 사양을 구현했음을 나타냅니다.
1) Development Kit (DK): JDK와 동의어이며, 이 패키지가 개발자용 도구를 포함하고 있음을 의미합니다.
2) 25.0.1: 해당 JDK의 버전 번호입니다.
3) 25: 주 버전 (Major Version)
4) 0: 개선 버전 (Minor Version)
5) 1: 업데이트/패치 버전 (Update Version)
따라서, "Java SE Development Kit 25.0.1"은 Java SE 25 표준에 맞춰 개발된 JDK(Java Development Kit)의
구체적인 25.0.1 버전을 지칭하는 이름입니다.
by korealionkk@gmail.com

'업무 자동화 > JAVA For Creo' 카테고리의 다른 글
| java 기초 #1 (0) | 2025.12.07 |
|---|---|
| Creo Sample Code 분석 (0) | 2025.11.23 |
| JAVA 개발 환경 설정 #2-2 (0) | 2025.11.23 |
| VScode & JAVA & Creo 개발 환경 설정 #1 작업중 (0) | 2025.11.23 |
| JAVA 개발 환경 설정 #2-1 (0) | 2025.11.23 |