티스토리 뷰

Language/Java

[Java] 자바란?

frost00 2017. 8. 23. 11:00

 


 자바는 1995년 썬 마이크로시스템즈(Sun Microsystems, Inc. 이하 썬)에서 C++를 기반으로 개발한 객체지향 프로그래밍 언어이다.


 제임스 고슬링과 아서 밴 호프와 같은 썬 마이크로시스템즈의 엔지니어들은 여러 가전제품에 작동할 수 있는 소프트웨어를 개발하는 과정에 있었는데,  당시 광범위하게 사용되고 있던 C++언어를 사용하게 된다. C++의 이용에서 분산 네트워크 시스템 개발에 부족함을 느낀 개발팀은, C++을 기반으로 오크라는 언어를 개발하게 된다. 이 개발팀의 책임자인 제임스 고슬링은 오크라는 언어를 자바로 발전시킨다. 자바는 90년대 초에 월드와이드웹(World wide Web) 이용에 적합하도록 운영체제로부터 독립적인 언어로 발전시키게 된다. 하지만 지금은 오라클에 인수 한병됨으로 현재 자바에 대한 권리 및 유지보수도 오라클(Oracle)에게 넘어간 상태이며, 자바개발환경인 JDK는 지금까지 계속 발표되고 있다.


  •  자바의 관한 특징


 1. 운영체제에 독립적이다.

 자바 응용프로그램은 오로지 자바가상머신(JVM)하고만 통신하므로 어떤 운영체제, 하드웨어든지 운영체제에 걸맞는 버전의 JVM이 설치되었다면 실행할 수 있다.


 2. 객체지향언이다.

 

 3. 비교적 배우기 쉽다.

 자바의 연산자와 기본구문은 C++에서, 객체지향관련 구문은 스몰톡(small talk)이라는 객체지향언어에서 가져왔다. 그리고 이들의 장점만 취하고 복잡하고 불필요한 부분은 제거해 쉽게 배울 수 있도록 만들어졌다.


 4. 자동 메로리 관리를 해준다.

 자바로 프로그램이 실행되면, 가비지컬렉서(garbage collector)가 자동적으로 메모리를 관리해줘서 프로그래머는 메모리를 따로 관리할 필요가 없다. 


 5. 네트워크와 분산처리를 지원한다.

 풍부하고 다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 짧은 시간안에 네트워크에 관련된 프로그램을 쉽게 개발 할 수 있다.


 6. 멀티쓰레드를 지원한다.

 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며, 관련된 라이브러리(Java API)가 제공되므로 구현이 쉽다.


 7. 동적 로딩(Dynamic Loading)을 지원합니다.

 자바는 동적 로딩을 지원하기 때문에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다. 


 그외에, 일부 클래스가 변경되더라도 전체 애플리케이션을 다시 컴파일하지 않아도 되며, 애플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 애플리케이션을 작성할 수 있다.


 제임스 고슬링은 자바 개발자로 알려져 '자바의 아버지'라고 불린다. 그가 자바 커피 예찬론자로 자바를 개발할 당시, 인도네시아 자바 섬에서 나오는 자바 커피를 하루에 너무나도 많이 마셔서 자신이 개발한 언어 이름을 자바라고 붙였다는 이야기도 있다. 그래서 자바의 로고 또한 커피잔과 접시로 돼있는 듯 하다.


 


참고자료: <자바의 정석(2016)>, <Perfect C>




'Language > Java' 카테고리의 다른 글

[Java] Scanner 클래스  (0) 2017.09.02
[Java] 자주 발생하는 에러들과 해결방법  (1) 2017.08.22
[Java] 자바에서 실행파일 실행하기  (0) 2017.08.21
[Java] JDK와 JRE  (0) 2017.08.21
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함