Java

[ Java ] Java, Python, C 특징 및 차이점

walwal_ 2023. 12. 23. 00:35

 

 

 

Java의 특징

 

 

 

Java 는 1995년에 개발되었습니다.

 

객체 지향 언어(OOP) 로 기능 또는 역할에 따라 모듈화 하여 관리합니다. 

→ 가독성, 유지보수성, 재 사용성이 좋습니다.

 

플랫폼 독립적 언어입니다.

운영체제에 관계없이 JVM 환경에서 실행됩니다.

 운영체제에 맞춰 코드를 재 작성할 필요가 없습니다.

 

다양한 라이브러리와 프레임워크가 존재합니다.

빠른 개발이 가능하며 생산성이 증가됩니다.

 

Multi Thread를 지원합니다.

  동시에 여러 작업이 가능해 분산 컴퓨팅에 유용합니다.

 

보안성이 높습니다.

자바 실행 시 코드 검증을 통해 악성, 바이러스 실행을 방지합니다.

 

메모리 관리를 가비지 컬렉터가 맡아 합니다.

가비지 컬렉터를 사용하여 메모리 관리를 자동으로 수행합니다. 개발자는 메모리 관리에 신경 쓰지 않아도 됩니다.

 

타입이 강요됩니다.

강한 타입 체계는 코드의 안전성과 안정성을 향상시킵니다.

 

 

 

Python의 특징

 

 

 

Python은 1991년 개발되었습니다.

 

플랫폼 독립적 언어입니다.

 

다양한 라이브러리와 프레임워크가 존재합니다.

 

메모리 관리를 가비지 컬렉터가 맡아 합니다.

 가비지 컬렉터를 사용하여 메모리 관리를 자동으로 수행합니다. 개발자는 메모리 관리에 신경 쓰지 않아도 됩니다.

 

스크립트 언어입니다.

컴파일 없이 인터프리터에 의해 코드 번역과 실행이 진행됩니다. 때문에 컴파일 언어보다 느리다는 특성이 있습니다.

 

타입이 강요되지 않습니다.

약한 타입 체계는 코드의 간결성과 편리성을 향상시킵니다. 그러나, 코드의 안전성과 안정성에 대한 문제가 발생할 수 있습니다.

 

 

 

C의 특징

 

 

 

C는 1972년에 개발되었습니다. 많은 프로그래밍 언어가 C언어의 제어구조와 수식을 따릅니다.

 

절차지향 프로그래밍 언어입니다.

실행 순서에 따라 개발하기 때문에 실행이 빠릅니다.

 

C언어는 기계가 이해하기 쉬운 언어입니다.

→ 저수준 언어로 하드웨어에 직접 접근 가능합니다. 그렇기 때문에 하드웨어에 최적화된 코드를 작성할 수 있어 높은 성능을 가집니다.

 

메모리 관리를 개발자가 직접 합니다.

개발자가 직접 메모리를 할당하고 해제해야 합니다.

 

플랫폼 의존적입니다.

다양한 플랫폼에서 실행가능하지만, 플랫폼에 따라 코드를 재 작성해야합니다.

 

타입이 강요되지 않습니다.

 약한 타입 체계는 코드의 간결성과 편리성을 향상시킵니다. 그러나, 코드의 안전성과 안정성에 대한 문제가 발생할 수 있습니다.

 

 

 

 

 

정리
  Java Python C
프로그래밍 패러다임 객체 지향 언어 다중 패러다임
(객체, 절차, 함수형)
절차 지향 언어
실행 방법 컴파일 언어 인터프리터 언어 컴파일 언어
플랫폼 독립성 독립적 독립적 의존적
메모리 관리 GC에 의해 관리 GC에 의해 관리  개발자에 의해 관리
문법 정적 타입 언어 (강타입) 동적 타입 언어 (타입강요 없음) 동적 타입 언어 (타입강요 업음)
활용 대형 소프트웨어, 웹 앱 등 웹 앱, 데이터 분석, 인공지능 등 하드웨어, 운영체제, 시스템 개발 등