0.
지난 번 글에서는
프로그래밍 언어, 프로그래머에 대해서 알아보았다.
프로그래밍 언어는 정말 다양하고 특징들도 다 다른데...
그렇다면 그 수많은 프로그래밍 언어를 구별하는 기준은 무엇일까?
1.
프로그래밍 언어는 구별하는 기준은 바로
저수준(Low level)이냐 고수준(High level)이냐로 나눌 수 있다.
위 사진에서 왼쪽과 가까운 언어를 저수준 언어
오른쪽과 가까운 언어를 고수준 언어라 볼 수 있다.
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만원) |
[ 고수준 언어 + 사양 좋은 컴퓨터 ] 로 만들어진 전자레인지 => |
위 두가지 선택지 중..
나는 전자레인지 살 때 어떤 것을 선택할까?
당연히 저수준 언어 + 후진컴퓨터 로 만들어진 전자레인지를 살거다.
내가 전자레인지로 뭐 대단할 거 할 것도 아니고 좋은 컴퓨터가 들어간 전자레인지 살 필요가 뭐 있을까...
그냥 전자레인지가 잘 데우기만 하면 됐지? 안 그래?
그래서!!
그래서!!
코딩하기도 어려운 저수준 언어가 살아남은 거다.
저렴하기 때문에,
다분히 경제학적인 이유 때문인거지.
(그런데 요즘 S회사 냉장고를 같은 경우를 보면... 앞으로 또 어떻게 시장이 변할지는 장담 못하겠다... 허허)
5.
이번 글은,
프로그래밍 언어를 나누는 기준과
고수준 언어와 저수준 언어의 특징에 대해 살펴보았다.
조금은 프로그래밍 언어와 친해진 느낌이 든다. ㅎ
확실히 이렇게 글로 남기니
공부한 내용이 정리도 되고 머리에 쏙쏙 저장된 기분이 드네.
(기분만은 아니겠지..... 제발)
'IT 기본' 카테고리의 다른 글
[IT 지식] 04. 운영체제 (0) | 2022.06.15 |
---|---|
[IT 지식] 03. 컴퓨터를 구성하는 주요 부품 (0) | 2021.02.21 |
[IT 지식] 01. 프로그래밍 언어란, 개발자란 (0) | 2021.01.10 |