+) 22. 09. 11. 추가
C언어는 low level 퍼포먼스를 위해 디자인된 프로그래밍 언어이다. 즉, 기계에 가까운 언어라는 소리다.
예를 들어, 에어컨이나 스마트 TV 같은 걸 프로그래밍 할 때 주로 사용한다. 또한, C언어는 메모리를 적게 차지하고 빠르게 동작(기계어와 가깝기 때문에 컴퓨터가 빠르게 이해함.)하기 때문에 메모리 공간이 부족한 곳에 주로 사용한다.
시스템 프로그래밍이 가능하다.
운영체제를 개발할 목적으로 만든 언어이므로 하드웨어를 제어하는 시스템 프로그래밍이 가능하다.
이식성을 갖춘 프로그램을 만들 수 있다.
표준이 정의되지 않은 문법을 사용한 프로그램은 특정 컴파일러에서만 컴파일될 가능성이 높으므로 이식성을 유지하기가 힘들다. 하지만 C언어는 이식성을 갖춘 언어다.
(이식성: 기종이 다른 컴퓨터에서도 사용 가능한 프로그램을 뜻한다.)
작고 효율적이다.
C로 짜여진 코드는 속도가 빠르고 바이너리 크기가 작다. 이러한 특성 때문에 속도가 생산성보다 중요한 임베디드 혹은 모바일 계열, 시스템 프로그래밍 등에서 주로 사용된다.
절차지향 프로그래밍 언어이다.
절차지향 프로그래밍은 순차적인 처리가 중요하다.
자바는 객체지향 프로그래밍 언어로, 주로 웹 서버와 안드로이드에서 쓰이는 언어이다.
자바에는 Java API라 하는 자바 시스템 제어를 위한 명령어가 있다.
자바 프로그램은 바이트 코드 파일(.class)로 구성된다. 이 바이트 코드 파일은 운영체제에서 바로 실행할 수 없다. 자바 가상 기계(JVM)라는 번역기가 필요하다.
자바가 JVM을 사용하는 이유는 바이트 코드 파일이 다양한 운영체제에서 독립적으로 사용 가능하기 때문이다.
C는 리눅스, 윈도우, 맥 등 운영체제별로 운영체제 위에서 바로 실행되지만, 자바는 운영체제 위의 JVM에서 실행된다.
여러 운영체제에서 실행 가능하다.
윈도우에서 개발된 프로그램을 수정하지 않고도 리눅스, 맥에서 바로 실행할 수 있다.
객체지향 프로그래밍 언어이다.
자바는 객체지향 프로그래밍 언어 중 하나로, 객체를 만들고 이 객체들을 연결하여 더 큰 프로그램을 완성한다.
메모리를 자동으로 관리해준다.
자바가 메모리(RAM)를 자동으로 관리해주기 때문에 개발자는 메모리를 관리하는 수고를 덜고, 개발에만 집중할 수 있게 됐다.
C언어 | Java | |
---|---|---|
절차지향 VS 객체지향 | 절차지향 언어 | 객체지향 언어 |
처리 속도 | 상대적으로 빠름 | 상대적으로 느림 |
유지보수 | 어려움 | 용이함 |
용도 | 임베디드 또는 운영체제 | 응용 SW, 안드로이드 앱 등 |
안정성 & 확장성 | 상대적으로 낮음 | 상대적으로 높음 |
참고 자료
혼공, “C언어와 Java의 차이점을 표 한 장으로 정리하겠습니다.”, https://hongong.hanbit.co.kr/c언어-java-차이점-정리표/
노마드 코더 Nomad Coders, “어떤 언어부터 배워야할까? 5개 언어. 5분 개념탑재.”, https://youtu.be/p_v_js0mxVc