자바 프로그래밍 언어 / 소프트웨어를 개발을 위한 범용 프로그래밍 언어
자바( Java )는 웹 서비스, 기업용 업무 시스템, 데스크톱 프로그램 등 다양한 소프트웨어를 개발하는 데 사용되는 범용 프로그래밍 언어이다.
객체지향 프로그래밍( OOP )을 지원하고, 작성한 소스 코드를 바이트코드로 컴파일한 후 JVM(Java Virtual Machine)을 통해 실행한다.
자바의 독특한 구조는 운영체제가 달라도 호환되고, 실행된다.
자바의 JVM 환경이 있다면 운영체제가 다르더라도 동일한 코드의 바이트코드를 사용할 수 있다.
![]() |
| 자바 프로그래밍 언어 소프트웨어를 개발을 위한 범용 프로그래밍 언어 |
Java란 범용 프로그래밍 언어
자바( Java )는 컴퓨터 프로그램을 작성할 때 사용하는 범용 프로그래밍 언어( General-Purpose Programming Language )이다.
프로그래밍 언어는
사람이 컴퓨터에 수행할 작업을 명령하기 위해 사용하는 코드 언어이다.
사용자가 입력한 숫자를 계산하거나, 회원 정보를 저장하거나, 웹 서버에서 요청을 처리하는 프로그램을 작성할 수 있다.
Java는 클래스와 객체를 중심으로 프로그램을 구성하는 객체지향 프로그래밍( OOP )을 지원하며, 정적 타입 시스템을 갖추고 있다.
Java 기술은 두 가지가 있다.
- Java 프로그래밍 언어
- 프로그램의 명령과 처리 과정을 작성하는 언어
- Java 플랫폼
- JVM를 사용해 Java 프로그램의 실행을 지원
Java는 1995년 Sun Microsystems에서 공식 발표되었으며, 이후 Oracle이 Sun Microsystems를 인수하였다.
2026년 10월 현재까지도 Java는 지속적으로 새로운 버전이 발표되고 있다.
![]() |
| Java란 범용 프로그래밍 언어 |
Java 프로그램의 동작 실행
자바 프로그램은
작성한 소스 코드를 컴파일하여 바이트코드(Bytecode)를 생성한 후 실행한다.
바이트코드란 JVM이 실행할 수 있도록 정의된 중간 명령어 형식이다.
일반적인 Java 프로그램의 실행 과정은 다음과 같다.
- 소스 코드 작성
- Java 문법을 사용하여 .java 파일을 작성
- 컴파일
- javac 컴파일을 사용해 소스 코드를 검사하고 바이트코드를 생성
- 생성된 바이트코드는 클래스 .class 형태로 생성
- JVM 실행
- JVM은 바이트코드를 읽고 프로그램을 실행
- JVM 구현에 따라 인터프리터와 JIT(Just-In-Time) 컴파일 등의 기술이 사용
- 프로그램 결과 출력
- 작성된 명령에 따라 계산, 파일 처리, 화면 출력 등의 작업이 수행
위의 과정을 간단히 표현해 보면 다음과 같을 것이다.
- Java 소스 코드
- Hello.java
- Java 컴파일러 (javac)
- Hello.class
- JVM (Java Virtual Machine)
- 프로그램 실행
Java가 가진 중요한 특징 중 하나는
운영체제에 직접 종속되지 않는 바이트코드를 활용한다는 점이며,
JVM이 설치된 운영체제라면 자바로 만들어진 바이트코드는 모두 실행이 가능하다.
쉽게 말하면,
JVM이 설치된 윈도우즈와 리눅스 운영체제가 있다면,
컴파일한 Java 바이트코드를 모두 실행할 수 있다.
![]() |
| Java 프로그램의 동작 실행 |
Java 언어의 특징
자바는 객체지향 프로그래밍, 정적 타입 시스템, 메모리 자동 관리, 멀티스레딩 등을 지원한다.
단어만 보니 어렵고, 이론은 지겹다. ㅋ
객체지향 프로그래밍
객체지향 프로그래밍( Object-Oriented Programming )은 데이터와 동작을 객체 단위로 구성하는 프로그래밍 방식이다.
자동차 관리 프로그램을 만든다고 가정해 보자.
자동차의 이름, 속도, 주행 상태 등의 데이터를 하나의 객체로 관리하고,
가속이나 정지 등의 동작을 메서드로 정의할 수 있다.
자바는 클래스( Class )를 정의하고, 객체(Object)를 생성하여 사용한다.
정적 타입 시스템
자바는 정적 타입 언어이다.
변수와 표현식의 타입이 컴파일 시점에 결정되므로,
타입에 맞지 않는 일부 연산이나 값의 대입과 같은 에러 처리 등은 컴파일 단계에서 발견된다.
정수를 저장하도록 선언한 변수에 문자열을 직접 대입하면 컴파일 오류가 발생한다.
가비지 컬렉션
자바는 가비지 컬렉션( Garbage Collection )을 통한 자동 메모리 관리를 지원한다.
프로그램에서 더 이상 사용하지 않는 객체의 메모리를 JVM이 회수하여, 사용할 수 있는 객체 메모리의 가용 공간을 자동으로 확보한다.
개발자가 모든 객체의 메모리를 직접 해제할 필요가 없다는 장점이 있다.
하지만, 모든 메모리 문제를 자동으로 해결하는 것은 아니며,
파일이나 네트워크 연결 등 일부 자원은 별도로 관리해야 한다.
멀티스레딩
Java는 여러 작업의 실행 흐름을 다루는 멀티스레딩( Multithreading )을 지원한다.
멀티스레딩을 사용하면,
네트워크 통신, 파일 처리, 요청 처리 등의 작업을 동시에 병행 작업할 수 있는 프로그램을 구성할 수 있다.
표준 라이브러리
자바는 문자열, 컬렉션, 날짜와 시간, 파일, 네트워크 등 여러 기능을 제공하는 표준 라이브러리를 갖추고 있다.
기본적으로 제공되는 기능을 사용하거나 또는 필요한 기능을 직접 구현하지 않고 제공되는 API를 활용하여 자바 프로그램 코드 작성이 가능하다.
![]() |
| Java 언어의 특징 |
자바의 사용
자바( Java )는 특정 분야에서만 사용하는 언어가 아닌 개인 웹 서버부터 기업용 시스템, 데스크톱 프로그램까지 다양한 애플리케이션을 개발할 수 있는 개발언어이다.
웹 애플리케이션과 백엔드 서버
자바는 웹사이트와 웹 애플리케이션의 서버 측 기능을 구현할 수 있다.
대표적인으로 다음과 같을 것이며, 자바 언어를 배우는 사람이라면 한번쯤 해본 적이 있는 것들이다.
- 회원가입과 로그인 처리
- 상품과 주문 정보 관리
- 데이터베이스 조회 및 저장
- REST API 개발
- 웹 서비스의 업무 규칙 처리
자바 기반 웹 애플리케이션 개발에는 스프링 프레임워크( Spring Framework, 현재 레거시 )와 스프링부트( Spring Boot ) 등의 프레임워크, 전자정부프레임워크 등을 사용할 수 있다.
스프링부트는 자바 기반의 독립 실행형 서버 애플리케이션을 개발할 수 있다.
기업용 업무 시스템
기업에서는 회계, 인사, 재고, 주문 관리 등의 업무를 처리하는 프로그램이 필요할 수 있다.
자바는 기업의 업무 시스템을 위한 서버 애플리케이션과 데이터 처리 기능을 데이터베이스 연결, 트랜잭션 처리, 외부 시스템 연동 등의 기능을 사용해 필요한 기업용 프로그램을 만들 수 있다.
안드로이드 애플리케이션
자바는 안드로이드( Android ) 애플리케이션 개발에서도 지원된다.
다만, 안드로이드는 일반적인 데스크톱 Java SE 환경과 실행 구조가 다르다.
구글( Google )은 현대적인 안드로이드 애플리케이션 개발에 Kotlin 사용을 권장하며, Jetpack Compose와 같은 일부 최신 개발 도구를 사용할 경우 Kotlin을 요구한다.
데스크톱 애플리케이션
자바는 윈도우즈, 리눅스, 맥OS 등의 운영체제에서 실행할 수 있는 데스크톱 애플리케이션 개발에도 활용된다.
대표적인 UI 기술로 Swing과 JavaFX가 있다.
Swing은 Java 표준 데스크톱 UI 기술 중 하나이며, JavaFX는 별도의 구성 요소를 통해 사용할 수 있는 UI 기술이다.
배치 및 데이터 처리 프로그램
자바는 정해진 작업을 자동으로 수행하는 배치(Batch) 프로그램 제작에도 사용된다.
일정 시간마다 데이터베이스의 정보를 집계하거나, 파일을 변환하거나, 보고서용 데이터를 생성하는 프로그램을 만들 수 있다.
![]() |
| 자바의 사용 |
JVM, JDK, JRE의 차이
자바를 사용하기 위해 JVM, JDK, JRE를 알 필요가 있다.
JVM, JDK, JRE 는 자바 실행 또는 자바 개발 환경과 관련된 기술이다.
하지만 각각의 역할이 서로 다르며, 간단히 구분하면 다음과 같다.
- JVM
- Java Virtual Machine
- Java 바이트코드( .class 파일 ) 실행
- JRE
- Java Runtime Environment
- Java 프로그램 실행 환경
- JDK
- Java Development Kit
- Java 프로그램 개발 도구 모음
JVM / Java Virtual Machine
JVM은 Java Virtual Machine의 약자로, Java 바이트코드( .class )를 실행하는 가상 머신이다.
JRE / Java Runtime Environment
JRE는 Java Runtime Environment의 약자로,
JVM과 실행에 필요한 라이브러리 등을 포함한 Java 실행 환경을 의미한다.
JDK / Java Development Kit
JDK는 Java Development Kit의 약자이며,
자바 프로그램을 개발하는 데 필요한 컴파일러와 여러 개발 도구, 실행에 필요한 구성 요소를 포함한다.
- javac
- Java 소스 코드를 컴파일
- java
- Java 프로그램을 실행
- javadoc
- Java 소스 코드의 문서 주석을 바탕으로 API 문서를 생성
- jar
- Java 클래스와 리소스를 JAR 파일로 묶음
![]() |
| JVM, JDK, JRE의 차이 |
자바와 자바스크립트
자바( Java )와 자바스크립트( JavaScript )는 이름이 비슷하고, 서로 같은 것이라 생각하는 분들도 있지만, 엄연히 서로 다른 프로그래밍 언어이다.
문법과 실행 환경, 사용되는 기술 체계가 전혀 다르기 때문에 동일한 언어로 볼 수 없다.
- 자바
- 범용 프로그래밍 언어
- 정적 타입
- JVM
- 서버, 기업용 시스템, 데스크톱
- .java
- 자바스크립트
- 범용 스크립트 언어
- 동적 타입
- 웹 브라우저, Node.js 등
- 웹 화면, 웹 서버 등
- .js
자바스크립트는 웹 브라우저에서 사용자 인터페이스의 동작을 구현하는 데 사용되며, Node.js와 같은 실행 환경에서는 서버 프로그램을 개발할 수 있다.
![]() |
| 자바와 자바스크립트 |
자바의 장점과 고려할 점
Java는 JVM이 설치된 운영체제라면 모두 실행할 수 있는 소프트웨어이다.
객체지향 프로그래밍과 정적 타입 시스템을 지원하며, 표준 라이브러리 등의 필요한 개발 도구를 활용할 수 있다.
원소스-멀티유즈( 1 Source Multi Use )가 가능하긴 하지만, 모든 종류의 프로그램에서 Java가 가장 적합하진 않다.
Java 프로그램은 JVM과 실행 환경이 필요하며,
애플리케이션의 특성에 따라 메모리 사용량이나 시작 시간이 중요한 고려 사항이 될 수 있다.
사용하는 프레임워크나 라이브러리, 배포 대상 플랫폼에 따라 환경 설정과 호환성 확인이 필요하다.
Java 사용 여부는 개발하려는 프로그램의 목적, 실행 환경, 성능 요구사항 및 유지보수 조건을 기준으로 판단할 필요가 있다.
쉽게 표현하면, 버전에 민감할 수 있으며, 극단적인 경우 하위 버전의 자바 코드가 상위 버전의 자바 코드에서 컴파일이 되지 않거나, 실행되지 않는 경우들도 간혹 발생한다.
![]() |
| 자바의 장점과 고려할 점 |
Java 개발 필요한 것
Java 프로그램을 작성하고 실행하려면 기본적으로 JDK와 코드 편집 환경이 필요하다.
JDK는 자바 개발에 필요한 라이브러리, 컴파일 등의 개발 도구를 제공하고, 코드편집기와 IDE는 자바 코드를 작성할 수 있도록 한다.
- JDK / Java Development Kit
- 코드편집기 또는 IDE
JDK 설치
JDK는 Java 소스 코드를 컴파일하고 실행하는 데 필요한 개발 도구이다.
현재 시점( 2026년 10월 28일 기준 )
Oracle이 공개한 최신 Java SE 버전은
Java 27이며,
최신 장기 지원(LTS) 버전은 Java 25이다.
LTS는 Long-Term Support의 약자로 장기 지원을 뜻한다.
하지만, 실제 업데이트 및 지원 조건은 배포판과 공급업체에 따라 달라질 수 있다.
( 그놈의 오픈 자바 )
실무 프로젝트에서는 프레임워크 및 외부 라이브러리의 호환성을 고려하여 JDK 버전을 선택하고 통일하는 것이 좋다.
( 가장 좋은 것은 가장 많은 것을 사용하는 것이 좋다. )
코드 편집기 또는 IDE 설치
Java 프로그램은 일반적인 텍스트 편집기로도 작성할 수 있지만, 불편함이 커진다.
코드 자동 완성, 오류 확인, 실행 및 디버깅 기능을 사용하려면 편한 개발 도구를 활용하는 것이 편리하다.
대표적인 Java 개발 도구는 다음과 같다.
- VSCode( Visual Studio Code, 비주얼스튜디오코드 )
- 인텔리제이 IDEA( IntelliJ IDEA )
- 이클립스 IDE( Eclipse IDE )
가장 많이 사용하는 것은 인텔리제이, VSCode 정도이다.
VSCode는 마이크로소프트( Microsoft )가 제공하며,
Extension Pack for Java 등을 설치한 후
Java 개발 기능을 사용할 수 있다.
조금 더 확장한 기능과 편의성이 필요하다면 인텔리제이 IDE를 사용하는 것도 방법이다.
Java 설치 확인
JDK를 설치한 후 터미널에서 다음 명령을 실행한다.
- java -version
위의 명령으로 현재 설치된 Java 런타임의 버전 정보를 확인할 수 있다.
컴파일러 버전은 다음 명령으로 확인한다.
- javac -version
![]() |
| Java 개발 필요한 것 |
Java 프로그램 코드 구조
자바( Java ) 프로그램은 일반적으로 클래스와 메서드를 사용하여 작성한다.
다음은 화면에 문자열을 출력하는 가장 기본적인 자바 코드이다.
/**
* Java_Sample 공개 클래스 선언
*/
public class Java_Sample {
/**
* 프로그램 시작 메서드
* 명령행 인수를 문자열 배열로 전달
*/
public static void main(String[] args) {
/**
* 화면에 문자열 표준 출력
*/
System.out.println("Say Hello Java! 자바자바잡");
}
}public static void main(String[] args)는 Java 프로그램의 시작 진입점이다.
컴파일 및 실행
JDK가 설치되어 있고 코드를 작성했다면 컴파일이 필요하다.
컴파일이 완료되면, 작성한 코드를 실행하여 화면에서 코드가 동작하는 것을 볼 수 있다.
javac 파일(클래스)명.java
또는
javac -encoding UTF-8 파일(클래스)명.java컴파일이 성공하면 파일명.class 파일이 생성되며, java 명령어를 사용하여 자바 코드를 실행할 수 있다.
java 파일(클래스)명실행 결과를 보면 다음과 같다.
![]() |
| 자바 코드 실행 |
![]() |
| Java 프로그램 코드 구조 |











댓글
댓글 쓰기