mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Monday, October 02, 2006

Java(자바)와 C++의 다른 점, 장단점, 차이/차이점 - Java C++ Difference


C++


* 실제 컴퓨터 하드웨어에서 실행됩니다. 즉, "네이티브 코드"를 만들어 냅니다. 그래서 속도가 빠릅니다.

* 컴파일된 exe 파일을 다른 OS에서 실행시킬 수 없습니다. 또한, 윈도우용 C++ 컴파일러로 개발된 소스 코드를 리눅스/맥용으로 개조하려면 대단히 어렵습니다.

* 컴파일러마다 C++ 문법과 설정이 조금씩 다르고, 운영체제의 종류에 따라서도 상당히 다릅니다. 정수 데이터형 int 는, 16비트OS에서는 16비트이고, 32비트OS에서는 32비트이고, 64비트OS에서는 컴파일러를 만든 사람의 마음에 따라 32비트일 수도 있고 64비트일 수도 있습니다.

* 단독 실행 (stand-alone) 이 가능합니다. 컴파일된 exe 파일 하나로 실행이 가능합니다. 또는 몇 개의 DLL 파일만 있으면 됩니다.

* 윈도우에서 사용되는 대부분의 프로그램은 "Visial C++"로 제작됩니다.

* "속도"를 가장 중요시하는 언어입니다. 안전이나 보안에 대한 책임은 각 프로그래머들에게 있습니다.

* 문법이 상당히 복잡하고 어렵습니다. 포인터 등의 복잡한 문제가 많기 때문에, 개발 속도가 아주 느리고 버그도 많이 생깁니다. 그래서 판매용 프로그램이 아닌, 회사 내부적으로 사용할 프로그램 개발에는 별로 적합하지 않습니다.

* 정규식을 지원하지 않기에 문자열 조작이 어렵습니다. 다행히 외부 라이브러리를 설치하면 정규식을 사용할 수 있습니다. (▶▶ [정규식] C++에서 정규표현식 구현 라이브러리 - Regex++ 참고)

* 웹브라우저에서 C++ 로 만들어진 프로그램을 실행시킬 수 없습니다. 물론 MS의 Visual C++에서는, ActiveX 라는 방법을 제공하는데, 보안에 아주 취약하고 윈도우가 아닌 운영체제에서는 작동하지 않는 문제가 있습니다.

* 컴파일러가 대부분 특정 OS에 최적화되어 있어, OS 고유의 기능에 쉽게 접근할 수 있습니다. Visual C++로 MS윈도우의 모든 기능을 100% 활용할 수 있습니다.

* C++ 컴파일러는 대부분 상용 프로그램입니다. 무료 버전도 있지만 기능 제약이 많은 편입니다. (MFC 프로그래밍이 안된다든지... ▶▶ [희소식] 비주얼 스튜디오 무료화 / Visual C++ 2005 Express 등등 참고)

* 상용 프로그램 즉 판매용 프로그램이나 3D게임 제작에는, 비주얼C++ 가 절대적으로 유리합니다.




Java(자바)


* 가상 머신에서 실행됩니다. 그래서 속도가 느린 편입니다. VMware(VM웨어) 같은 본격적인 가상머신이 아니라, 이론적인 가상머신입니다. 사용자의 눈에는 보이지 않습니다.

* OS의 종류를 거의 가리지 않습니다. 윈도우에서 컴파일한 class 파일을 리눅스/유닉스(솔라리스)/맥(MAC) 등에서 수정 없이 실행시킬 수 있습니다. 왜냐하면 실제 하드웨어가 아닌 가상머신 속에서 간접적으로 실행되기 때문입니다.

* C++와 달리, 자바 컴파일러는 사실상 1종류밖에 없기에, 문법의 호환성 문제가 없습니다. 그리고 32비트OS에서 실행하든 64비트OS에서 실행하든 똑같습니다. 어떤 운영체제에서든 int는 항상 32비트로 고정되어 있습니다. (물론 자바 컴파일러 버전에 따라서 문법에 차이는 있지만 큰 문제는 되지 않습니다.)

* 단독 실행이 되지 않고, 반드시 컴퓨터에 수십 메가 분량의, 자바 런타임 즉 JRE 가 설치되어 있어야, 자바 프로그램이 실행됩니다. (▶▶ [Java] 자바 런타임과 JDK(개발도구; 컴파일러) 파일 다운로드하는 곳은? / 자바의 종류는? [QnA] 참고)

* 윈도우에서 사용되는 유명 프로그램 중에 자바로 만들어진 것은 거의 없습니다. 주로 회사/연구소 내부에서 사용합니다. 리눅스에서도 그리 많이 쓰이지 않습니다. 리눅스에서는 대부분 C를 사용합니다. C++ 가 아닌 그냥 C.

* "보안/안전/호환성"을 가장 중요시하는 언어입니다.

* 문법이 C++ 에 비해 간단하고 쉬운 편입니다. 포인터가 없기 때문에 배우기 쉽고 버그가 생길 가능성도 낮은 편입니다. 개발 속도가 빠릅니다.

* 자바 1.4 버전부터는 정규식을 기본적으로 지원하기에 문자열 조작이 아주 간편합니다. (▶▶ 정규식 / 정규표현식 (Regular Expressions; Regex) 이란? 참고) 또한 문자열 조작 메소드(함수)도 기본적으로 많이 지원됩니다.

* 웹브라우저에서 애플릿 형태로, 자바 프로그램을 실행할 수도 있습니다. 운영체제(OS)의 종류를 가리지 않기 때문에 가능한 일입니다. 그러나 자바 애플릿은 제약이 많아서, 방문객의 하드 디스크에 접근하는 등의 일은 할 수 없습니다. 브라우저 안에서의 작업만 가능합니다.

* OS 고유의 기능을 사용하기 힘듭니다. 모든 종류의 OS를, 특히 유닉스를 기준으로 만들어져 있기에, MS윈도우만의 독자적인 기능을 활용하기 힘듭니다.

* 자바 컴파일러가 무료로 제공되기에, 부담 없이 자바 프로그래밍을 시작할 수 있습니다. (▶▶ [Java] 자바 런타임과 JDK(개발도구; 컴파일러) 파일 다운로드하는 곳은? / 자바의 종류는? [QnA] 참고)

* 자바는 문법적으로 통일되어 있고, 가상머신에서 안정적으로 실행되기에, 수학/과학/공학적 계산에 아주 적합합니다. 다만 소인수 분해나, 암호 해독 등, 최대한의 연산 속도가 필요한 계산에는 적합하지 않습니다.




tag: cpp
C언어 | C/C++ (Visual C++)
tag: java
자바 | Java

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top