* 이 강의는 전공 학부생의 입장에서 배우면서 이해하기 어려웠던 부분을 어떻게 쉽게 설명할 수 있을까를 고심하며 작성한 강의 입니다. 인터넷이나 다른 서적에도 훌륭한 강의는 많습니다. 하지만, 우리는 가끔 선생님이 강의를 해주셨는데 이해가 안될 때, 공부 잘하는 친구에게 물어봐 간단하게 해법을 찾기도 합니다. 그 이유는 같이 배우는 입장으로써, 친구가 어려워하는 부분에 처음 부딪혔을 때 '공감'이 되었기 때문입니다. 이렇듯 부족한 강의지만 친구가 알려주듯이, 공감하면서 쉽게, 풀어서 알려주려고 노력한 강의입니다. 먼저 다른 좋은 강의를 보시고 찾으시는 것도 좋은 방법입니다. 도움이 되시는 분들이 있을거라 생각합니다. 피드백과 질문 환영합니다.
이번 시간에는 실제로 자바(java) 언어를 다루기 전에,
자바 언어를 더 잘 이해하기 위해 자바의 역사와 특징을 먼저 간단하게 알아보고 시작하도록 하겠습니다.
저는 책을 읽을 때도 서문을 꼭 읽는 편입니다. 개인적으로 무작정 읽기 시작하는 것보다는 대상에 대한 파악을 하고 본문을 본다면 더 흥미롭게 볼 수 있다고 생각합니다. 자바의 배경과 어떤 특징이 있는지 간단하게 미리 파악하고 배우기 시작한다면 조금 더 흥미롭지 않을까 생각합니다.
자바(Java)의 역사
자바(Java) 언어는 오크(Oak)라는 언어로부터 탄생했습니다.
오크(Oak)라는 언어는 1991년 선 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링(James Gosling)에 의해 개발된 언어로서 사실 가전제품의 기능을 프로그램으로 제공하기 위해 개발되었습니다.
물론, 제임스 고슬링 혼자서 개발했다는 뜻은 아닙니다. 세종대왕이 혼자서 한글을 창조하신 것은 아닌 것 처럼요.
핵심 개발 팀원은 패트릭 노튼(Patrick Naughton), 크리스 와츠(Chris Warth), 에드 프랭크(Ed Frank), 그리고 마이크 쉐리든(Mike Sheridan)이 있습니다.
이러한 오크 언어는 사실 별로 관심을 끌지 못했습니다. 그러던 와중, 인터넷에서는 새로운 서비스인 WWW(World Wide Wep)가 등장했습니다. WWW는 클라이언트-서버 형태로 작동하는 오크 언어의 기본 개념과 같은 다운로드 기능을 제공하는 서비스였습니다.
그래서, 선 마이크로 시스템즈 사에서는 오크(Oak)를 인터넷에서 폭발적인 인기를 얻고 있는 WWW에 적용하기 위한 작업을 시작하였고, 업그레이드 하여 1995년 Sun 사는 자바(java)로 이름을 바꾸었습니다.
사실상, 자바가 개발되던 시기에 WWW가 등장하지 않았다면 자바는 가전제품의 프로그램 개발에만 쓰이는 언어로 남았을 것이다. 하지만, 이식 가능한 언어를 요구하는 웹의 출현으로 자바가 급부상하게 된 것이라고 할 수 있습니다.
여기서 잠깐, 혹시 '자바'라는 이름이 탄생한 계기가 궁금하시진 않나요?
재미있게도 제임스 고슬링이 매우 즐겨마시던 '자바'라는 커피 브랜드가 있는데, 그 이름을 따왔다고 합니다. 그래서 로고에도 커피가 그려져있죠.
> Java 로고
이렇게 자바는 계속된 버전 업그레이드를 하였는데,
Java SE 7부터는 오라클(Oracle)이 선 마이크로시스템즈(Sun Microsystems)를 인수합병하였습니다.
그래서 현재 자바의 저작권은 오라클에 있어서 오라클 홈페이지에서 자바를 다운받을 수 있습니다.
자바의 역사를 간단하게 요약해보았습니다.
자바(Java)의 특징
1. C/C++ 언어의 영향을 받아 만들어졌고, 객체지향 언어입니다.
2. 자바는 JVM(Java Virtual Machine : 자바 가상 머신)을 사용하기 때문에 윈도우(Windows), 맥(Mac), 리눅스(Linux) 등 다양한 운영체제에 상관없이 코드의 변경 없이 어디서든지 구동이 가능합니다.
그 원리를 간단히 말하자면, 자바 코드로 짜여진 Java Code(.java)를 자바 컴파일러가 읽어 들여 Byte Code(.class)로 바꾸게 되고 class 파일을 자바 가상 머신이 읽는 것입니다.
여기서 Byte Code를 모든 플랫폼에 옮길 수 있는 것입니다.
3. 뛰어난 보안성을 가지고 있습니다.
주된 이유는, 명시된 포인터가 없고 자바 가상 머신 샌드박스 안에서 프로그램을 실행하기 때문입니다.
4. 메모리 관리가 탁월합니다. (자동 메모리 관리 기능이 있습니다.)
5. 코드가 단순화되어 있습니다.
6. 다중, 멀티 쓰레드 기능을 제공해줍니다.
(쓰레드는 동시에 실행되는 별도의 프로그램이라고 이해하시면 됩니다. 따라서, 한번에 많은 업무들을 다루는 자바 프로그램을 작성할 수 있습니다.)
이번 시간에는 자바의 역사와 특징에 대해 알아보았습니다.
궁금하신 점이나 수정할 부분이 있다면 댓글에 남겨주시기 바랍니다.
'개발 > Java' 카테고리의 다른 글
[학부생이 알려주는 JAVA 강의] 3. 자바 Hello World 출력하기 (0) | 2018.01.08 |
---|---|
[JAVA Class] 2. history and characteristic of java (0) | 2018.01.07 |
[JAVA Class] 1. Java build environment (0) | 2017.12.19 |
[학부생이 알려주는 JAVA 강의] 1.자바 환경 구축 (JDK 설치, 이클립스 설치) (0) | 2017.12.18 |
[JAVA] 좌표 설정 마우스 매크로 프로그램 개발 (0) | 2017.12.11 |