본문 바로가기

IT 기본

[IT 지식] 02.프로그래밍 언어를 나누는 기준

0.

지난 번 글에서는

프로그래밍 언어, 프로그래머에 대해서 알아보았다.

프로그래밍 언어는 정말 다양하고 특징들도 다 다른데...

그렇다면 그 수많은 프로그래밍 언어를 구별하는 기준은 무엇일까?

 

 

1.

프로그래밍 언어는 구별하는 기준은 바로

저수준(Low level)이냐 고수준(High level)이냐로 나눌 수 있다.

ⓒ http://a.files.bbci.co.uk/bam/live/content/znmb87h/large

위 사진에서 왼쪽과 가까운 언어를 저수준 언어

오른쪽과 가까운 언어를 고수준 언어라 볼 수 있다.

 

 

2.

그래서 저수준 언어, 고수준 언어가 뭐가 다른데? 

도표를 만들어 간단하게 정리해보았다.

  저수준 언어(low level) 고수준 언어(high level)
특징

1) 인간보다 컴퓨터와 친한 언어, 그래서 문서를 작성하고 수정하는 것이 어렵다

 

2) 컴퓨터 사양이 좋지 않아도 저수준 언어로 작성한 명령은 빠르게 실행된다.(처리 속도가 빠름)

1) 인간의 언어(영어)를 닮아(=인간과 친하다) 문서를 작성하고 수정하는 것이 쉽다

 

2) 컴퓨터 사양이 좋지 않으면 고수준 언어로 작성한 문서 실행은 느리게 실행된다.(처리 속도가 느림)

종류

어셈블리어, C언어 · · ·

(위 언어는 오른쪽 고수준 언어보다 상대적으로 저수준 언어라는 의미입니다!)

파이썬, 자바, 루비 · · ·
사용

컴퓨터가 메인이 아닌 소프트웨어가 들어간 모든 것들

ex) 에어컨, 세탁기, 선풍기, 전자레인지, 청소기 등등

다양한 애플리케이션

ex) 네이버 애플리케이션, 유튜브 어플 등등



3.

저수준 언어와 고수준 언어의 첫 번째 특징에 대해서 조금 더 알아보자!

그전에 아래 영상 먼저 (약 2분)

www.youtube.com/watch?v=I5cq54MFQCo

 

만약 내가 땅콩잼 샌드위치 만드는 방법을 문서로 작성해야 하는 개발자라고 가정해보자.

저수준 언어로 문서를 작성한다면

고수준 언어로 문서를 작성한다

1. 땅콩잼, 나이프, 빵 2개, 접시를 준비해라

2. 땅콩잼 뚜껑을 열어라

3. 나이프를 땅콩잼 통안에 넣어서 땅콩잼을 떠라

4. 빵 하나를 집어라

5. 나이프에 묻은 땅콩잼을 빵의 넓적한 면에 펴 발라라

.

.

.

1. 땅콩잼 샌드위치 만들어라

 

 

 

 

 

 

이렇게 자세하고 꼼꼼하게 적어야 할 것입니다.

(그래서 저수준 언어로 문서를 작성하는 것이 어렵답니다!)

이렇게 (저수준 언어에 비해 상대적으로) 간단하게 적어도 될 것입니다.

 

물론 위의 표는 좀 과장해서 표현한 것이지만..

고수준 언어로 실제 땅콩잼 만드는 문서를 작성한다면 위에 예시보다 훨씬 더 자세하게 작성해야지..

 

그렇지만 분명한 것은

고수준 언어는 인간 친화적인 언어로 컴퓨터에게 일을 시킬 문서를 작성할 때 저수준 언어만큼 자세하게 작성할 필요는 없다는 것!!

 

 

4.

이쯤에서 의문이 든다.

 

고수준 언어가 배우기도 쉽고 문서 작성, 수정도 쉬운데 왜 어려운 저수준 언어를 써야만 할까?

왜 저수준 언어는 죽지 않고 사람들이 계속 쓰는 걸까?

 

왜냐하면 저수준 언어로 코드를 작성하면 컴퓨터가 후져도 돌아가기 때문이다!

전자레인지가 돌아가는 가는 프로그램이 고수준 언어로 만들어진다면?!!! 

[ 저수준 언어 + 후진 컴퓨터 ] 로 만들어진 전자레인지

=> 가격이 저렴함(예를 들어 5만원)

[ 고수준 언어 + 사양 좋은 컴퓨터 ] 로 만들어진 전자레인지

=> 가격이 X 비쌈(예를 들어 45만원)

위 두가지 선택지 중..

나는 전자레인지 살 때 어떤 것을 선택할까?

 

당연히 저수준 언어 + 후진컴퓨터 로 만들어진 전자레인지를 살거다.

내가 전자레인지로 뭐 대단할 거 할 것도 아니고 좋은 컴퓨터가 들어간 전자레인지 살 필요가 뭐 있을까...

그냥 전자레인지가 잘 데우기만 하면 됐지? 안 그래?

 

그래서!!

그래서!!

코딩하기도 어려운 저수준 언어가 살아남은 거다.

저렴하기 때문에,

다분히 경제학적인 이유 때문인거지.

(그런데 요즘 S회사 냉장고를 같은 경우를 보면... 앞으로 또 어떻게 시장이 변할지는 장담 못하겠다... 허허)

 

 

5.

이번 글은,

프로그래밍 언어를 나누는 기준

고수준 언어와 저수준 언어의 특징에 대해 살펴보았다.

조금은 프로그래밍 언어와 친해진 느낌이 든다. ㅎ

 

확실히 이렇게 글로 남기니

공부한 내용이 정리도 되고 머리에 쏙쏙 저장된 기분이 드네.

(기분만은 아니겠지..... 제발)