수업 ë‚´ìš© ¶
- Java� 탄�배경
�바(JAVA)
하면
섬ë‚
˜ë
�¼
�바를
ì—°
�
ì¼€
한ë
‹¤.
그러ë‚
˜ 미
êµ
사람들
ì—�
게
�바는
ì—�
스
í”
„ë
ˆ
소
커
피ë¡
œ ìœ ëª…
한 커
피
ì²´
�
ì �
ì�„ ìƒ
��
하게 ë�
ϑ
‹¤.
ìœ ëž
˜ëŠ”
커
피
ì²´
�
ì �
�
ê³
,
커
피
� 대명
사ë¡
œë�
„ 사
ìš©ë�
ϑ
‹¤.
그런�
ì–¸
ì œë¶€
í„°
�
ì§€, ë
„¤
트
워
�
� 대명
사
�
�
í„°ë
„·ì—�
서 �
�바
커
피
ê°€
하ë‚
˜ë°–
ì—�
없는 �
특
한 향
기를 뿌리
ê³
있ë
‹¤.
�
í„°ë
„·ì�„ 좀
아는
사람
ì�´ë
�¼ë©´
�바를 들
ì–´ë³´
지 못
한 사람
�
ê±°
� 없
� 것
ì�´ë
‹¤.
�바는
ì›”ë“
œì™€
ì�´ë“
œì›¹
�
ì—�
서 í”
„ë¡
œê·¸ëž¨
� 실
í–‰
í• ìˆ
˜ 있
게
하는, ë
„¤
트
워
�를
기ë°
˜ìœ¼ë¡
œí•˜ëŠ”
ì–¸
ì–´ë¡
œ,
�
í„°ë
„· í”
„ë¡
œê·¸ëž
˜ë°�
ì–¸
ì–´
� 표준
ì�´ ë�
˜ì—ˆë
‹¤.
�바
ê°€
�
í„°ë
„· 세
ê³
„ì—�
서 관
심
� 초
ì �
ì�´ ë�
œ 것
� 먼
ì €
세
ê³
„를
하ë‚
˜ë¡
œ 엮는ë
‹¤ëŠ”
�
í„°ë
„·ì�„ 기본
í™
˜ê²½
으ë¡
œ 하ê³
있
으면
서 �
í„°ë
„·ì—�
ì—°
ê²°ë�
˜ëŠ”
ìˆ
˜ë§Ž
�
서ë¡
œ ë
‹¤ë¥¸
ìš´
�
ì²´
ì œ(OS)들
ì—�
서 �
�
한 모
습
으ë¡
œ í”
„ë¡
œê·¸ëž¨
� 실
í–‰
í• ìˆ
˜ 있ë
‹¤ëŠ”
ì �
ì�´ë
‹¤.
ìš”
약
í•´
서 �
하면
�바는
�
í„°ë
„·ì�˜ 기ë°
˜ì�¸
웹
ì�˜ í”
„ë¡
œê·¸ëž¨
ì–¸
ì–´(Language)ë
�¼
ê³
�
í•´
하면 ë�
ϑ
‹¤.
�바
ì�˜ íƒ
„ìƒ
� ë°°
ê²½
� 알면
�바
ì–¸
ì–´
� 특
성
� 대
한 �
í•´
ê°€
쉬
워
질
것
ì�´ë
‹¤.
�바는
ê°€
ì „ ì œí’ˆ
� 들
ì–´
ê°ˆ
소
í”
„트
웨
어를 만들
기
위해
íƒ
„ìƒ
�í–ˆë
‹¤.
�바를
ê°
œë°
œí•œ 사람
�
ì„ ë§ˆ
�
í�¬ë¡
œì‹œìФ
í…
œì¦ˆ
사
ì�˜ ì œìž
„즈
ê³
슬�(James Gosling)
ì�´ë
�¼ëŠ”
사람
ì�´ë
‹¤.
그는
특
ì •í•œ ì»´
퓨
í„°
칩
� 대
í•´
ì»´
파
�
하여
야
하는 ë
„�리
알ë
¤
ì§
„ ì»´
퓨
í„°
ì–¸
ì–´
� C
ì–¸
ì–´
� 문
ì œì �, ë
˜�
ê°€
ì „ ì œí’ˆ
� 긴
ìˆ
˜ëª…
으ë¡
œ ì�¸
한 ì™
„ë²½
한 호
í™
˜ì�„ ê°€
ì§
„ 소
í”
„트
웨
ì–´
ì�˜ ê°
œë°
œ ìš”
구,
ê°€
ì „ ì œí’ˆ
ì—�
사
ìš©ë�
소
í”
„트
웨
ì–´
� 높
�
ì‹ ë¢°
성
필요 등
� 문
ì œì—� 대
한 해
ê²°ë°©
안
� 모
색
í•´
야만 됬ë
‹¤.
� 문
ì œë¥¼
í•´
ê²°
하기
위하여
ê³
슬�
� C
와 C++를
ê°
œì¡°
í•´
서 해
ê²°
ì�„ í•´ë³´ë
¤
ê³
시ë�
„를
í–ˆë�
˜ 것
ì�´ë
‹¤.
ê·¸ëž
˜ì„œ C
ì–¸
ì–´
� 불
í•„ìš”
한 ë¶€ë¶
„ì�´ë‚
˜ 문
ì œê°€ ë�
ë¶€ë¶
„들
ì�„ ì œê±°
한 새ë¡
œìš´
ì–¸
어를
ê°
œë°
œí•˜ê²Œ ë�
˜ì˜€ëŠ”ë�°,
�
것
ì�´ ë°”ë¡
œ ìž�ë°”
�
것
ì�´ë
‹¤.
ìµ
œì´ˆë¡
œ ìž�바를
�
ìš©
한 í”
„ë¡
œì �트는
ê°€
ì „ ì œí’ˆ
ê³¼
ì „ê¸°
기
기들
� 통
í•©
하여
ê°€
ì • í™
˜ê²½
ì—�
새ë¡
œìš´
�
í„°
íŽ
˜ì�´
스를
ì œê³µ
하는
소
위 그린
í”
„ë¡
œì �트(Green Project)ë
�¼ëŠ”
것
�
였ë
‹¤.
그러ë�
˜ 1993ë…
„,
ê·¸ëž
˜í”½
기ë°
˜ì�˜ ì›”ë“
œì™€
ì�´ë“
œì›¹
ì�´ ë°
œí‘œë�
˜ê³
�바
ì�˜ ê°
œë°
œìž�들
�
ê³§
�러
한 웹
기ë°
˜ì�˜ ì�‘ìš©
í”
„ë¡
œê·¸ëž¨
�는
�바
와
ê°™
�
기
기(
ì»´
퓨
í„° ë°�
ê·¸
ìš´
�
ì²´
ì œ)ë¡
œë¶€
í„° ë�…립ë�
œ ì–¸
ì–´
ê°€
�
�
ì �
ì�´ë
�¼ëŠ”
것
ì�„ ë°
œê²¬
하였ë
‹¤.
그리
하여
그들
�
ê°
œë°
œí•œ 것
ì�´ ë‚
˜ì¤
‘ì—�
í•«
�바(
HotJava)ë¡
œ ì�´ë¦
„ì�´ ë°”ë€�
웹러ë
„ˆ(
WebRunner)ë
�¼ëŠ”
웹 브ë
�¼
ìš°
ì €
였ë
‹¤.
�
것
�
ìµ
œì´ˆë¡
œ ìž�바를
ì§€
�
한 웹 브ë
�¼
ìš°
ì €
ê°€ ë�
˜ì—ˆë
‹¤.
ìž�ë°”ë
�¼ëŠ”
ì�´ë¦
„ì�€
ì§€
ì—
� 어�
커
피
ì �
안
ì—�
서 얻
ì—ˆë
‹¤.
ê·¸ëž
˜ì„œ ì§€
금
�
웹
íŽ
˜ì�´
ì§€
ì—�
서 í•
� �
ê³
있는
커
피
� �
ì§
•ì�„ ë³¼
ìˆ
˜ 있ë
‹¤.
- Javaì�˜ 특징, C++ê³¼ì�˜ ì°¨ì�´ì �
- 기계중립ì �
- GarbageCollection
- http://www.homepi.co.kr/java/java_4.htmì°¸ê³ í•˜ì„¸ìš”
- No More Typedefs, Defines, or Preprocessor
- No More Structures or Unions
- No More Functions
- No More Multiple Inheritance
- No More Goto Statements
- No More Operator Overloading
- No More Automatic Coercions: �� 형 변환� 안�다.
- No More Pointers
- VM(ê°€ìƒ�ë¨¸ì‹ )ì�€ 무엇ì�¸ì§€? ì�´ê²ƒì�˜ 장단ì �
- 1. 최근ì�˜ 컴퓨터 분야ì�˜ 용례ì—�서, ê°€ìƒ�ë¨¸ì‹ ì�€ ìž�ë°” 언어 ë°� ê·¸ 실행 환경ì�˜ 개발ìž�ì�¸ ì�¬ 마ì�´í�¬ë¡œì‹œìŠ¤í…œì¦ˆì—� ì�˜í•´ 사용ë�œ 용어ì�´ë©°, 컴파ì�¼ë�œ ìž�ë°” ë°”ì�´ë„ˆë¦¬ 코드와, ì‹¤ì œë¡œ 프로그램ì�˜ ëª…ë ¹ì–´ë¥¼ 실행하는 마ì�´í�¬ë¡œí”„로세서(ë˜�는 하드웨어 플랫í�¼) ê°„ì—� ì�¸í„°íŽ˜ì�´ìФ ì—í• ì�„ 담당하는 소프트웨어를 가리킨다. ìž�ë°” ê°€ìƒ�ë¨¸ì‹ ì�´ ì�¼ë‹¨ 한 플랫í�¼ì—� ì œê³µë�˜ë©´, ë°”ì�´íŠ¸ì½”ë“œë�¼ê³ 불리는 ì–´ë– í•œ ìž�ë°” 프로그램ë�„ ê·¸ 플랫í�¼ì—�서 실행ë� 수 있다. ìž�바는, ì�‘용프로그램들ì�´ ê°�ê°�ì�˜ 플랫í�¼ì—� 맞게 재작성 ë�˜ê±°ë‚˜, 다시 컴파ì�¼í•˜ì§€ 않아ë�„ ëª¨ë“ í”Œëž«í�¼ì—�서 실행ë�˜ëŠ” 것ì�„ 허용하ë�„ë¡� 설계ë�˜ì—ˆë‹¤. ìž�ë°” ê°€ìƒ�ë¨¸ì‹ ì�´ ì�´ë¥¼ 가능하게 한다. ìž�ë°” ê°€ìƒ�ë¨¸ì‹ ì�˜ 규격ì�€ ì‹¤ì œ "ë¨¸ì‹ "(프로세서)ì�´ 아닌 ì¶”ìƒ�ì �ì�¸ ë¨¸ì‹ ì�„ ì •ì�˜í•˜ê³ , ëª…ë ¹ì–´ ì§‘í•©, ë ˆì§€ìŠ¤í„°ë“¤ì�˜ ì§‘í•©, 스íƒ�, 가배지를 모ì�€ heap, ê·¸ë¦¬ê³ ë©”ì�˜ë“œ ì˜�ì— ë“±ì�„ ì§€ì •í•œë‹¤. ì�´ëŸ¬í•œ ì¶”ìƒ�ì �, 혹ì�€ 논리ì �으로 ì •ì�˜ë�œ 프로세서ì�˜ ì‹¤ì œ 구현ì�€, ì‹¤ì œ 프로세서ì—� ì�˜í•´ ì�¸ì‹�ë�˜ëŠ” 다른 코드, 혹ì�€ 마ì�´í�¬ë¡œí”„로세서 ê·¸ ìž�ì²´ì—� 내장ë� 수ë�„ 있다. ìž�ë°” 소스 프로그램ì�„ 컴파ì�¼í•œ 결과를 ë°”ì�´íŠ¸ì½”ë“œë�¼ê³ 부른다. ìž�ë°” ê°€ìƒ�ë¨¸ì‹ ì�€, ì‹¤ì œ 마ì�´í�¬ë¡œí”„로세서ì�˜ ëª…ë ¹ì–´ì—� 그것ì�„ 대ì�‘시키면서 한번ì—� 한 ëª…ë ¹ì–´ì”© ë°”ì�´íŠ¸ì½”ë“œë¥¼ í•´ì„�하거나, ë˜�는 ê·¸ ë°”ì�´íŠ¸ì½”ë“œëŠ” ì‹¤ì œ 마ì�´í�¬ë¡œí”„로세서ì—� 맞게 JIT 컴파ì�¼ëŸ¬ë�¼ê³ 불리는 것ì�„ ì�´ìš©í•´ 나중ì—� 컴파ì�¼ë� 수ë�„ 있다.
- 2. IBMì—�서 ë§�하는 ê°€ìƒ�ë¨¸ì‹ ì�€, 다중사용ìž�ê°€ ìž�ì›�ì�„ ê³µìœ í•˜ëŠ” ìš´ì˜�체계를 ë§�하며, ê°� 사용ìž�는 마치 ê·¸ 시스템ì�˜ ëª¨ë“ ìž�ì›�ì�„ 혼ìž� ë�…ì �하는 것처럼 ëŠ�낀다.
- 3. IBMì—�서 ë§�하는 ê°€ìƒ�ë¨¸ì‹ ì�´ë�¼ëŠ” 용어는 ë˜�한, 내재ë�œ 콘트롤 프로그램ì—� ì�˜í•´ êµ�대로 관리ë�˜ëŠ” ìš´ì˜�체계를 ì�˜ë¯¸í•˜ëŠ”ë�° 사용ë�˜ê¸°ë�„ 한다. ê·¸ë ‡ê¸°ì—�, IBMì�˜ VM/ESA는 IBM S/390시스템 ìƒ�ì�˜ 다중 ê°€ìƒ�ë¨¸ì‹ ì�„ ì¡°ì •í• ìˆ˜ 있는 것ì�´ë‹¤.
- 4. ê·¸ ë°–ì�˜ 경우ì—�서ì�˜ ê°€ìƒ�ë¨¸ì‹ ì�€, 컴퓨터를 실행하는 ìš´ì˜�체계나, ì–´ë–¤ 프로그램ì�„ ì�˜ë¯¸í•˜ê¸° 위해 사용ë�˜ê¸°ë�„ 했었다. ì�´ë¥¼ ì�¸ìš©í•˜ë©´
"실행ë�˜ê³ 있는 프로그램ì�€ 간혹 ê°€ìƒ�ë¨¸ì‹ ì�´ë�¼ê³ ë¶ˆë ¤ì§„ë‹¤. - ì‹¤ì œ 물리ì �ì�¸ 현실로 존재하지 않는 ë¨¸ì‹ . ê°€ìƒ�ë¨¸ì‹ ì•„ì�´ë””어는, ê·¸ ìž�체로 ê¸°ìˆ ì�˜ ì—사ì—�서 가장 ë©‹ì§„ ì•„ì�´ë””ì–´ 중ì�˜ 하나ì�´ë©°, 소프트웨어ì—� 관한 ì•„ì�´ë””ì–´ì�˜ ì§„í™”ì—� 있어 매우 ê²°ì •ì �ì�¸ 단계ë�¼ê³ ë§�í• ìˆ˜ 있다. 그것ì�„ ë”°ë�¼ìž¡ê¸° 위해, 과학ìž�와 ê¸°ìˆ ìž�들ì�€ 프로그램ì�„ ìš´ì˜�하는 컴퓨터가, 단지 세íƒ�ì�´ë‚˜ 하는 세íƒ�기가 아니ë�¼ëŠ” 것ì�„ ì�¸ì‹�해야만 했다. 세íƒ�기는 ê·¸ 안ì—� ì–´ë– í•œ 옷들ì�„ 넣는다 í•´ë�„ ì—¬ì „ížˆ 세íƒ�기ì�´ì§€ë§Œ, 컴퓨터는 새로운 프로그램ì�„ 넣는다면, 그것ì�€ ì™„ì „ížˆ 새로운 기계가 ë�œë‹¤.... ê°€ìƒ�ë¨¸ì‹ , 그것ì�€ 소프트웨어를 ì�´í•´í•˜ëŠ” 방법ì�´ë©°, 소프트웨어ì�˜ 설계가 기계ì�˜ 설계와 다르다는 것ì�„ ìƒ�ê°�하게 한다."
ì¶œì „ : 1997ë…„ 9월호 디스커버 잡지 72쪽ì—� 실린, David Gelernterì�˜ "Truth, Beauty, and the Virtual Machine".
- ìž�ë°”ì�˜ 종류와 ë²„ì ¼ìƒ�황, ê³¼ì •
- J2SE 설치와 Eclipse툴 사용, 컴파�, 실행
- " Hello, World!" ì¶œë ¥í•˜ê¸°