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.0241 sec