Chapter1 1-1.5 어떠한 언어가 자바를 비웃는가? 위대한 자바 만세!

(1) 프로그램 시장에서 바라본 자바의 위상

자바가 실제 프로그램 시장에서 상대적으로 짧은 역사에도 불구하고 세계적으로 가장 중요한 개발 언어로 자리잡은 이유는
어느 장소(운영체제)에서 만들어진 프로그램이건 다른 장소(타 운영체제)에서 변형없이 귿로 사용할 수 있다는데 있다.
당연한 이야기겠지만 현재 소프트웨어 시장에는 서로다른 강점을 지닌 운영체제들이 탑재되어 있는데 자바는
어떤 운영체제하에서도 호환되어 돌아갈 수 있다는데 그 장점이 있는 것이다. 이러한 이유로 여러 운영체제를 두루 사용하는 기업에서
각각의 운영체제에 맞는 똑같은 기능을 하는 프로그램을 여러개 만들지 않아도 된다는 점이 자바의 큰 매력이라고 할 수 있다.
이로써 기업들은 동시에 비용절감이라는 실질적인 혜택까지 누릴 수 있게 되었다.

(2) 타 언어에 비해 자바가 가지는 장점

앞서 말한 바와 같이 자바를 통해 한번 만들어진 프로그램은 어떤 운영체제에서도 운용이 가능함으로 인해서 각 운영체제별로
같은 기능을 하는 프로그램을 여러개 만들지 않아도 된다는 것이다.
이러한 특성을 WORA(Write Once Run Anywhere)라 부른다.
이것이 바자의 가장 큰 장점이지만 아래와 같은 또 다른 장점을 가지고 있어 더욱 자바의 필요성을 높여준다.

① C++나 다른 객체지향 언어와 비교하여 상대적으로 빠른 시간 안에 자바를 배울 수 있다.
② 적은 양의 프로그래밍 코드로 원하는 프로그램을 작성할 수 있다.
③ 완벽한 객체지향으로 설계된 자바를 이용하면 보다 안정되고 질 좋은 프로그램을 제작할 수 있다.

by oasis | 2010/06/15 22:37 | Java | 트랙백 | 덧글(0)

Chapter1 1-1.4 자바는 어떠한 목적을 가지고 태어났으며 어디로 향해 가고 있나?

(1) 위대한 자바! 그 출생의 비밀은?

자바는 1990년 초, 소형가전기기의 효과적인 제어를 위해 진행되었던 비밀 프로젝트인 Green Project에서 시작한다. 당시 터치스크린으로 사용자와 가전기기 사이의 대화방식을 제공하던 스타세븐이라는 제품을 선보이게 되었는데, 그 기기에서 현재 자바 마스코트인 듀크(Duke)가 처음으로 등장하게 된다.

이후 여러 하드웨어에서 분업화된 작업으로 수행하는 프로그램(분산 처리 응용프로그램)을 만들기 위해서 특정 하드웨어에 종속적이지 않고 모든 하드웨어에서 작동할 수 있는(플랫폼에 독립적인) 소프트웨어가 필요하게 되었다.

처음에는 C++를 이용하였지만 부족함을 느껴 Oak(떡갈나무, 연구소 근처에 떡갈나무가 많아서 지어진 이름)라는 언어를 개발하게 되고, 프로젝트 팀원인 James가 발전시켜 현재의 Java를 만들게 된 것이다.

(2) 자바의 성장기

소형가전기기들에 탑재할 프로그램에 초점을 맞추었지만, 당시 가전기기들의 하드웨어 수준이 자바기술을 받아들이기에는 기술적, 환경적 측면에서 턱없이 역부족이었다.
그리하여 내린 결론이 그 당시 급속도로 성장하고 있던 인터엣에 자바의 기술을 적용시켜 보고자 한 것이다.
이유는 간단했다. 수많은 다양한 컴퓨터가 연결되어 있는 인터넷 환경 속에서 CPU나 운영체제에 얽매이지 않는 프로그램을 만들기에 자바가 유망하리라 생각했기 때문이다. 그 결과 자바는 현재 상황처럼 아주 중요한 역할을 하게 된 것이다.

그리하여 SUN에서는 여러 번의 베타테스트 후에 1995년 5월 23일에 공식발표하게된 JDK1.1에서 시작하여 JDK1.4까지 발표되었다.(지금은 JDK1.6까지 나와있는 상태이다..)

(3) 자바의 미래는 무지 밝다? 그렇다!

대부분의 자바를 비하하는 개발자들의 공통적인 의견은 자바로 개발된 프로그램들은 느리고, 리소스(컴퓨터의 자원)을 많이 잡아먹는다며 효율적이지 못한 언어로 인식하기도 한다. 그러나 이러한 단점에도 불구하고 자바가 지속적으로 성장하고 있는 것은 자바의 최대 장점이자 슬로건인 WORA(Write Once Run Anywhere)는 한번 만들어진 자바 프로그램은 플랫폼에 맞게 변환단계(포팅)를 거치지 않고 운영체제(플랫폼)에서 사용되어질 수 잇다는 것이다. 즉, 플랫폼에 독립적이라는 말이다.

■ 자바가 잘 나가는 이유

1. 사용하기 쉽다.
2. 재사용성 및 유지보수가 쉽다.

C++기반으로 만들어진 자바이지만, 그것보다 배우기 쉽고 이용하기도 편리하다. 또한 객체지향 언어로의 성질을 지니고 있어 재활용성과 유지보수가 용이하다는 것과 실시간(Real Time)적인 성격을 띠는 인터넷 응용 시스템 개발이나 휴대기기(Mobile)의 운영체제 분야에서 자바는 중요한 비중을 차지하고 있다.

by oasis | 2010/06/04 23:21 | Java | 트랙백 | 덧글(0)

Chapter1 1-1.3 컴퓨터 시스템을 알고 자바를 바라보자!

(1) 컴퓨터 시스템의 구성 요소

Computer_System.pptx

(2) 소프트웨어의 큰 줄기

소프트웨어는 컴퓨터를 사용하는 인간이 직접 하드웨어를 기계적으로 조작하지 않게 하기 위애서
하드웨어와 사용자 중간에 위치하는 컴퓨터 시스템 구성요소이다.

■ 시스템 소프트웨어

⊙ 운영체제

정의 : 컴퓨터를 효율적으로 운영하기 위한 기본 프로그램
종류 : DOS, WINDOWS, Linux, Unix, Mac OS

⊙ 언어 번역 프로그램

정의 : 프로그래머가 작성한 프로그램을 컴퓨터가 이해할 수 있는 기계어로 번역해주는 프로그램
종류 : 어셈블러, 인터프리터, 컴파일러(자바 컴파일러, 자바 인터프리터, C 컴파일러 등)

⊙ 유틸리티 프로그램

정의 : 사용자가 번거로움을 덜어주기 위해 자주 사용하는 프로그램을 미리 작성하여 활용하는 프로그램
종류 : 압축/해제 프로그램(Alzip, Winzip), 컴퓨터 시스템에 침입해 시스템의 성능을 저하시키는
          바이러스 퇴치 백신프로그램(V3, 바이로봇, Norton 등) 등.

■ 응용 소프트웨어

⊙ 워드프로세서

정의 : 문서의 작성과 편집을 쉽게 해주는 프로그램
종류 : 한글, MS-Word 등.

⊙ 스프레드시트

정의 : 미리 마련해 놓은 표에 자료를 입력하면 여러가지 종류의 계산을 항목별로 쉽게 실행할 수 있는 프로그램
종류 : LOTUS, EXCEL, QUATTRO 등.

⊙ 데이터베이스

정의 : 파일에 저장된 자료를 유지하고 관리하여 효율적으로 검색하고 이용할 수 있도록 만든 프로그램
종류 : Access, MS-SQL, Oracle, My-SQL, Sybase 등.

이와 같이, 응용 소프트웨어는 컴퓨터 시스템을 실제로 사용하는 사용자가 특정한 목적에 의해 컴퓨터 시스템에 설치하여
이용하는 프로그램들이다.

(3) 자바를 통해서 만들어지는 프로그램은 어떤 종류의 소프트웨어일까?

앞서 자바는 프로그램을 만들때 사용되는 프로그래밍 언어라고 했다. 그러면 자바를 통해서 만들어진 프로그램은 시스템 소프트웨어일까, 응용 소프트웨어일까..?

자바가 주목받기 시작한 것은 인터넷의 등장과 함께 인터넷 환경에서 사용될 수 있는 보다 강력한 프로그램을 자바가 제공하였기 때문이다. 초기의 인터넷에 나름대로 강력한 힘을 불어 넣었던 자바를 애플릿이라고 불렀는데 이것을 통해 자바는 인터넷이라는 특정 목적에서 사용되는 응용 소프트웨어를 만드는데 주로 사용되어졌다. 그러나 현재는 그보다 한차원 높은 시스템 소프트웨어를 만드는데도 많이 사용되고 있다.

by oasis | 2010/06/02 22:11 | Java | 트랙백 | 덧글(0)

플랫폼에 독립적이다?

특정 프로그래밍 언어로 만든 프로그램이 특정 운영체제에서만 동작하는 경우를 가지고
플랫폼에 종속적(의존적)이다라는 표현을 한다.


그와 반대되는 개념으로 여러 운영체제에서 동작할 수 있는 경우를 가지고 플랫폼에 독립적이라는 표현을 쓴다.

예를 들어 게임 같은 것을 보자면 게임을 설치할 수 있는 운영체제가 게임설명서에 나와 있는데,
이는 플랫폼에 종속적으로 게임이 만들어져 있다는 의미가 되는 것이다.

여기에서 플랫폼이란 우리가 일반적으로 사용하는 프로그램이 실행될 때의 기반 즉, 운영체제가 플랫폼이 된다고 볼 수 있다.




Platform.pptx

by oasis | 2010/06/02 21:08 | 부가적 지식 | 트랙백 | 핑백(1) | 덧글(0)

Chapter1 1-1.2 자바의 친구(?)는 무엇이 있을까?

프로그래밍 언어에도 초창기의 언어들은 각자 자신의 특기가 분명했다.
(책에서는 꽃을 심는 것에 비유를 하고 있다. 삽자루나 포크레인 보다는 모종삽으로 꽃을 심는 것처럼,
언어들도 각자의 역할에 따라서 사용되는 언어들이 있었다는 것이다.)

예를 들어, Fortran은 복잡한 산술계산에 그 장점이 있어 과학기술용으로 두루 사용되었으며,
Cobol은 사무환경에서 필요한 프로그램들을 만드는데 장점이 있었다.

이렇듯, 프로그래밍 언어가 다양하게 존재하는 이유가 여기에 있다.

(1) 영원한 강자 C언어

벨(Bell)연구소에서 1971년경부터 리치(D.M.Ritchie) 등에 의해서 개발된 시스템 기술용의 프로그래밍 언어인 C는 UNIX OS(운영체제)의 기술에 사용할 것을 목적으로 설계한 언어로 UNIX OS의 대부분이 이 언어로 개발되었다. 간단한 특징으로는
1. 특정 프로그램에서 발휘하는 기능에 초점을 맞추어 프로그래밍 된다.
2. 메모리에 대한 접근을 지원하므로 시스템 프로그래밍이라 할 수 있다.
3. 객체지향 이전의 개념인 구조적인 프로그래밍 방법을 따르고 있다.

(2) MS가 주장하는 차세대 언어의 선두주자 C#

C#은 MS사에서 새로운 보다 질 높은 소프트웨어 생산이라는 관점에서 등장시킨 언어이다.

기존의 C++를 보다 간결하게 구성하여 개발자로 하여금 좀 더 쉽게 프로그래밍을 할 수 있도록 돕고 있다.
이로서 개발 시간을 단축시킬 수 있게 설계되었다.

또, 결정적인 자바의 최대 강점이었던 플랫폼에 독립적인 특성을 가미하여 C#으로 만들어진 프로그램이 좀 더 넓은 호환성을 가지도록 했다.


이외의 VB, Delphi, PowerBuilder 등도 현재 소프트웨어 개발 산업 전선에서 활약하고 있는 언어들이다.

by oasis | 2010/06/02 20:59 | Java | 트랙백 | 덧글(0)

◀ 이전 페이지다음 페이지 ▶