프로그래밍 언어별 차이 (C/Java/Python)

김동완·2022년 12월 5일
1
post-thumbnail

프로그래밍 언어 차이

객체지향 vs 절차지향

절차지향

  • 순서대로 처리된다
  • 각각의 객체가 순차적으로 처리되는 것
  • 자동차를 제조할 때, 엔진 -> 차체 -> 바퀴 순서로 만들어야 하는 것
  • 서로 분리되면 안되고, 순서가 바뀌어도 안된다.
  • 모든 구성요소가 연결되어 있다보니, 하나가 고장나면 시스템 전체가 고장나게 되고 문제를 해결하려면 시스템 전체를 수리해야 한다.

객체지향

  • 자동차 부품을 각각 따로 사서 조립하여, 자동차를 만드는 것

  • 엔진은 엔진별로, 바퀴는 바퀴별로 개발하려는 것을 기능별로 모듈화하여 재활용하기 때문에, 하드웨어가 같은 기능을 중복으로 연산하지 않아도 되어, 하드웨어의 처리량을 획기적으로 줄일 수 있음.

  • 다름 사람이 만들어놓은 클래스(코드)를 가져와서 이용하는 것도 용이함

  • 해당 오류가 있는 클래스만 수정하면 되기 때문에, 유지 보수 용이

  • Multi-Theread를 통해 동시에 여러가지 작업 가능

    • 보통 1번,2번, 3번 순서대로 작업을 처리하지만, Multi Theread는 1,2,3번을 동시에 처리 가능
    • 대용량 작업을 빨리 처리하게 함

C

개념

1972년 개발

Python, Java, C++ 등이 C언어의 제어 구조를 사용하고 있다.

C언어를 먼저 배우면, 다른 언어를 배우는 것이 조금 더 쉽다.

특징

  • 고급언어임에도 저급언어의 특징을 가지고 있다.

    • 저급언어 : 컴퓨터가 이해하기 쉽고, 사람이 이해하기 어려움, 실행속도가 빠름

    • 고급언어 : 컴퓨터가 이해하기 어렵고, 사람이 배우기 쉬움, 실행속도 느림

  • 컴퓨터는 1과 0으로 이루어진 이진수를 읽기 쉬워한다. 하지만 인간은 이진수 읽기가 어렵다.

    • 컴파일이나 인터프리터 등을 이용해 기계어로 번역해야함.
    • 이러한 단점을 보완하기 위해 만들어진 고급언어가 C언어
  • 컴파일

    • 프로그래머가 작성한 코드를 기계어로 번역하는 과정
    • C언어는 저급언어의 특성을 가지고 있어, 파일의 크기는 작고 빠른 속도로 정밀하게 제어할 수 있음
  • 절차지향 프로그래밍

    • 프로그래밍의 문제를 찾아내는 디버깅이 어려움
    • 하지만 C언어는 작업 단위가 명확하게 구분되어 있어, 절자 지향 프로그램임에도 불구하고 유지보수가 비교적 편리하다
    • 작성된 프로그램은 이식성이 좋아, 프로그램을 거의 수정하지 않아도 다른 하드웨어나 운영체제에 활용할 수 있음
  • 활용

    • C언어는 시스템 자원을 관리하는 운영체제 OS 개발을 위해 만들어진 언어인 만큼 하드웨어를 제어하고 실행 효율을 높이는데 주로 쓰임
    • 자동차, 휴대폰 TV 등 전자기기에 내장되는 칩을 만드는 임베디드 시스템이나 IOT 분야에 많이 활용됨

Java

개념

1955년에 발표된 언어로 객체지향 언어

특징

  • 이식성이 높음
    • Write Once, Anyware
    • JVM이라는 동일한 환경에서 돌아가기 때문에 운영체제 종류에 상관없이 실행
    • Window,Linux,Unix와 같은 다양한 OS에서 실행되기 때문에 단순한 콘솔 프로그램, 서버용 웹 어플리케이션, 안드로이드 앱까지 다양한 프로그램 개발에 사용됨
  • 인터넷 솔루션을 제공하는데 Java가 많이 활용됨
  • 객체 단위로 개발하므로 안정성과 확장성은 좋지만 메모리 낭비가 C언어보다 크다
  • 오픈소스 라이브러리가 잘 되어있어서 개발에 용이하다.
  • 자동으로 메모리를 관리해주기 때문에 개발자가 코드에 집중할 수 있다.
  • 정적 타이핑 언어로 데이터 유형을 일일이 선언해줘야함.

JVM

  • JAVA는 바이트 코드 파일이다.
  • 운영체제에서 바로 실행되지 않고 JVM 번역을 사용하여 실행된다
  • 어떤 운영체제에서건 똑같이 프로그래밍이 가능하다.

JRE

  • JRE는 JAVA Runtime 환경을 말한다.
  • Java Code 실행을 위하 도구들로 구성된 패키지이다.

JDK

  • JDK 는 개발자들이 JVM과 JRE를 묶어놓은 자바 기반 소프트웨어를 개발하기 위한 도구 패키지이다.

Python

개념

1991년에 개발된 언어

최근 사용자가 많아지면서 세계에서 가장 많은 사람들이 사용하고 있는 언어

배우기 쉬운 언어

특징

  • 동작 타이핑 언어로 변수를 선언할 때 자료형을 지정해주지 않아도 됨

  • 고급 프로그래밍 언어

    • 사람이 이해하기 쉬운 언어로 프로그래밍 할 수 있음
  • 객체지향

  • 스크립트 언어

    • 컴파일을 통해 기계어로 번역하는 과정 없이 해석기인 인터프리터에 의해 번역과 실행이 동시에 진행
    • 실행결과를 바로 확인할 수 있고, 수정하면서 작성할 수 있음
    • 컴파일 언어보다 느린 속도를 보임
  • 컴파일이 필요 없기 때문에, 운영체제에 상관없이 사용할 수 있음

  • 수학, 통계 등 다양한 목적으로 사양할 수 있고, 빅데이터, 인공지능에 많이 사용됨

  • 오픈소스로 공개된 코드들이 많음

참고자료
profile
내가 공부한 내용들이 누군가에게 도움이 될지 몰라서 쓰는 벨로그

0개의 댓글