프로그래밍 언어 분류별 개념 정리

ilya pavlov OqtafYT5kTw uns

프로그래밍 언어는, 사람이 컴퓨터에게 명령을 내려 특정 작업을 수행하게 한다고 할 때 컴퓨터가 이를 알아듣고 실행할 수 있도록 하기 위해 만들어진 언어입니다. 한마디로, 사람과 컴퓨터의 의사소통을 위해 만들어진 언어라 할 수 있습니다. 각 나라의 언어들이 그렇듯, 프로그래밍 언어도 각각의 언어마다 고유의 용어, 문법, 용도, 특징, 장단점 등을 갖고 있습니다. 다양한 프로그래밍 언어 분류 기준에 따라 그 개념을 정리해보았습니다.

프로그래밍 언어의 주요 구성 요소


프로그래밍 언어들은 기본적으로 다음과 같은 특징을 갖습니다.

  1. 문법론 Syntax: 해당 언어의 구문 작성법을 정리해놓은 규칙 모음입니다. 구문은 유효한 명령문, 표현식 및 명령 구조와 형식 등을 정의합니다.
  2. 의미론 Semantics: 언어 내 요소들의 배치에 따라 서로 다른 의미로 해석될 수 있다는 전제로, 컴퓨터가 명령을 해석하고 실행하는 방법을 규정합니다.
  3. 변수 및 데이터 유형 Variables and Data Types: 데이터를 처리하고 저장하기 위한 변수의 사용법과 사용 가능한 데이터들의 유형이 정의됩니다.
  4. 제어 구조 Control Structures: 반복문이나 조건문 등을 사용하여 프로그램 내의 프로세스 흐름을 제어합니다.
  5. 함수 및 프로시저 Functions and Procedures: 함수와 프로시저는 특정 작업을 수행하기 위한 부분적 코드를 정의해놓고 호출해서 재사용할 수 있는 모듈형 코드입니다.
  6. 라이브러리 및 프레임워크 Libraries and Frameworks: 대부분의 프로그래밍 언어들은 일반적인 작업을 위해 미리 작성된 코드를 제공하는 라이브러리 및 프레임워크를 제공함으로써 개발에 소요되는 시간과 노력을 줄여줍니다.

프로그래밍 언어 분류: 추상화 수준에 의해


  1. 기계어 (저수준 언어) Machine Language (Low-level language): 흔히 ‘기계어’라 불리는 저수준 언어는 컴퓨터 중앙 처리 장치(CPU)가 특별한 해석 없이도 바로 이해하고 처리할 수 있는 가장 낮은 수준의 프로그래밍 언어로, 이진수인 1과 0으로만 표현됩니다. 이런 기계어는 컴퓨터가 바로 이해할 수 있기 때문에 하드웨어 제어에 탁월하지만 사람이 이해하기 어렵다는 단점이 있습니다.
  2. 어셈블리 언어 (중간 언어) Assembly Language (Middle-level Language): 어셈블리 언어는 기계어를 문자, 숫자, 특수문자 등의 기호로 표현한 중간 수준의 프로그래밍 언어입니다. 니모닉 Nemonic(기계어를 사람이 읽을 수 있는 약어로 정의해놓은 것)과 기호를 사용하여 명령어를 작성하기 때문에 기계어에 비해 가독성이 높고 프로그래밍과 디버깅이 수월하지만, 컴퓨터가 이해할 수 있게 하려면 ‘어셈블러’라는 번역기를 이용하여 니모닉을 기계어로 번역해줘야 합니다.
  3. 고급 언어 High-level Language: 고급 언어는 영어처럼 사람이 이해할 수 있는 프로그래밍 언어로 기계어나 어셈블리어에 비해 작성이 쉽습니다. 이식성이 뛰어나고, 하드웨어에서 추상화되어 있어 개발 속도가 빠르며 접근성도 높습니다. 어셈블리어와 마찬가지로 컴퓨터가 고급 언어를 이해할 수 있도록 하려면 컴파일러나 인터프리터 등을 사용하여 기계어로 변환해야 합니다. 고급 언어의 예로는 Python, Java, C, C++, Ruby 등이 있습니다.

프로그래밍 언어 분류: 프로그래밍 영역에 의해


  1. 프론트엔드 언어 Front-end Language: 프론트엔드 프로그래밍은 사용자가 경험하는 영역 즉, 사용자 클라이언트(웹 브라우저)에서 보여지는 영역에 대한 프로그래밍을 의미합니다. 폰트, 컬러, 버튼, 이미지, 메뉴 등 사용자가 직접 경험하는 모든 것이 포함됩니다. 이 프론트엔드 프로그래밍에 사용되는 언어는 HTML, CSS, JavaScript, Elm, Swift / 프레임워크 Bootstrap, Django, Angular, Express, Svelte /라이브러리 jQuery, React, Vue.js, Redux 등이 있습니다.
  2. 백엔드 언어 Back-end Language: 백엔드 프로그래밍은 눈에 보이지는 않지만 프론트엔드를 가능하게 하는 보이지 않는 영역 즉, 서버측에서 실행되는 영역에 대한 프로그래밍을 의미합니다. 데이터베이스와 통신하며 웹사이트에 표시할 동적인 정보를 제공하고, 프론트엔드의 모든 기능이 제대로 작동하는지 확인하는 역할을 합니다. 백엔드 프로그래밍에 사용되는 언어로는 Java, Ruby, Python, .Net, PHP, 백엔드 프레임워크로는 Fastify(Node.js), Ruby on Rails(Ruby), Django(Python), Express.js(Node.js), Flask(Python), Laravel(PHP), Spring(Java), ASP.NET(.Net), Fiber(Go), CakePHP(PHP), 그리고 JavaScript용 런타임 Node.js 등이 있습니다.

프로그래밍 언어 분류: 프로그램 실행 방식에 의해


  1. 컴파일 언어 Compliled Language: 컴파일 언어로 작성되는 프로그램은 컴파일러라는 변환 프로그램에 의해 사람이 해석할 수 있는 형태에서 기계어 형태로 변환되고, 그 결과가 실행 파일로 만들어집니다. 이 실행 파일은 컴퓨터에서 바로 설치 혹은 실행할 수 있으며 사람이 해독할 수 없는 바이너리 코드입니다. 컴파일 하는데 얼마간의 시간이 걸리기는 하지만, 일단 컴파일이 끝나면 소스코드 전체가 기계어로 변환된 상태에서 실행되기 때문에 속도가 빠르고 효율적입니다. 운영체제 등의 플랫폼에 따라 각각 다른 실행 파일이 생성되며, 컴파일하는 과정에서 오류가 발견되면 컴파일이 중단되기 때문에 이 과정에서 오류들이 모두 수정된 상태로 실행 파일이 만들어지고 배포됩니다. 프로그램이 업데이트 되면 개발자는 컴파일을 새로 해서 업데이트 된 실행 파일을 재배포해야 하며, 사용자가 이를 받아서 새로 설치하거나 실행합니다. 컴파일 언어로는 Java, C, C++, C#, CLEO, COBOL, Erlang, Haskell, Rust, Go 등이 있습니다.
  2. 인터프리터 언어 Interpreted Language: 인터프리터 언어로 작성되는 프로그램은 별도의 컴파일 단계 없이 실행 단계에서 인터프리터에 의해 한 줄씩 기계어로 번역되며 실행됩니다. 해당 시스템에서 직접 실행되는 것이 아니고 외부(주로 웹서버)에서 번역되고 실행되기 때문에 운영체제로부터 독립적이고 유연합니다. 반면, 인터프리터가 실시간으로 해석하여 실행하기 때문에 컴파일 언어에 비해 실행 속도가 느리고, 실행 과정 중 오류가 발견됩니다. 프로그램이 업데이트 되더라도 개발자가 서버측에서 업데이트를 진행하기 때문에, 사용자는 크게 관여할 필요가 없습니다. 인터프리터 언어로는 JavaScript, Perl, Ruby, Python, BASIC 등이 있습니다.

프로그래밍 언어 분류: 사용 목적에 의해


  • 프로그래밍 언어 Programming Language: 프로그래밍 언어는 컴퓨터에게 수행해야 할 작업을 알려주는 명령 또는 코드 집합입니다. 개발자가 프로그래밍 언어를 이용해서 지침들을 작성하고 컴파일을 하면, 컴퓨터가 이해할 수 있는 기계어로 변환되어 컴퓨터에 전달됩니다. 그렇게 컴퓨터는 전달된 명령어를 사용하여 하드웨어와 통신하며 사용자가 원하는 결과를 출력을 제공합니다. 따라서 프로그래밍 언어는 주로 소프트웨어나 드라이버를 만드는데 사용됩니다.

    프로그래밍 언어로는 Java , C , C++ , C#, Python 등이 있습니다. 특히, C++은 그 성능과 효율성이 뛰어나 대규모 소프트웨어 개발에 많이 사용되는데, C++로 만들어진 대표적 소프트웨어로는 Microsoft 윈도우, Microsoft 오피스(워드/엑셀/파워포인트), Adobe 포토샵/일러스트레이터, 웹 브라우저 파이어폭스와 크롬, 데이터베이스 MySQL와 Oracle 등이 있습니다.
  • 스크립팅 언어 Scripting Language: 특정 작업을 수행하기 위한 스크립트로 제공되는 언어로, 다른 프로그램에 지침을 제공하는 데 사용되거나 다른 프로그램을 제어하는 ​​데 사용됩니다. 기본적으로 한 언어를 다른 언어에 연결한다거나 두 프로그램 사이를 중재하고, 단독으로 작동하지 않습니다. 스크립팅 언어는 컴파일 대신 인터프리터로 한 줄씩 번역 및 실행됩니다. 주로 웹사이트를 만드는 데 가장 널리 사용됩니다.

    Javascript , PHP , Perl , Python, VBScript 등이 잘 알려진 스크립팅 언어들입니다. 예를 들어, PHP를 이용하면 아래와 같이 MySQL 데이터베이스에서 데이터를 추출하여 API 엔드포인트로 이를 전송해주기 위한 스크립트를 작성할 수 있습니다.
프로그래밍 언어 분류: PHP 예시
  • 마크업 언어 Markup Language: 프로그래밍 언어 및 스크립팅 언어와 달리, 마크업 언어는 특정한 작업이나 연산을 하는 것이 아니라 단순히 레이아웃이나 구조, 데이터의 표시 등을 제어하는 표현형 언어입니다. 마크업 언어에서는 어떠한 논리적인 작업도 이루어지지 않으며, 브라우저에게 웹사이트를 어떻게 보여주면 될지 알려주는 데 사용됩니다. 주요 마크업 언어로는 HTML(HyperText Markup Language), XML(eXtensible Markup Language), CSS(Cascade Style Sheet)등이 있으며 웹사이트 디자인에 주로 사용됩니다.

    다음은 마크업 언어인 HTML로 간단한 코드를 작성하여 웹 브라우저에서 실행하면 어떻게 나오는지를 보여주는 예시입니다.
프로그래밍 언어 분류: HTML 예시
20240205 223400

Leave a Reply

Your email address will not be published. Required fields are marked *