본문 바로가기
  • You find inspiration to create your own path !
업무 자동화/JAVA For Creo

JAVA 개발 환경 설정 #1

by ToolBOX01 2025. 11. 22.
반응형

◎ 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  프로그램 동작 순서

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