U E D R , A S I H C RSS

Java Study2003/첫번째과제/방선�

1. �바� 특징
  • Scalability
  • Universality
  • Modularity
  • C 언어ì�˜ í�¬ì�¸í„°ì²˜ëŸ¼ 메모리를 ì§�ì ‘ accessí•  수 없다.
  • Object Oriented Language (ê°�체지향언어)
  • Interpreted Environment 제공
    -- 기존ì�˜ compile/link/loadë°©ì‹�ì�˜ 언어ì—� 비해 source를 compileë§Œ 하면 최종 수행코드가 ìƒ�성ë�¨ìœ¼ë¡œ 개발시간ì�„ 단ì•í•  수 있다.
  • Java Virtual Machine (JVM)
    -- class파�� 그 �체가 실행파�� 아니다. 따�서 그냥 수행� 수 없으며, � class파�� �어서 해�한 후, 실행해 줄 무언가가 필요한�, 그것� 바로 JVM�다.
  • Thread를 완벽하게 ì§€ì›�한다.
  • JVMì�´ 알아서 ë�” ì�´ìƒ� 사용ë�˜ì§€ 않는 메모리를 check해서 systemì—� 반납해 준다.
  • 공고한 security
    (ìœì²˜ : ìž�바누리)

2. VM�란 무엇�며, �것� 씀으로� 얻는 ��과 단�� 무엇�가?
  • VMì�´ëž€? : ìž�ë°” 언어 ë°� ê·¸ 실행 환경ì�˜ 개발ìž�ì�¸ ì�¬ 마ì�´í�¬ë¡œì‹œìŠ¤í…œì¦ˆì—� ì�˜í•´ 사용ë�œ 용어ì�´ë©°, 컴파ì�¼ë�œ ìž�ë°” ë°”ì�´ë„ˆë¦¬ 코드와, 실제로 프로그램ì�˜ 명령어를 실행하는 마ì�´í�¬ë¡œ 프로세서(ë˜�는 하드웨어 플랫í�¼) ê°„ì—� ì�¸í„°íŽ˜ì�´ìФ ì—­í• ì�„ 담당하는 소프트웨어를 가리킨다.
  • 장ì � : ê°€ìƒ�머신ì�´ 한 플랫í�¼ì—�서 제공ë�˜ë©´, 어떠한 ìž�ë°” 프로그램ë�„ ê·¸ 플랫í�¼ì—�서 실행ë�  수 있다.

3. �바� 종류, 버전, 과정
  • 하드웨어 환경ì—� 따른 구분 : JSEE(Enterprise Edition), J2SE(Standard Edition), M2ME(Micro Edition)
  • 1. 애플리케ì�´ì…˜ê³¼ 애플릿
    애플릿� 브�우저� 플러그� 형�으로 실행� 수 있는 �바 프로그램� �하고 애플리케�션� 브�우저가 아닌 순수 �바 프로그램들� �합니다. 굳� 따지�면 서블릿, 빈즈, JSP 모� 애플리케�션� 해당하겠죠.

  • 2. 서블릿ì�´ë‚˜ JSP 는 J2EEì�˜ 구성ì›�들로서 서버사ì�´ë“œ 스í�¬ë¦½íЏë�¼ê³  합니다. JSPê°€ 만들어진 ì�´ìœ ê°€ ë­�ëƒ�하면, 서블릿ì�˜ 문제ì �ì�„ 해결하기 위해서ë�¼ê³ ë‚˜ 할까... 웹 프로그래ë°�ì�´ëž€ê²Œ 본질ì �으로 웹디ìž�ì�´ë„ˆì™€ì�˜ 협력ì�´ 불가피한ë�° 서블릿ì�˜ 경우ì—�는 DISPLAY 부분ì�„ 수정하기 위해서 웹디ìž�ì�´ë„ˆê°€ 접근하기 어렵다는 단ì �ì�´ 있죠.. ì�´ë•Œë¬¸ì—� JSPê°€ 만들어졌다고 알고 있습니다. JSPë�¼ëŠ” 파ì�¼ì�€ 웹 ë””ìž�ì�´ë„ˆê°€ 페ì�´ì§€ë¥¼ 수정하기 편하게 ë�˜ì–´ìžˆë‹¤ëŠ”ê²Œ 장ì �ì�´ì£ . JSPê°€ 컴파ì�¼ë�˜ë©´ 서블릿ì�´ ë�©ë‹ˆë‹¤.(ì�´ê²Œ 전부임...) 그리고 서블릿ì�´ 실행ë�˜ë©´ 실제 HTML 페ì�´ì§€ê°€ í�´ë�¼ì�´ì–¸íЏì—�게 전송ë�˜ëŠ” 것입니다.

    빈즈� 대해서 �야기 하�면 웹 서비스�는 � 테�리 내�서 �야기를 해야 하는�, 간단하게 �하�면 빈즈�는 것� 만들어진 �유는 프로그램� DISPLAY 부분과 LOGIC 부분� 분리해서 좀 � 확장성있고 유연한 시스템� 개발하고� 하는 취지�서 탄�한 것입니다.(언뜻 �해가 안� 수� 있�...)

    "추�화" �는 것과 밀접한 관련� 있습니다. 우리가 윈�우 운�체제를 쓸때 C 드��브 D 드��브를 �릭만 하면 그 안� 파�들� 다 보�죠. 하지만 실제 컴퓨터 안�서 �가 어떻게 �아가는지는 알 필요가 없습니다. 그저 아�콘� 보�면 �릭해서 그 안� 파�들� 보고 열고 삭제하거나 수정하면 �는거죠.

    빈즈가 그런 개�입니다.

    프로그래ë°�ì�„ 할때 ë�°ì�´í„°ë² ì�´ìФì—� 대한 ì ‘ê·¼ì�´ë�¼ë“ ê°€ ë˜�는 다른 시스템ì—� 대한 참조를 할때 êµ³ì�´ ê·¸ 시스템ì—� 대해서 세세하게 알필요 ì—†ì�´ 그저 외부ì—� 주어진 ì�¸í„°íŽ˜ì�´ìŠ¤ë§Œì�„ ì�´ìš©í•´ì„œ 접근하면 ë�©ë‹ˆë‹¤. (예를 들ìž�ë©´ ì–´ë–¤ 기능ì�„ ì�´ìš©í• ë•ŒëŠ” ì�´ëŸ° 메소드를 호ìœí•˜ë©´ ë�œë‹¤. ì–´ë–¤ ê°’ì�„ 저장하기 위해서는 ì�´ëŸ° 메소드로 접근하면 ë�œë‹¤ ì •ë�„). 빈즈ì—� 대한 ë‚´ìš©ì�€
    실제로 J2EE 프로그래�� 해야지만� 알 수 있�듯 합니다.
    (ìœì²˜ : 네ì�´ë²„ ì§€ì‹�ì�¸)

  • 버전과 발전과정ì—� 대해선 조사할 수 없었습니다..

4. ìž�바로 "Hello World!"를 ìœë ¥í•˜ëŠ” 프로그램 작성하기
~cpp 
  public class HelloWorldApp { 
    public static void main (String args[]) { 

             System.out.println("Hello World!"); 

     } 

  }

추가 과제

  • ì�´ 내용들ì�„ 대충ì�´ë�¼ë�„ ì�´í•´í–ˆìœ¼ë©´ ë� êº¼ 같군요. 역시 마찬가지로 실제로 프로그램ì�„ ë�Œê²Œë�” 만들지를 못한거 같군요. 한번 í•´ 보세요.
  • ìž�바가 왜 요새 ê°�ê´‘ì�„ 받는 언어가 ë�˜ì—ˆì�„까요?
  • ìž�바가 가지는 단ì �ì�´ 하나ë�„ 없군요..;; 단ì �ë�„ ê°™ì�´ 조사해 주세요. 언어가 가지는 특징ì�´ ê¼­ 장ì �ë§Œ 가지ë�¼ëŠ” 법ì�€ 없구요 ê·¸ 단ì �ì�„ 알아서 그것ì�„ 극복하여 프로그래ë°� 하는 것ë�„ 필요하답니다.


추가 과제 조사


  • ì§‘ì—�서 ìž�바가 ë�Œì•„가지 않습니다.
    eclipse 나 Editplus� 사용법� 제대로 알고 다시 코드를 작성해보겠습니다.

  • ìž�바가 ê°�광받는 언어가 ë�œ ì�´ìœ 
    • Java란 프로그램언어는 enterprise 급 기업ì�˜ web시스템ì—�서부터 ìž‘ì�€ 핸드í�°ì—� ì�´ë¥´ê¸°ê¹Œì§€ì–´ë””ë“ ì§€ 사용할 수 있다. 다시 ë§�í•´ Java를 í•  줄 알면 ì–´ëŠ� ê³³ì—�나 ì �ìš© 가능한 프로그램ì�„ 개발 í•  수 있다는 ë§�ì�´ë‹¤. ê·¸ ë¿�ë§Œ 아니ë�¼, Java로 개발ë�œ 시스템ì�€ 다른 언어로 개발ë�œ 시스템보다ë�„ 훨씬 쉽게 확장ì�´ 가능하다.

      예를 들어 Java로 �사시스템� 개발하여 운�하고 있다가, 새로운 급여 시스템� 개발하고� 한다고 가정하�. �때 Java는 다른 언어� 비해 기존 시스템과 쉽게 연�가능하며, 혹 기존 시스템� Java가 아니��� 그 �� 가능하다.

    • Java는 보안능력ì�´ 뛰어나다. 예를 들어 네트워í�¬ë¥¼ 통해 ë‚´ PC로 downloadë�œ Java로 개발ë�œ 프로그램ì�€ ì�¼ë°˜ì �으로 ê·¸ 능력ì�´ 제한ë�œë‹¤. 다시 ë§�í•´ ë°”ì�´ëŸ¬ìŠ¤ì²˜ëŸ¼ 작용할 수 없다는 ë§�ì�´ë‹¤ (ì�´ì �ì�€ MicroSoftì�˜ Active X와 비êµ�ë�œë‹¤).

      예를 들어 모 site� 접�하였�니, applet� 내 PC로 내려와 수행�었다. 만약 � applet� 내 PC� 중요한 정보를 가져가거나 지워버릴 수 있�까? �반�으로 불가능하다(물론 가능하게 하는 방법� 있다. 하지만 �반�으로는 불가능하다).

    • MicroSoft windowsì—�서 신나게 실행ë�˜ëŠ” 게임ì�´ Linuxì—�서ë�„ 잘 ë�Œê¹Œ? 아마ë�„ 답ì�€ '아니다' ì�¼ 것ì�´ë‹¤. 그러나 만약 ê·¸ 게임ì�´ Java로 제작ë�˜ì—ˆë‹¤ë©´ 답ì�€ '예' ì�´ë‹¤. 다시 ë§�í•´ Java로 개발ë�œ 프로그램ì�€ PC, Macintosh, Linux등 machineì�´ë‚˜ O/Sì—� 종ì†�ë�˜ì§€ 않는다.

      기존� Sun OS�서 Java로 개발한 �사시스템� Windows NT로 �관하고 싶다. �때 프로그램 수정없� 가능할까? Windows NT를 지�하는 JDK가 있다면 가능하다. 그러고 Windows NT를 지�하는 JDK는 있다.

    • Java를 ì�´ìš©í•´ 재사용 가능한 object를 만들 수 있다. ì�´ object는 향후 다른 프로그램내ì—�서 그냥 재사용 가능하다. 강력한 Javaì�˜ 재사용성ì�€ Javaê°€ 가지고 있는 장ì � 중ì—�서ë�„ 가장í�° 장ì �ì�´ë�¼ê³  ë§�í•  수 있다.

      예를 들어 A�는 회사�서 �사 시스템� Java로 개발하여 사용하고 있다고 가정하�. 다른 B�는 회사�서� 같� �사 시스템� 개발하고� 한다면, B회사는 A회사� �사 시스템 중 승진과 관련� �부분� 가져와 그대로 사용할 수 있다.

  • (ìœì²˜ : ìž�바누리)

    -- �바� 장�� �함� 특징들� 다른 언어� 비해 ����고 �드러지기 때문� 것 같습니다.

  • ìž�ë°”ì�˜ 단ì �
    • ìž�바는 기계어 코드를 ì§�ì ‘ 실행시키는 것ì�´ 아니고, 플랫í�¼ ë�…립ì �ì�¸ 중간 코드 형태ì�¸ ë°”ì�´íŠ¸ì½”ë“œë¥¼ ìž�ë°” ê°€ìƒ�머신ì�´ í•´ì„�하여 실행시키는 ì�¸í„°í”„리터 ë°©ì‹�ì�„ 취하고 있으므로 ëŠ�린 수행 시간ì�„ 갖습니다. ì�¼ë°˜ì �으로 C보다 í�‰ê·  8ë°° ì •ë�„ ëŠ�리고, 최대 20배까지 ëŠ�립니다.

    • ìž�ë°” 애플릿ì�„ 웹 서버로부터 웹 í�´ë�¼ì�´ì–¸íŠ¸ê°€ 다운로드하여 실행시켜 주게 ë�˜ëŠ”ë�°, ì�´ 때 네트워í�¬ ì†�ë�„ê°€ ëŠ�리다는 문제가 있습니다.

    • 모호한 언어ì � 특성, 비결정ì � ìž�ë°” ê°€ìƒ�머신, 표준화ë�œ 실시간 APIê°€ 없는 문제 때문ì—� 실시간 ì�‘ìš©ì�´ 어렵습니다.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:33
Processing time 0.1819 sec