먼저 JVM이 뭔지 알아보자.

JVM은 Java Virtual Machine의 약자로 한국말로하면 자바 가상 머신을 의미한다.

쉽게 말하면 자바로 만들어진 클래스 파일을 번역해서 수행하는 소프트웨어라고 생각하면 된다. 자세한 내용은 아래 링크를 참조하면 된다. (JVM의 스펙에 대한 내용이라 열나 어렵긴 할 것이다.)

http://java.sun.com/docs/books/jvms/


그렇다면Hotspot은 뭘까 ??? 

Hotspot은 VM의 한 종류라고 보면된다. 이게 나오기 전의 VM을 보통 클래식 VM 이라고 부르며, Hotspot에 대해서 한 마디로 설명하면 다음과 같다.(출처 : http://kr.sun.com/software/opensource/faq.html#b11)

Q :
자바 HotSpot 가상머신은 무엇이고, 개발자들은 이 컴포넌트로 무엇을 할 수 있나요?
A :
자바 HotSpot은 일종의 자바 가상머신의 구현으로, 자바 HotSpot VM에는 다음과 같은 자바 플랫폼을 위한 핵심 실행 엔진이 포함됩니다:
  • 자바 바이트코드를 지원 하드웨어 플랫폼 상에서 최적화된 네이티브 기계어 코드로 변환하는 동적 컴파일러
  • 메모리 관리 및 가비지 컬렉션 서브시스템
  • 스레드 및 동기화
  • 모니터링, 디버깅, 프로파일링 텔레메트리(profiling telemetry)
  • 바이트코드 검사기(bytecode verifier)를 포함한 자바 보안 아키텍처 부분들

HotSpot은 그 자체가 “일단 한번 작성하면 어디서든 실행된다(Write Once, Run Anywhere)”라는 자바 기술의 약속을 가장 구체적으로 실현한 Java SE 플랫폼 컴포넌트라 할 수 있습니다.

개발자들은 이 코드를 통해 세계 최고 수준의 가상머신이 어떻게 구축되는지 살펴볼 수 있을 뿐 아니라, 버그 픽스, 그리고 새로운 가비지 컬렉션, 동기화, 바이트코드 컴파일러 알고리즘의 테스트, VM을 새로운 하드웨어 아키텍처와 운영체제에 이식하는 등의 작업을 수행할 수 있게 됩니다.


Hotspot 에 대해서는 아래 링크를 참조하는 것이 가장 쉬울 것이다.

http://java.sun.com/javase/technologies/hotspot/index.jsp

그리고, Hotspot  VM을 튜닝하기 위한 옵션은 아래의 링크를 참조하면 된다.

http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp

다음에는 개발툴에 대해서 알아 보자.

신고
Posted by tuning-java Trackback 0 : Comment 0
자바라는 단어만 들어도 스트레스를 받는 분들이 가끔 계신것 같습니다.

특히 경력이 10년 넘으신 분들 중 서버나 DB, 네트웍만 하신 분이나
C나 Cobol만을 하신 분들은 쉽게 접근하기가 어려운게 현실이지요.

그래서 오늘부터 틈틈이 자바의 ㅈ, Java의 J 도 모르시는 분들이 쉽게 자바를 배울 수 있도록
강좌를 개설하려 합니다.

자바 기본 문법은 그리 상세히 다루지 않을 겁니다.
그런건 책에 잘 나와 있으니까요.
가장 추천하는 책은 Head First Java 입니다.
http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=1809610&CategoryNumber=001001003016
올해는 어떨지 모르겠지만, 작년까지만 해도 삼성SDS 신입사원 자습 교재였습니다.


고급 개발자분들, 저보다 똑똑하신분, 심장이 너무 약하신분들은 절대로 이 글을 보지 마세요.
그런분들이 거신 별 도움 안되는 딴지는 과감히 삭제하겠습니다. ^^;

그럼 시작하겠습니다.

기본적인 이해를 돕기 위해서 용어부터...
- JDK와 JRE
http://java.sun.com/
를 접속해 보세요.
(물론 영업니다. 영어에 울렁증이 있으셔도 그냥 따라가 보세요.)
상단 메뉴에 있는 Downloads를 눌러보세요. 갖다 대기만 해도 뭐 여러 목록이 나타나는데 일단 그냥 누르세요.


그림과 같은 화면이 나타날겁니다. 만약 이런 화면이 나타나지 않았다면, 웹사이트 접속부터 다시...
열나 종류가 많은데 왼쪽것만 보세요.

가장 위 부터 개발툴, Java EE, Java ME, Java SE, JavaFX,Database 가 있습니다.
개발 툴은 말 그대로 썬에서 맹글고 밀고 있는 개발 툴이 있지요.
가장 대표적인 Sun Studio와 NetBeans가 있는데, 이것들은 많은 사람들이 사용하고 있지 않은 SWING이라는걸 사용해서 맹근겁니다. 그래서 화면이 좀 우울하죠.

그렇다면 많이 쓰는 Eclipse 는? 그건 Sun에서 맹그는게 아니라 IBM이랑 여러 회사가 같이 연합해서 맹그는 겁니다.
eclipse에 대해서 자세히 알아보시려면 http://www.eclipse.org 에 들어가서 보시면 됩니다.
URL이 org 이기 때문에 말 그대로 비 영리조직입니다. 그래서 꽁짜로 나누어 주는 겁니다.

그 다음에 있는 Java EE 라는게 있죠?
여기서 EE는 Enterprise Edtion 의 약자로, PC나 클라이언트를 위한 어플리케이션이 아닌 Web이나 기업용 시스템을 개발하기 위한 환경을 제공해 줍니다. 일단 여러분은 Pass...

Java ME 는 Micro Edtion에 대한 약자로 모바일을 위한 개발 환경을 제공합니다.
근데 뭐 여러분들에겐 별 도움이 안되겠죠?

그 다음이 Java SE 입니다. 일단 딴거 먼저 설명드리고 이거에 대한 설명을 다시 드리겠습니다.

JavaFX 는 Flash (요즘은 FLEX라고 많이 알려져 있는) 나 MS의 Silverlight 와 같이 브라우져 화면에서 좀더 화려하고 예쁜 화면을 제공하는 거 라고만 생각하고 계시면 되겠습니다.
나온지 꽤 되었는데, 아직 실무에 적용하긴 거시기한 상태입니다.

Database는 JavaDB라는 Java기반의 DB(아직 이거에 대해서는 공부를 안해서 잘 모르지만 언제부턴가 JDK를 깔면 같이 깔립니다.)와 Sun이 구매해버린 mySql 을 여기서 다운로드 할 수 있습니다.

이제 Java SE를 링크에서 확장해서 가장 위에 있는 Java SE (JDK) 를 클릭해 봅시다.
여러가지 다운로드 링크가 있는데, 기본적으로 다음과 같은 것들이 있지요.
Java SE Runtime Environment.....
Java SE Development Kit .....
.....
나머지는 모르셔도 되구요.
여기서 맨 위에 있는 것이 바로 JRE 이고,
두번째 있는 것이 JDK(JSDK)

JRE가 하는 일은 http://java.sun.com/javase/6/webnotes/install/jre/README 를 참조하시면 됩니다.
한마디로 자바를 실행할 수 있는 환경만을 제공합니다.
이것만 다운로드 받으면 개발은 불가능하다~~~
라고 생각하시면 됩니다.

JDK는 말 그대로 개발 킷입니다.
.java로 만든 텍스트 기반의 파일을 .class 라는 바이너리 타입의 파일로 컴파일 하는 일도 하고,
각종 모니터링 기능 및 분석기능 등등 여러가지 개발에 필요한 킷들을 제공합니다.

쓰다보니 글이 길어졌네요.
다음에는 JVM이 뭔지에 대해서 설명해 드리겠습니다.

PS : 이 강좌가 작성되는 주기는 일정하지 않습니다.


저작자 표시 비영리 변경 금지
신고
Posted by tuning-java Trackback 0 : Comment 0