프로그래밍 언어의 스펙트럼

나블리·2021년 3월 22일
2

프로그래밍 언어 스펙트럼이란

  • 프로그래밍 언어를 분류하는 기준으로 객체 지향 지원 여부와 코드에 자료형 유무가 있다. 이외에도 컴퓨터와 가까운지, 인간에 가까운지에 따라 분류가 가능하다. 이 기준은 딱 떨어진다기 보다는 언어에 따라 상대적인 개념이라 할 수 있다. 위 사진 스펙트럼과 같이 표현이 된다.
  • 인간과 가까운 언어를 고수준 언어(High-level)라 하고 컴퓨터와 가까운 언어를 저수준 언어(Low-level)언어라 한다. 저수준 언어는 사람이 이해하기 어렵고 반대로 고수준 언어는 컴퓨터가 이해하기 어렵다.

저수준 언어에 해당되는 어셈블리어는 다음 사진과 같이 이해하기가 힘들다.

어셈블리어보다 더 저수준 언어에 가까운 언어는 Machine Code이다. 우리가 익히 알고 있는 0과 1의 이진수로 이루어진 언어이다.

각각 언어의 스펙트럼이 가진 장단점

  • 고수준 언어의 장점은 프로그래머들이 좀 더 필요한 기능과 논리에 대해 집중할 수 있다. 코드를 이해하기도 수정하기도 쉽다. 최근 나오는 언어들은 추상화가 높은 편이라 할 수 있다.
  • 고수준 언어의 단점은 컴퓨터에게 너무 많은 일들을 맡기게 된다. 컴퓨터가 여러가지 문제에 대해 처리하느라 과부하가 일어나거나 처리 속도가 느려진다.
  • 저수준 언어의 단점은 신경쓸게 많고 코드 작성과 관리가 어렵다.
  • 저수준 언어의 장점은 컴퓨터의 입장에서는 이해가 빠르므로 성능이 좋지 않은 컴퓨터도 빠른 업무 처리 속도를 보여준다. 이러한 저수준 언어의 효율성은 스마트 가전에서 빛을 본다. 제한적인 사용으로 최대한의 실행 속도와 효율을 높일 수 있기 때문이다.

프로그래밍 언어의 세 부류

프로그래밍 언어를 나누는 세 분류가 있다. 자세한 언어, 체계적인 언어, 쉬운 언어로 세 분류를 나누었다.

1. 자세한 언어

  • 자세한 언어로는 저수준 언어인 어셈블리어와 C언어를 예로 들 수 있다. 객체 지향을 지원하지 않고 컴퓨터적 구조를 따릅니다. 사람들이 작성하기 어려운만큼 컴퓨터가 실행하기에는 좋다.

  • 자세한 언어는 속도와 효율을 요구하는 스마트 기기에서 주로 사용되고 있다. 칩이라는 아주 작은 공간에서 빠르게 동작해야 하기 때문이다. 이러한 시스템을 임베디드라고 부른다. IoT는 이러한 임베디드 시스템을 통해 스마트홈을 구현하거나 기계들 사이의 통신을 가능케 하는 기술이다.

  • 임베디드 외에도 실시간을 요구하는 채팅 프로그램이나, 주식 프로그램, 스트리밍 서비스에서도 많이 활용되고 있습니다.

  • 장점은 프로그램을 만들기만 하면 실행 속도가 매우 빠르고 성능이 좋지 않은 컴퓨터에 적용하기 좋다는 것이고 단점은 코드를 작성하거나 고치는 게 어렵다는 것입니다.

2. 체계적인 언어

  • 자세한 언어와 마찬가지로 Static Typing언어 이지만 객체 지향을 지원한다는 부분에서 차이가 있다. Java와 C++이 대표적인 예이다. 체계가 잘 잡혀있어 여러 사람이 협력하기에 가장 적합한 언어이며 오류가 적어 규모가 큰 프로젝트에서 잘 사용된다.

  • 체계적인 언어의 장점은 체계성과 협업이 중요한, 규모가 큰 프로젝트에 적합하며 객체 지향 개념이 적용되어 자세한 언어보다는 유지보수가 편리하다는 것입니다. 단점은 여전히 문법이 어려운 편이며 코드를 작성하는 시간보다 체계적으로 설계하는 데 시간이 오래 걸릴 수 있다는 것입니다.

    특히, 기업에서는 Java를 매우 선호합니다. Google, Ebay, Uber 등 이름 난 회사들에서 Java를 활발히 사용하고 있습니다. 많은 이들이 취업을 위해 Java를 선택하는 이유이다.

3. 쉬운 언어

  • 쉬운 언어는 객체 지향 개념이 적용된 Dynamic Typing언어를 말하며 비전공자도 쉽게 배우고 사용할 수 있는 PythonRuby가 이에 속한다.
  • 쉬운 언어는 간결하고 짧은 코드를 선호하여 문법이 매우 간편하다. 코드 작성이 빠른만큼 변화가 잦은 분야에서 활용이 되고 있고 데이터 사이언스나 업무 자동화와 같이 개인 규모의 프로젝트에서도 많이 선호되고 있다.
  • 쉬운 언어의 장점은 진입장벽이 낮아 배우기 쉽고 코드를 이해하고 수정하기나 쉬우며 작성이 빠르다는 것이다. 단점은 컴퓨터의 실행 속도가 느리고 성능 제약이 심한 곳에서나 빠른 처리 속도를 요구하는 곳에서는 적합하지 않다. 또, 문법에 제약이 없기 때문에 실수를 방지하기가 어려워 여러 사람이 협업하는 프로젝트에도 적절하지 않다.

프로그래밍 언어의 흐름

  • 컴퓨터의 성능이 좋지 않았던 시기에 자세한 언어들이 등장했다. 이후, 협업과 생산성 향상의 요구에 따라 객체 지향 프로그래밍이 대세로 떠오르면서 체계적인 언어들이 등장했고 프로그래밍의 진입장벽이 낮아진 현대에는 쉬운 언어가 인기를 끌고 있다.

이것은 어디까지나 흐름과 대세에 관한 이야기일뿐, 여전히 필요한 분야에서는 C와 같은 자세한 언어가 활발히 쓰이고 있다. 체계적인 언어 중 하나인 Kotlin은 최근에 나온 언어이다.

특수 목적 언어


R은 주로 통계에 관한 소프트웨어와 데이터 분석, 시각화에 사용되는 언어이다. 통계와 빅데이터 분석에 필요한 기능에 특화되어있기 때문이다.

SQL은 데이터베이스를 관리하기 위한 목적으로 나온 언어이다. 데이터를 모아둔 창고인 데이터베이스에서 원하는 데이터를 추출하거나 데이터 서버를 구축하고 운영하는데 사용되고 있다.

HTML과 CSS는 웹페이지를 만들 때 사용되는 언어이다. HTML이 웹페이지의 구조와 레이아웃을 담당한다면 CSS는 웹페이지의 시각적 표현을 담당한다. 이에 Java Script를 더하여 웹페이지가 사용자와 상호작용할 수 있도록 만든다.

이외에 교육용 프로그래밍 언어 Scratch 등도 있다.

0개의 댓글