Java : 자바 (Java)의 주요 특징

최혜린·2025년 3월 13일

프로그래밍 언어는 다양한 특징과 목적을 가지고 개발되었으며, 각각의 언어는 고유한 장점을 가지고 있다.
그중에서도 자바(Java)는 강력한 객체 지향 개념을 기반으로 하며, 안정성과 높은 생산성을 자랑하는 언어이다.

그렇다면 자바는 어떤 특징을 가지고 있을까?


자바의 주요 특징

1. 플랫폼 독립성

자바는 플랫폼에 독립적이다. 자바로 작성된 프로그램은 JVM(Java Virtual Machine) 위에서 실행되므로, 운영체제에 구애받지 않고 다양한 환경에서 동일하게 동작한다.

  • JVM(Java Virtual Machine) : Java 프로그램이 실행될 수 있도록 해주는 가상 머신으로, 각 운영체제에 맞는 JVM이 제공된다.

  • Bytecode : 자바 컴파일러가 소스 코드를 바이트 코드로 컴파일하면 JVM이 이 바이트 코드를 해석하여 각 운영체제에 맞는 기계어로 변환하고 실행한다.

이렇게 함으로써 동일한 Java 프로그램을 다양한 플랫폼에서 실행할 수 있다.


2. 객체 지행 프로그래밍 (Object-Oriented Programming)

자바는 객체 지향 프로그래밍 개념을 기반으로 하며, 캡슐화, 상속, 다형성, 추상화 개념을 활용하여 유지보수성과 확장성을 높인다.

1. 캡슐화

  • 데이터와 그 데이터를 조작하는 메서드를 하나로 묶는 개념이다.
  • 외부에서 직접 접근하지 못하도록 private 접근 제한자를 사용하고 , getter/setter 메서드를 통해 데이터를 제어한다.

캡슐화에는 어떤 장점이 있을까?

1️⃣ 데이터 보호 (정보 은닉)

객체 내부 데이터를 직접 변경하면 예상치 못한 버그가 발생할 수 있다. 필드를 private으로 설정하고 getter/setter 메서드를 통해 값을 읽거나 변경하도록 하면, 잘못된 값이 들어가는 걸 방지할 수 있다.

2️⃣ 유지보수성과 확장성 증가

필드(변수)가 외부에 공개되어 있으면, 그 필드를 사용하는 모든 코드를 수정해야 할 수도 있다.
하지만 getter/setter 메서드를 제공하면, 필드의 이름이 바뀌거나 내부 구현이 변경되어도 외부 코드에 영향을 주지 않는다.

3️⃣ 코드 재사용성 증가

객체가 데이터를 직접 다루는 것이 아니라 제어된 메서드를 통해 접근하면, 같은 메서드를 다른 객체에서도 재사용할 수 있다.

2. 상속

  • 기존 클래스를 기반으로 새로운 클래스를 만들어 코드 재사용용성을 높이는 개념이다.
  • 부모 클래스의 필드와 메서드를 자식 클래스에서 그대로 사용할 수 있다.

3. 다향성

  • 같은 메서드 이름이라도 다른 기능을 수행할 수 있는 것이다.
  • 메서드 오버로딩과 오버라이딩으로 구현 가능하다.

4. 추상화

  • 불필요한 정보는 숨기고, 필요한 기능만 보여주는 개념이다.
  • 인터페이스나 추상클래스로 구현 가능하다.

3. 강력한 메모리 관리 (Garbage Collection)

자바는 개발자가 직접 메모리를 관리하지 않고 가비지 컬렉션(Garbage Collection)이 불필요한 객체를 자동으로 제거한다.
이를 통해 메모리 누수를 방지하고 프로그램 안정성을 높일 수 있다.

어떻게 동작할까??
자바 프로그램이 실행되면 메모리에 객체들이 생성되고 사용되지 않는 객체( 더 이상 참조되지 않는 객체 ) 는 메모리를 차지한 채 남아 있게된다.
이때 가바지 컬렉터가 주기적으로 실행되어, 참조가 끊긴 객체를 자동으로 정리해준다.


4. 멀티스레딩(Multi-threading) 지원

자바는 하나의 프로그램에서 여러 개의 쓰레드가 동시에 실행할 수 있는 환경을 지원한다. 이를통해 CPU 자원을 효율적으로 사용하여 성능을 향상시키고 동시에 여러 작업을 수행할 수 있다.


5. 풍부한 API 및 오픈 소스 라이브러리

자바는 표준 라이브러리(API)가 풍부하며, 많은 오픈 소스 라이브러리를 활용할 수 있어 개발 생산성이 높다.


6. 보안(Security) 기능

자바는 클래스 로더, 바이트코드 검증, 보안 매니저(Security Manager) 등의 기능을 통해 애플리케이션 보안을 강화한다.


위의 특징 덕분에 기자바는 지속적으로 발전하며 여러 산업에서 활용된다..!

그러므로.. 열심히 공부해보자 . 헣 ㅎㅎ

profile
산으로 가는 코딩.. 등산 중..🌄

0개의 댓글