본문 바로가기
공부 및 교육/정보처리기사 실기 이론

C언어와 JAVA 자바언어 - 특징, 차이점, 비교

by whooops 2023. 3. 6.
반응형

C언어란?

개인용 컴퓨터가 보급되기 이전인 1972년에는

우리가 널리 사용하는 윈도우나 맥 운영체제가 없었습니다.

 

컴퓨터 산업 초기에는 주로 유닉스(UNIX)라는 운영체제를 사용했는데,

유닉스의 가장 큰 문제점은

하드웨어를 교체하면 프로그램을 새로 개발해야 하는 문제점이 있었습니다.

굉장히 귀찮고 어려운 일이였습니다.

이런 불편함을 해결하고자 데니스 리치와 켄 톰슨은 B언어를 발전시켜 C언어를 만들게 되었습니다.

C언어가 프로그래밍의 기초로 불리는데

컴퓨터의 작동 기본 원리를 아는데 큰 도움이 되기 때문입니다.

 

 

◆C언어의 특징

  1. 시스템 프로그래밍이 가능하다.
  2. 이식성을 갖춘 프로그램을 만들 수 있다.
  3. 작고 효율적이다.
  4. 절차지향 프로그래밍 언어이다.

 

1. 시스템 프로그래밍이 가능하다.

운영체제를 개발할 목적으로 만든 언어이기 때문에 하드웨어를 제어하는 시스템 프로그래밍이 가능합니다.

 

2. 이식성을 갖춘 프로그램을 만들 수 있다.

표준이 정의되지 않은 문법을 사용한 프로그램은 특정 컴파일러에서만 작동할 가능성이 높아서 이식성을 유지하기 힘듭니다.

반면, C언어는 이식성을 갖춘 언어로 기종이 다른 컴퓨터에서도 사용할 수 있습니다.

표준을 지켜 만들면 컴퓨터 종류가 바뀌더라도 같은 프로그램을 계속해서 활용할 수 있습니다.

 

 

3. 작고 효율적이다.

C언어로 짜인 코드는 속도가 빠르고, 바이너리 크기가 작습니다.

생산성보다 속도를 더 중요 시 하는 임베디드, 모바일 계열, 시스템 프로그래밍 등에서 주로 사용됩니다.

수정사항을 확인하려면 컴파일이 필요합니다.

디버깅이 어려워 학습자가 어려워하기도 합니다.

 

 

4. C언어는 절차지향 프로그래밍 언어이다.

순차적인 처리가 중요시되며, 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법입니다.

 

C언어와 JAVA 자바언어 - 특징, 차이점, 비교
C언어와 JAVA 자바언어 - 특징, 차이점, 비교

 

 

JAVA언어란?

JAVA는 객체지향 프로그래밍 언어로 C/C++에 비해 간략하고 쉽고, 네트워크 기능의 구현이 용이합니다.

 

자바는 1991년 제임스 고슬링을 포함한 썬 마이크로 시스템즈 연구원들에 의해 개발되어

현재는 오라클에서 관리하고 있는 언어입니다.

자바는 전 세계 다양한 분야에서 사용되는 프로그래밍 언어로 2001년부터 가장 많이 쓰이는 언어입니다.

 

개인용보다 산업계에서 주로 쓰이던 자바는 안드로이드 폰의 등장으로

우리가 늘 접하는 스마트폰의 앱 개발하는 데에 사용됩니다.

 

스마트폰 앱뿐만 아니라, 웹사이트, 데스크톱 애플리케이션 개발에 가장 보편적으로 사용되고 있습니다.

 

JAVA에는 Java API라 불리는 자바시스템 제어를 위한 명령어가 있습니다.

무료로 배포된 자바 개발도구(JDK)와 Java API를 활용하면 강력한 기능의 자바 프로그램을 작성할 수 있습니다.

 

 

▷자바개발도구 JVM : 자바 인터프리터

자바 프로그램은 완전한 기계어가 아닌 바이트 코드파일(. class)로 구성됩니다.

이런 바이트 코드 파일은 운영체제에서 바로 실행할 수 없기 때문에,

자바 가상 기계(JVM)이라는 번역기가 필요합니다.

 

바이트 코드 파일은 다양한 운영체제에서 독립적으로 사용이 가능합니다.

어떤 개발자가 윈도우 운영체제에서 자바로 프로그램을 개발한다고 가정했을 때,

개발이 완료되었든 미완료된 프로그램이든 맥, 리눅스로 옮겨서도 바로 실행이 가능합니다.

(운영체제나 하드웨어 플랫폼에 따라 변경함 없이 그대로 실행 가능)

객체지향언어인 C++언어의 객체 지향적인 장점도 살리면서 분산 환경을 지원해 더욱 효율적인 언어입니다.

 

 

◆JAVA언어의 특징

  1. 여러 운영체제에서 실행 가능하다.
  2. 메모리 자동정리
  3. 무료 라이브러리가 풍부하다.
  4. 객체지향 프로그래밍 언어이다.
  5. 보안에 강하다.

 

1. 여러 운영체제에서 실행이 가능하다.

JAVA로 작성된 프로그램은 JVM위에서 실행되기 때문에 운영체제를 가리지 않습니다.

따라서 다른 운영체제에서 개발된 프로그램을 수정하지 않고 또 다른 운영체제에서 실행할 수 있습니다.

[예 : 윈도우에서 개발된 프로그램을 맥이나 리눅스에서도 실행 가능합니다.]

 

2. 메모리 자동정리

자바는 메모리(RAM)를 자동 관리하기 때문에,

개발자는 메모리를 관리하는 수고를 덜고, 핵심 기능인 코드 작성에 집중할 수 있습니다.

 

 

3. 무료 라이브러리가 풍부합니다.

무료로 다운로드해서 사용할 수 있는 오픈 소스 라이브러리가 풍부하기 때문에 프로그램 개발 기간을 단축합니다.

GUI설계, 데이터베이스 접근, 다중 스레드, 네트워크 프로그래밍 등 모두 표준 라이브러리에서 지원합니다.

 

 

4. 객체지향 프로그래밍 언어이다.

절차지향 언어인 C언어와 다르게 JAVA는 객체지향 프로그래밍 언어 중 하나로,

객체(부품)를 만들고, 이 객체들을 서로 연결해 더 큰 프로그램을 완성합니다.

 

 

5. 보안에 강하다.

자바는 처음부터 네트워크 분산 처리 환경에서 사용하기 위해 디자인된 언어입니다.

네트워크 환경은 다른 환경보다 보안의 측면이 강조되는 환경인 만큼 자바는 보안에 중점을 두고 있습니다.

자바는 바이러스가 침투하지 못하는 구조를 가지고 메모리에서 데이터 접근을 제한할 수 있습니다.

접근을 허용하지 않으면, 애플리케이션의 데이터 구조 또는 데이터에 대한 접근은 불가능합니다.

 

 

 

 

 

◆C언어&JAVA의 차이점

  C언어 JAVA 자바
성격 절차지향 언어(순차적으로 진행) 객체지향 언어(설계적 측면이 강조)
개발 환경 비주얼 스튜디오 Visual Studio 이클립스 Eclipse
처리 속도 상대적으로 빠름 상대적으로 느림
유지 보수 어려움, 꼬이면 순차적으로 수정 용이함, 해당 객체만 찾아서 수정 가능
용도 임베디드/운영체제처럼 속도나 용량 등에서 최적화가 필요한 곳 운영체제 상관없이 실행되는 응용SW, 안드로이드 앱 등에서 사용
안정성&확장성 상대적으로 낮음 상대적으로 높음
메모리 제어 메모리를 직접 조절, 메모리 낭비 적음 각각의 클래스로 인해 메모리 낭비 높음

 

*절차지향은 데이터 중심으로 함수를 구현하는 것이며,

객체지향은 기능 중심으로 메서드를 구현하는 것입니다.

절차지향과 객체지향은 서로 반대의 개념이라고 볼 수 없습니다.

 

 

 

 

 

 

소프트웨어 버전 등록, 소프트웨어 형상관리(SCM)

소프트웨어 패키징의 형상 관리(SCM; Software Configuration Management) - 형상 관리(SCM)는 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동이다. - 형상 관리는 소프트웨어 개

whooops.tistory.com

 

 

빌드 자동화 도구 - Jenkins, Gradle

빌드 자동화 도구 - 빌드 자동화 도구는 빌드를 포함하여 테스트 및 배포를 자동화하는 도구 - 애자일과 같은 지속적인 통합(Continuous Integration) 개발 환경에서 유용하게 활용된다. - 빌드 자동화

whooops.tistory.com

 

 

수학적 산정 기법 - COCOMO 모형, Putnam 모형, 기능점수(FP) 모형

수학적 산정 기법 - 수학적 산정 기법은 상향식 비용 산정 기법으로, 경험적 추정 모형, 실험적 추정 모형이라고도 합니다. - 수학적 산정 기법은 개발 비용 산정의 자동화를 목표로 합니다. - 비

whooops.tistory.com

 

반응형

댓글