[Java] Java의 장단점

hyunoi·2024년 11월 26일

Java

목록 보기
16/20
post-thumbnail

장점


플랫폼 독립성 (Write Once, Run Anywhere)

자바는 독립적인 언어로 설계되었다.
자바 프로그램이 한 번 작성되면, 어디에서든 JVM을 통해서 어떤 운영체제에서도 실행이 가능하다.

풍부한 라이브러리와 커뮤니티

자바는 역사가 깊은 언어이다.
그래서 다양하고 많은 표준 라이브러리와 활발한 오픈소스 커뮤니티를 보유하고 있다.
이 덕분에 새로운 애플리케이션을 개발할 때 필요한 기능을 직접 구현하지 않고 검증된 라이브러리를 통해서 활용할 수 있다.

  • 주요 라이브러리
    Java API
    오픈소스 라이브러리
    • Spring, Hibernate, Apache Commons, ...

Garbage Collection을 사용한 메모리 관리

자바는 사용되지 않는 객체를 자동으로 제거해주는 Garbage Collection을 제공하여 사용하지 않고 있는 메모리 관리를 해준다.
개발자가 메모리 해제에 신경 쓰지 않아도 자동으로 해주어서 이 때문에 소요되는 시간과 오류를 최소화한다.

안정성

자바는 C/C++에서 사용하는 포인터 사용을 제한하여 메모리 접근과 관련된 문제를 방지한다.
또, 예외 처리를 사용하여 런타임 시점에 발생하는 애플리케이션의 비정상적인 종료를 방지한다.
이를 통해서 안정적인 애플리케이션 개발이 가능하다.

단점


실행 속도가 느리다

자바는 바이트 코드를 실행하기 위해서 JVM이 필요한데, JVM은 바이트 코드를 기계어로 번역한 후 실행하기 때문에 C/C++과 같은 네이티브 코드에 비해 속도가 느리다.
또, 위에서 설명한 Garbage Collection의 작업으로 성능이 저하된다.

이는 보완이 가능하다.
최근에는 JVM의 JIT 컴파일러를 사용하여 바이트 코드를 미리 기계어로 번역하여 속도를 개선한다.

높은 메모리 사용량

자바는 객체 지향적 설계로 모든 데이터가 객체로 처리되고,
JVM에서 메모리 관리, 스레드 관리 등 런타임 환경이 추가 메모리를 더 사용한다.

이것도 보완이 가능하다.
JVM 중 Garbage Collection 같은 메모리 관리 기능을 튜닝하여 애플리케이션의 메모리 사용을 최소화한다.

복잡한 문법

자바는 엄격한 문법과 구체적인 코드 작성이 필수이다.
동일한 작업이라면 다른 언어(Python, Kotlin, ...)에 비해 더 많은 코드 작성이 필요하다.

이것은 자바 8에 새로운 기능인 Lombok, Stream이 나오면서 코드를 짧게 만들었다.

0개의 댓글