개발자로서 Java언어를 제일 먼저 접했고
현재도 주로 Java언어를 사용하고 있다.
그런데 개발을 하면서 왜? 라는 고민을 하면서 개발을 시작한지 그렇게 오래되지 않았다.
처음엔 궁금하지도 않았고, 그냥 다들 그렇게 하니깐, 시키니깐 이라는 생각을 가지고 일을 했던 것 같다.
요즘엔 왜? 라는 생각을 의식적으로 많이 하려고 하는데
어려움에 부딪히거나 바쁘면 그 생각을 또 지나치는 것 같다..
그래서 내가 하고 있는 것들을 왜 사용하는지 이유를 좀 더 확실하게 내것으로 만들기 위해
아주 근간부터 하나하나 기록해보려고 한다.
개발이 아니더라도 인생에서 확실히 알고 무엇을 한다는 것은 중요한 것 같다!
자바의 역사
자바는 1991년 6월 썬 마이크로시스템즈에 다니던 제임스 고슬링과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다.
왜? 만들어졌는가?
처음에는 우리가 흔히 사용하는 웹, 모바일 환경을 위해 개발된 언어가 아니였다.
주로 가전제품 내에 탑재해 동작하는 프로그램을 위해 개발되었다.
그런데 이미 C,C++등 하드웨어에서 쓰이는 언어가 있었는데 왜 새로운 언어를 만들었을까?
당시에 대부분의 컴퓨터 언어는 특정 플랫폼이나 하드웨어에 맞게 컴파일 되도록 설계되었다.
따라서 플랫폼마다, 각 플랫폼에서 쓰이는 CPU마다 환경에 맞는 컴파일러가 필요했었고,
때문에 개발 비용이 비싸고 오래걸렸다.
그래서 제임스 고슬링은 OS,CPU에 상관없이 다양한 환경에서 실행되는 이식성이 뛰어는 크로스 플랫폼 언어 개발을 하게 되었고, 이러한 배경을 바탕으로 WORA(Write Once, Run Anywhere)의 철학을 가진 자바가 탄생했다.
가장 큰 특징
Java는 컴파일된 코드가 플랫폼 독립적이다는 특징이 가장 크다
Java 컴파일러는 Java언어로 작성된 프로그램을 바이트코드라는 특수한 바이너리 형태로 변환한다.
바이트코드를 실행하기 위해서는 JVM(Java Virtual Machine, 자바 가상 머신)이라는 특수한 가상 머신이 필요한데, 이 가상 머신은 Java 바이트코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다.
때문에 Java로 개발된 프로그램은 플랫폼에 상관없이 JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있다.
이 점이 웹 애플리케이션의 특성과 잘 맞아떨어져서 폭발적으로 인기를 끌게 된 것이다!
Java란 이름은 어디서 왔을까?
초기에는 자바가 아니라 오크(Oak)였다. 당시 썬 마이크로시스템즈의 Green Team에 소속된 제임스 고슬링은 본인의 팀명을 따서 이름을 Green으로 지었다가, 사무실 밖에 있던 오크 나무를 따다 오크(Oak)로 불렀다. 그러나 나중에 Oak라는 이름이 Oak Technologies에서 이미 사용중이라는 것을 알고 여러 단어 리스트를 결정하여 단어 리스트 중 무작위로 뽑은 자바(Java)를 선택했다.
인도네시아 자바섬에서 재배되는 커피원두에서 차용된(Java)
그래서 로고에 커피가 있다는..?
그렇게 고슬링의 목표는 C/C++ 스타일의 언어와 가상 머신을 구현하는 것이었고,
1995년 자바 1.0으로 첫 공개를 하게 되었다.
이 플랫폼은 꽤나 안정성을 지녔고 보안 시스템은 여러 설정을 통해 네트워크 및 파일 접근을 통제할 수 있었다.
대부분의 브라우저들은 곧 자바 애플릿(Java Applet)을 웹 페이지 안에서 실행할 수 있었고 자바의 인기는 급 상승하기 시작했다.
Java 2 (JDK 1.2~1.4)의 출현으로 다양한 플랫폼에서 사용할 수 있는 설정(Configuration)들을 만들었다.
예를들어 J2EE는 엔터프라이즈 애플리케이션을 실행할 수 있고,
J2ME는 모바일 애플리에키션을 실행할 수 있다.
J2SE는 스텐다드 에디션으로 지정되었다.
2006년에 마케팅 용으로 Java EE, Java ME, Java SE 순서대로 명칭을 바꾸었다.
자바 애플릿(Java Applet) - 1998년 발표된 J2SE 1.2에서는 웹에서도 자바를 돌릴 수 있게 해주는 자바 애플릿이 추가됨.
자바의 특징
Java의 개발자들은 Unix 기반의 배경을 가지고 있었기 때문에 문법적인 특성은 파스칼이 아닌 C++의 조상인 C언어와 비슷하다.
C에 객체 지향적 기능을 추가하여 만든 C++과는 달리, 처음부터 객체 지향 언어로 개발된 프로그래밍 언어이다.
위에서 설명했듯이 가장 큰 특징은 컴파일된 코드가 플랫폼 독립적이라는 점이다.
다시 설명하자면
자바 언어로 작성된 코드 -> 자바 컴파일러 -> 자바 바이트코드 -> JVM을 통해 실행
대강 이렇게 흐르는 구조이기 때문에 JVM만 있다면 자바로 개발된 프로그램은 어디서나 실행할 수 있었고, 이 점이 웹 애플리케이션의 특성과 잘 맞아떨어지기 때문에 폭발적인 인기를 끌게 되었다~ 는 이야기다!
자바의 특징과 JVM에 대한 자세한 내용은 다른 포스팅에서 더 작성할 것이다.
[출처]
https://jhyonhyon.tistory.com/15
[Java] 자바(Java)의 역사
자바(Java) 언어는 1991년 6월 썬 마이크로시스템즈(Sun Microsystems)에 다니던 제임스 고슬링(James Gosling)이 만들었습니다. 왜 새로운 언어를 만들었나? 자바는 초기에 토스터, 전자레인지, 리모콘 등의
jhyonhyon.tistory.com
자바 (프로그래밍 언어) - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 자바Java패러다임프로그래밍 패러다임: 객체 지향 프로그래밍 (클래스 기반 프로그래밍), 구조적 프로그래밍, 명령형 프로그래밍, 제네릭 프로그래밍, 반영, 병
ko.wikipedia.org