[Java] 자바란?

숭맹이·2025년 4월 24일
0

김영한님의 자바 입문 - 코드로 시작하는 자바 첫걸음 정리

자바는 왜 "표준 스펙과 구현체"로 나눠질까?

자바는 단일한 구현체가 아닌, 표준 스펙(Java Specification)과 이를 따르는 다양한 구현체(Java Implementation)의 구조를 가지고 있습니다.

  • 표준 스펙 (JCP에 의해 관리)

    • 자바 언어가 어떤 구조로 만들어져야 하는지 정의한 설계도
    • 예: 컴파일러 동작 방식, JVM 구조, 필수 라이브러리 명세 등
  • 구현체

    • 다양한 회사들이 스펙을 기반으로 만든 실제 실행 가능한 자바 플랫폼
    • 대표적인 구현체:
      • Oracle OpenJDK
      • Amazon Corretto (AWS에 최적화)
      • Eclipse Temurin (Adoptium)

스펙이 일관되기 때문에 구현체 간 호환성이 매우 높습니다. 실무에서 특정 구현체를 바꿔도 대부분 문제가 발생하지 않죠.


자바의 컴파일과 실행 구조

자바의 실행 과정은 다음 두 단계로 나뉩니다:

  1. 컴파일 (javac)

    • .java.class (바이트코드)
    • 문법 오류 검출 및 바이트코드 최적화 수행
  2. 실행 (java)

    • JVM이 .class 파일을 읽고 실행
    • 이 과정에서 플랫폼에 맞는 JVM이 역할을 수행

실무에서는 이 구조를 잘 이해하고 있어야 디버깅, 성능 튜닝, 배포 전략 설계에서 실수를 줄일 수 있습니다.


IntelliJ IDEA에서 자바는 어떻게 다를까?

현대 개발자에게는 IDE가 곧 생산성입니다. 특히 IntelliJ IDEA는 자바 개발에서 필수적인 도구 중 하나입니다.

  • 자바 SDK 설치 자동화
  • javac, java 실행 자동화
  • 컴파일 결과는 out/ 폴더에서 확인 가능
  • 디컴파일 기능 제공 (단, 주석 등은 복원되지 않음)

초보자뿐만 아니라, 프로젝트 설정이 복잡한 엔터프라이즈 환경에서도 매우 유용합니다.


운영체제 독립성: 자바의 가장 큰 강점 중 하나

자바 프로그램은 어떤 운영체제에서도 실행될 수 있습니다. 이유는 JVM이 각 OS에 맞는 실행 환경을 제공하기 때문이죠.

  • .class 파일은 OS에 구애받지 않음
  • Windows, macOS, Linux에 맞는 JVM만 있으면 실행 가능
  • 예: 개발은 macOS, 배포는 AWS 리눅스 서버 (Amazon Corretto)

이러한 구조 덕분에 "Write Once, Run Anywhere"라는 자바의 철학이 실현될 수 있었습니다.


실무에서의 적용 시나리오

✅ 실무 TIP: 운영환경은 대부분 리눅스입니다. 따라서 로컬에서는 Windows나 macOS를 쓰더라도, 서버 환경과 동일한 JDK 버전과 구현체를 맞춰주는 게 좋습니다.

# 개발: macOS + Eclipse Temurin
# 운영: AWS EC2 + Amazon Corretto
  • 개발 중에는 로컬에서 빠른 실행과 디버깅
  • 배포 시에는 운영환경(JVM 최적화된 리눅스)으로 전환
profile
👨🏻‍💻 Backend Developer

0개의 댓글