본문 바로가기
IT/JAVA

Java란 무엇인가? – 개념과 특징

by ohukohoh 2025. 2. 18.
728x90
반응형

Java는 전 세계적으로 널리 사용되는 객체지향 프로그래밍(OOP) 언어로, 플랫폼 독립성과 강력한 보안성을 제공하는 특징을 가지고 있습니다. 1995년 Sun Microsystems(현재 Oracle)에서 개발했으며, 현재까지도 다양한 애플리케이션 개발에 사용되고 있습니다. 이 글에서는 Java의 개념과 주요 특징을 알아보겠습니다.


1. Java란?

Java의 정의

Java는 한 번 작성하면 어디서든 실행할 수 있는(WORA, Write Once, Run Anywhere) 특징을 가진 범용 프로그래밍 언어입니다. 이는 **JVM(Java Virtual Machine)**을 통해 다양한 운영체제에서 동일한 코드를 실행할 수 있기 때문입니다.

Java의 주요 용도

  • 웹 애플리케이션 개발: Spring, Spring Boot 등 프레임워크 활용
  • 모바일 앱 개발: Android 앱 개발에 사용
  • 데스크톱 애플리케이션 개발: GUI 기반 프로그램 제작
  • 데이터베이스 및 서버 프로그래밍: JDBC, Hibernate 등의 라이브러리 활용
  • 임베디드 시스템 및 사물인터넷(IoT) 개발

2. Java의 주요 특징

1) 플랫폼 독립성(Portable & Cross-Platform)

Java 프로그램은 운영체제(OS)와 관계없이 실행될 수 있습니다. 이는 JVM(Java Virtual Machine) 덕분에 가능하며, 개발자는 한 번 코드를 작성하면 여러 환경에서 실행할 수 있습니다.

🔹 Java 코드 → 바이트코드(Bytecode) 변환 → JVM이 OS에 맞게 실행

2) 객체지향 프로그래밍(OOP, Object-Oriented Programming)

Java는 **객체지향 프로그래밍(Object-Oriented Programming, OOP)**을 기반으로 설계되었습니다. 객체지향 개념을 활용하면 재사용성, 유지보수성, 확장성이 뛰어난 소프트웨어를 개발할 수 있습니다.

객체지향 프로그래밍의 핵심 개념:

  • 캡슐화(Encapsulation): 데이터와 메서드를 하나의 단위(클래스)로 보호
  • 상속(Inheritance): 기존 클래스의 기능을 확장하여 새로운 클래스 생성
  • 다형성(Polymorphism): 같은 메서드명이 다른 방식으로 동작 가능
  • 추상화(Abstraction): 불필요한 정보를 숨기고 핵심 기능만 노출

3) 메모리 관리 및 자동 가비지 컬렉션(Garbage Collection)

Java는 JVM이 자동으로 메모리를 관리하는 가비지 컬렉션(GC) 기능을 제공합니다. 개발자가 직접 메모리를 할당하고 해제해야 하는 C/C++과 달리, Java는 불필요한 객체를 자동으로 정리하여 메모리 누수를 방지합니다.

4) 강력한 보안(Security)

Java는 강력한 보안 기능을 제공하는 언어로, 다음과 같은 보안 기능을 내장하고 있습니다.

  • JVM의 샌드박스(Sandbox) 환경: 실행 중인 Java 프로그램이 OS의 중요한 리소스에 무단 접근하지 못하도록 제한
  • 바이트코드 검증(Bytecode Verification): 악성 코드 실행 방지
  • 암호화 및 보안 라이브러리 지원: SSL, TLS, 키스토어(KeyStore) 활용 가능

5) 멀티스레딩 지원(Multithreading)

Java는 기본적으로 **멀티스레딩(Multi-threading)**을 지원하여 여러 작업을 동시에 수행할 수 있습니다. 이는 웹 서버, 게임, 실시간 애플리케이션과 같은 성능이 중요한 프로그램에서 필수적인 기능입니다.

🔹 Thread 클래스 또는 Runnable 인터페이스를 활용하여 멀티스레드 구현 가능

6) 풍부한 라이브러리 및 프레임워크 지원

Java는 다양한 표준 라이브러리 및 오픈소스 프레임워크를 제공하여 개발을 더욱 편리하게 합니다.

  • 표준 라이브러리: java.util, java.io, java.net, java.sql
  • 웹 프레임워크: Spring, Spring Boot, Struts 등
  • 데이터베이스 라이브러리: JDBC, Hibernate, JPA
  • 테스트 프레임워크: JUnit, TestNG

3. Java 개발 환경 구축

Java로 프로그래밍을 시작하려면 **JDK(Java Development Kit)**을 설치해야 합니다.

Java 개발 환경 설정

  1. JDK(Java Development Kit) 다운로드 및 설치
    • Oracle JDK 또는 OpenJDK 설치
  2. 개발 도구(IDE) 설치
    • IntelliJ IDEA, Eclipse, VS Code(Java Extension Pack) 등
  3. Java 실행 테스트
    • javac (컴파일) 및 java (실행) 명령어를 사용하여 Java 프로그램 실행

🔹 javac HelloWorld.javajava HelloWorld


4. Java로 첫 번째 프로그램 작성하기

Java의 기본 문법을 이해하기 위해 간단한 Hello World 프로그램을 작성해 보겠습니다.

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, Java World!");
    }
}

코드 설명

  • public class HelloWorld → 클래스 선언
  • public static void main(String[] args) → 프로그램 실행 진입점(메인 메서드)
  • System.out.println("Hello, Java World!"); → 콘솔에 메시지 출력

실행 결과: Hello, Java World!


결론

Java는 플랫폼 독립성, 객체지향, 강력한 보안, 멀티스레딩 지원 등의 특징을 가진 강력한 프로그래밍 언어입니다. 다양한 산업 분야에서 사용되며, 웹 개발, 모바일 앱, 데이터베이스, 클라우드 컴퓨팅 등 폭넓게 활용됩니다. 앞으로 Java의 주요 개념과 활용 방법을 차근히 익혀 나가면서, 더 깊이 있는 프로그래밍 지식을 쌓아나갑시다! 🚀

728x90
반응형