프로그래밍 언어 차이
객체지향 vs 절차지향
절차지향
- 순서대로 처리된다
- 각각의 객체가 순차적으로 처리되는 것
- 자동차를 제조할 때, 엔진 -> 차체 -> 바퀴 순서로 만들어야 하는 것
- 서로 분리되면 안되고, 순서가 바뀌어도 안된다.
- 모든 구성요소가 연결되어 있다보니, 하나가 고장나면 시스템 전체가 고장나게 되고 문제를 해결하려면 시스템 전체를 수리해야 한다.
객체지향
-
자동차 부품을 각각 따로 사서 조립하여, 자동차를 만드는 것
-
엔진은 엔진별로, 바퀴는 바퀴별로 개발하려는 것을 기능별로 모듈화하여 재활용하기 때문에, 하드웨어가 같은 기능을 중복으로 연산하지 않아도 되어, 하드웨어의 처리량을 획기적으로 줄일 수 있음.
-
다름 사람이 만들어놓은 클래스(코드)를 가져와서 이용하는 것도 용이함
-
해당 오류가 있는 클래스만 수정하면 되기 때문에, 유지 보수 용이
-
Multi-Theread를 통해 동시에 여러가지 작업 가능
- 보통 1번,2번, 3번 순서대로 작업을 처리하지만, Multi Theread는 1,2,3번을 동시에 처리 가능
- 대용량 작업을 빨리 처리하게 함
C
개념
1972년 개발
Python, Java, C++ 등이 C언어의 제어 구조를 사용하고 있다.
C언어를 먼저 배우면, 다른 언어를 배우는 것이 조금 더 쉽다.
특징
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년에 개발된 언어
최근 사용자가 많아지면서 세계에서 가장 많은 사람들이 사용하고 있는 언어
배우기 쉬운 언어
특징
-
동작 타이핑 언어로 변수를 선언할 때 자료형을 지정해주지 않아도 됨
-
고급 프로그래밍 언어
- 사람이 이해하기 쉬운 언어로 프로그래밍 할 수 있음
-
객체지향
-
스크립트 언어
- 컴파일을 통해 기계어로 번역하는 과정 없이 해석기인 인터프리터에 의해 번역과 실행이 동시에 진행
- 실행결과를 바로 확인할 수 있고, 수정하면서 작성할 수 있음
- 컴파일 언어보다 느린 속도를 보임
-
컴파일이 필요 없기 때문에, 운영체제에 상관없이 사용할 수 있음
-
수학, 통계 등 다양한 목적으로 사양할 수 있고, 빅데이터, 인공지능에 많이 사용됨
-
오픈소스로 공개된 코드들이 많음
참고자료