프로그래밍 언어란?

최정태·2024년 5월 7일

우리는 데이터를 주고 받고자하는 아이디어로부터 시작해 컴퓨터의 발명가 발명되었고, 이제 어떤 데이터를 어떻게 얼마나, 효율적으로 주고 받을 것인지 고민할 수 있게되었다. 프로그래밍 언어에 대해서 공부하기 전에 프로그래밍에 대해서 알아야한다. 컴퓨터 프로그래밍이란 무엇일까?

컴퓨터 프로그래밍이란?

컴퓨터 프로그래밍이란 컴퓨터에게 일을 시켜 문제해결을 하는 과정이다. 보통 프로그램을 만드는 일이라고 얘기를 하지만, 프로그램을 만드는 것만이 프로그래밍은 아니다. 내가 상상했던 것들을 컴퓨터로 실행시켜 행할 수 있도록 하는 것 자체가 프로그래밍이다. 프로그래밍은 프로그래밍 언어로 할 수 있는데, 시기와 용도에 따라서 다양한 언어들이 생겨났으며, 700개가 넘을 만큼 많은 언어가 있다.

초창기 프로그래밍 언어

그렇다면 초기에 프로그래밍은 어떻게 했을까? 초기에는 CPU가 직접 실행할 수 있는 기계어를 직접 작성하여 컴퓨터에게 일을 시켜 문제를 해결했는데 이렇게하면 기계어는 복잡하기 때문에 기계어를 다룰 수 있는 사람만 컴퓨터를 사용할 수 있어 불편함을 겪었다.

어셈블리어

이 때 등장한 것이 어셈블리 언어이다. 어셈블리 언어는 기계어 명령어를 사람이 읽고 이해할 수 있는 기호나 단어로 표현한다. 이러한 코드는 어셈블러라는 프로그램에 의해 기계어로 변환되어 CPU에서 실행될 수 있다. 어셈블리어는 프로그래밍의 편의성을 높이면서도 CPU와 직접적인 저수준 제어가 가능하다는 점에서 혁신적이었다.

고급 프로그래밍 언어

인간 친화적인 언어라고 할 수 있다. 어셈블리어 이후 더 발전된 프로그래밍 언어들이 생겨났는데, C와 C++, Java, Python, JavaScript 등이 있다. 각 언어마다 특징도 다르고 주로 사용되는 프로그램들이 다 다르다.

각 프로그래밍 언어의 특징

많이 사용되는 4개의 언어에 한해서 특징들을 정리해보았다.

C

2024년 5월 기준으로 2위에 랭크되어 있으며, 운영체제(OS) 개발을 위해 나온 언어이다. 하드웨어를 제어하고 실행 효율을 높여야하는 곳에 주로 쓰인다. 즉 저수준 접근과 고수준 기능의 조합으로써 하드웨어에 가깝게 작업할 수 있으면서도 사용자 친화적인 프로그래밍이 가능하다. C언어는 함수를 기반으로 하는 프로시저 지향적 프로그래밍 언어이다. 장점으로는 빠른 계산 속도가 필요하다면 C언어를 사용하면 장점이 된다. 이 언어의 사용 분야는 운영체제, 디스크 드라이버, 임베디드 시스템, 암호학 라이브러리, 웹 서버(Apache 등), 데이터베이스, 애플리케이션 등 다양한 분야에서 사용된다.

C++

2024년 5월 기준으로 3위에 랭크되어 있으며, C언어의 기능을 확장하여 절차적 프로그래밍, 객체 지향 프로그래밍과 제네릭 프로그래밍 기능을 추가하였다. 이처럼 다양한 프로그래밍 스타일을 지원하는 것이 특징이다. C++은 C 언어와의 높은 호환성을 가지며, 대부분의 C코드는 C++에서 문제 없이 작동한다.

Java

2024년 5월 기준으로 4위에 랭크되어 있으며, 선 마이크로시스템즈에서 개발된 객체 지향 프로그래밍 언어로, 간결성,이식성,높은 수준의 보안을 제공하도록 설계되었다. Java는 자바 가상 머신 위에서 실행되기 때문에, 한 플랫폼에서 개발된 Java 응용 프로그램은 다른 어떤 JVM이 설치된 플랫폼에서도 실행될 수 있다. 이로 인해서 소프트웨어 개발자들은 다양한 운영체제에서 작동하는 애플리케이션을 쉽게 개발 할 수 있다.

Python

2024년 5월 기준으로 1위에 랭크되어 있으며, 파이썬의 특징이라고 하면 민주적으로 만들어진 언어라고 할 수 있다. Java나 C언어들은 기업에서 사용하려는 목적으로 만들어진 언어라고 한다면, 파이썬은 네덜란드의 어떤 개발자가 처음 만들었지만 전세계 모든 사람들이 파이썬 언어를 개발할 수 있도록 오픈 소스를 활용해서 문제점에 대해 토론하고 장단점을 비교하며 오랜 기간에 걸쳐 발전해온 언어라고 할 수 있다. 가장 인간 친화적인 언어라고도 하며 여러 분야에서 활용할 수 있지만 데이터 분석쪽에서 특히 많이 활용된다. 웹서버로서의 기능도 할 수 있지만 인터프리터를 활용하는 파이썬의 특징 상, 컴파일을 한줄씩 인터프리터로부터 실행시켜 컴파일러를 사용하는 다른 언어들에 비해서 속도가 느리다는 단점 때문에 많이 사용되지는 않는다.

JavaScript

자바스크립트는 웹에서 주로 사용되는 언어로, 동적인 웹사이트를 만들기 위해서 나온 언어이다. 특징은 인터프리터 언어이자, 동적약형 언어이다. 싱글스레드로 작동하며 객체지향형 언어이다. 웹브라우저가 아닌 곳에서는 Node.js 런타임 환경에서 실행시킬 수 있다. Java와 관련은 크게 없으며 프로토타입 기반으로 다양한 메서드를 제공하며, 라이브러리와 함께 사용할 수 있다. 유럽 컴퓨터 제조 협회(ECMA)가 JavaScript 언어를 관리한다. 자바스크립트의 실행 컨텍스트를 통해 Scope와 스택을 관리하고 fetch나 setTimeout등 비동기 함수들을 지원한다.

우리는 700개가 넘는 프로그래밍 언어를 모두 익힐 수는 없다. 기술이 발전함에 따라 언어들도 같이 발전했고, 인간 친화적인 언어들도 생겨났다. 따라서 우리는 목적에 따라 언어를 습득하고 사용할 수 있으며 구글링이나 커뮤니티 사이트, ChatGPT를 통해서 빠르게 검색하여 원하는 정보를 얻을 수도 있다. 어떤 개발을 하고 싶냐에 따라서 사용 언어가 달라지고, 어떤 개발자가 되고싶냐에 따라서도 달라진다. 상황에 맞춰 공부 할 언어를 선택해야한다. 다음 포스팅에서는 어떤 개발자들이 있는지에 대해서 포스팅 해보려고 한다.

0개의 댓글