프로그래밍 언어 Java의 역사, 특징, 단점에 대해!
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
language_Java |
프로그래밍 언어 Java의 역사
1995년 제임스 고슬링을 비롯한 개발자들에 의해 처음으로 개발되었다. 객체 지향 프로그래밍 언어로서 플랫폼 독립적인 특징을 가지고 있다. 초기에는 가전제품용 소프트웨어 개발을 위해 고안되었다. 개발 목표 중 하나는 "한 번 작성하고 어디서나 실행할 수 있는" 것이었다. 이를 위해 자바는 "Write Once, Run Anywhere"라는 슬로건을 내세웠다. 이를 실현하기 위해 가상머신과 중간 언어인 자바 바이트코드를 사용한다. 1995년 5월에 자바의 첫 번째 버전인 "자바 1.0"이 발표되었다. 당해 자바 애플릿이 큰 인기를 끌었다. 자바 애플릿은 웹 브라우저에서 실행되는 작은 프로그램으로, 웹 페이지에 동적인 기능을 추가할 수 있다. 그러나 애플릿은 보안 문제와 성능 이슈로 인해 현재는 크게 사용되지 않는다. 1996년에 1.1버전이 출시되었다. 이후로도 주기적으로 새로운 버전이 발표되었다. 자바 2 플랫폼은 1998년에 나왔는데, 이후로는 버전 번호에 "2"가 포함되지 않고 자바 2의 기능이 지속해서 개선되었다. 2006년 썬 마이크로시스템즈는 오라클에 인수되었고, 그 이후로 해당 기업에 의해 자바를 관리하며 개발하고 있다. 오라클은 위 언어를 활용하여 기업용 응용프로그램 개발, 웹 애플리케이션, 안드로이드 앱 개발 등 다양한 분야에서 활용할 수 있는 범용 프로그래밍 언어로 발전시켰다. 현재 주요 버전은 SE, EE, ME로 나뉜다. SE는 기본 자바 플랫폼으로, 주로 데스크톱 애플리케이션과 서버 애플리케이션 개발에 사용된다. EE는 기업용 애플리케이션 개발을 위한 확장된 자바 플랫폼으로, 웹 서비스, 분산 시스템 등을 개발할 수 있다. ME는 임베디드 시스템이나 모바일 기기용 애플리케이션을 개발하기 위한 자바 플랫폼이다.
특징
자바는 객체 지향적인 언어다. 모든 코드를 클래스와 객체의 형태로 구성한다. 이를 통해 코드의 재사용성, 유지보수성, 확장성 등을 향상할 수 있다. 한 번 작성된 코드를 자바 가상머신 위에서 실행함으로써 어떤 운영체제에서든 동작할 수 있는 특징이 있다. JVM은 특정 운영체제에 종속되지 않고, 각 운영체제에 맞는 JVM이 존재한다. 다양한 라이브러리와 프레임워크가 존재하여 개발자들이 손쉽게 다양한 기능을 구현할 수 있다. 대표적으로 스프링 프레임워크, 자바 FX, Hibernate, Apache Struts 등이 있다. 이들을 활용하여 웹 개발, 데이터베이스 연동, 그래픽 인터페이스 구현 등을 용이하게 할 수 있다. 또한 자동 메모리 관리 기능을 제공한다. 개발자는 명시적으로 메모리 할당과 해제를 관리할 필요가 없다. 가비지 컬렉터가 동작하여 더 이상 사용하지 않는 객체들을 자동으로 회수한다. 메모리 누수나 잘못된 메모리 관리로 인한 오류를 줄일 수 있다. 한편 강력한 보안 기능을 갖고 있다. 자바 애플릿을 통해 웹 브라우저에서 실행되던 시기에는 샌드박스 환경에서 동작하여 애플릿이 시스템에 악의적인 영향을 주지 못하도록 제한되었다. 더 나아가, 예외 처리를 통해 오류에 대한 명확하고 안정적인 처리를 지원한다. 다양한 용도로 활용될 수 있는 범용 프로그래밍 언어이기도 하다. 데스크톱 애플리케이션, 웹 애플리케이션, 서버 애플리케이션, 모바일 애플리케이션, 임베디드 시스템 등 다양한 플랫폼과 분야에서 사용된다. 그리고 확장성이 뛰어나며, 다른 언어와의 통합이 쉽고, 대규모 애플리케이션을 개발할 수 있는 기능과 도구를 제공한다.
단점
일반적으로 C나 C++과 같은 네이티브 언어보다 실행속도가 상대적으로 느리다. JVM의 추가 계층과 가비지 컬렉션 등의 오버헤드로 인해 발생할 수 있다. 가비지 컬렉션은 메모리를 관리하는 기능이다. 그러나 이에 따라 메모리 사용량을 예측하기 어렵고, 가비지 컬렉션 과정에서 일시적으로 프로그램 실행이 멈출 수 있다. 실시간 시스템이나 초당 수많은 트랜잭션을 처리하는 시스템에서는 큰 문제가 될 수 있다. 하지만 JVM의 가비지 컬렉션 알고리즘은 지속해서 개선되고 있어 이러한 문제가 완화되고 있다. 리소스 소모가 큰 것도 단점이다. Java 프로그램을 실행하기 위해서 JVM이 필요하다. 이에 따라 작은 규모의 애플리케이션을 실행하는 데에도 상대적으로 많은 시스템 리소스가 소모될 수 있다. 또한, 개발을 위해 많은 메모리와 디스크 공간이 필요할 수 있다. 한편 다른 언어보다 문법이 상대적으로 복잡하다. 특히 초기 학습 곡선이 다른 언어보다 가파를 수 있다. 또한, 엄격한 타입 체크와 정적 타입 언어로서 코드 작성에 있어, 상대적으로 더 많은 작업과 규칙을 요구할 수 있다. 더 나아가, 기본 UI 프레임워크인 AWT와 Swing은 사용하기 복잡하고, 다른 모던한 UI 프레임워크에 비해 디자인적으로 부족한 면이 있다. 그러나 최근에 JavaFX라는 새로운 UI 프레임워크가 도입되어 문제가 해결되고 있다.
결론
자바는 안정성, 보안성, 이식성 등의 장점으로 널리 사용되고 있다. 다양한 플랫폼과 여러 분야에서 사용되고 있다. 기존의 단점들은 발전되고 개선되고 있다. 또한, 다양한 오픈 소스 프레임워크와 라이브러리들이 위 언어를 활용한 개발을 더욱 쉽게 해주고 단점들을 상쇄시키는 역할을 하고 있다.
댓글
댓글 쓰기
안녕하세요. 부투하는코린이 입니다. 욕설, 비방, 관련없는 광고성 댓글은 삭제될 수 있습니다. 감사합니다.