본문 바로가기

POST/Tech

2023년에 배워야 할 주요 프로그래밍 언어 Top5 (faet. 언어 순위)

 

 

IT 기술이 발전하면서 프로그래밍 언어 역시 계속해서 발전하고 있습니다. 이에 따라 IT 환경을 지속적으로 살피고 개발 언어와 관련된 트렌드를 파악하는 것 역시 필수가 되었는데, IT 트렌드를 파악하는 데에 좋은 방법 중 하나는 주기적으로 프로그래밍 언어 순위를 확인해보는 것입니다. 본문에서는 대표적인 프로그래밍 언어 종류와 함께 2022년의 프로그램 언어 순위를 살펴보겠습니다.

 

대표적인 프로그래밍 언어 종류

 

 

Python

Python은 기계어보다 자연어에 가까운 언어로, 웹사이트 및 서비스 개발 그리고 데이터 분석 등 다양한 분야에 활용됩니다. Python은 구문이 단순해 행동 기반으로 프로그램 알고리즘을 실행할 수 있습니다. 또한, 웹 개발을 할 때에도 Python만으로도 작업이 가능하기 때문에 상대적으로 작업량이 적다는 장점도 있습니다. 그리고 C C++와 같이 잘 알려진 다른 프로그래밍 언어와의 상호운용성 덕분에 초보자와 숙련된 개발자 모두 가장 쉽게 사용할 수 있습니다. 러닝커브가 낮기 때문에 프로그래밍을 모르는 비전공자도 쉽게 배울 수 있는데, ‘Hello OSC Korea’ 라는 문장을 출력할 때 PythonJava를 비교해보면 아래와 같습니다.

 

#Java

public class Solution {

   public static void main(String args[]) {

     System.out.println("Hello OSC Korea");

   }

}
#Python

print("Hello OSC Korea")

 

수많은 장점이 있는 언어지만, 다른 컴파일 언어와 비교했을 때 속도가 느리다는 단점이 있습니다. 따라서 빠른 속도를 요구하거나 하드웨어를 직접 컨트롤하는 프로그램에는 적합하지 않은 언어라고 판단할 수 있습니다. 또한, Python으로 개발한 앱의 경우에는 메모리를 많이 소모한다는 한계도 배제할 수 없습니다. 마지막으로 Python에서는 하나의 프로세스 안에 모든 자원의 락(Lock)을 글로벌(Global)하게 관리함으로써 한 번에 하나의 쓰레드만 자원을 컨트롤하여 동작하도록 하는 GIL 기능 때문에 멀티 코어가 당연한 요즘은 단점이 될 수밖에 없는 부분이기도 합니다.

 

*GIL 기능이 적용되는 것은 cpu 동작에서이고, 쓰레드가 cpu 동작을 마치고 I/O 작업을 실행하는 동안에는 다른 쓰레드가 cpu 동작을 동시에 실행할 수 있습니다. 또한, multiprocessing 모듈을 사용하면 쓰레드 대신 프로세스를 만들어 병렬로 동작하기 때문에 계산을 병렬로 처리하는 데에 도움을 받을 수 있습니다.

 

Java

Java는 인기 있는 프로그래밍 언어 중 하나로 PythonNode.js와 같은 언어가 큰 인기를 누리고 있는 와중에도 계속해서 빠른 속도로 성장하고 있습니다. 객체 지향적이고 배우기 쉬운 프로그래밍 언어이고, 독립적이며 고성능 애플리케이션을 개발할 수 있다는 점에서 개발자들로부터 높은 호응을 얻고 있습니다. 지금 Java 프로그래밍 언어를 사용하는 회사는 아래와 같습니다.

 

  • Google
  • Uber
  • Netflix
  • LinkedIn
  • Trivago
  • eBay
  • Amazon

 

Java는 개발자가 쉽게 코드를 작성하고 실행할 수 있으며, 강력한 디버깅을 제공합니다. 객체 지향 프로그램 언어로써, 개발자는 기존의 코드를 재사용할 수 있고 모듈식 프로그램을 개발할 수 있습니다. 서로 다른 플랫폼에서 동일한 프로그램을 실행할 수 있는 능력은 웹 기반 소프트웨어에 필수적이며, Java는 플랫폼과 언어에 독립적이기 때문에 이를 훌륭하게 지원합니다. Java의 또 다른 중요한 장점 중 하나는 강력한 보안입니다. 보안 문제를 크게 고민하지 않아도 Java를 믿고 사용할 수 있을 만큼입니다.

 

다만, 다른 언어와 비교했을 때 실행 속도가 느리다는 것은 Java의 명확한 단점입니다. 이 단점은 C++이나 C와 같은 다른 인기 있는 프로그래밍 언어와 비교했을 때 더욱 명확하게 드러납니다. 따라서 처리 속도가 중요한 애플리케이션에서는 적합하지 않을 수 있다는 판단입니다. 그 외에는 JVM(Java Virtual Machine)을 사용하기 때문에 직접 하드웨어를 정밀하게 조정해야 하는 프로그램 개발에는 적합하지 않을 수 있으며 더 많은 메모리를 소비한다는 점, 코드가 다른 언어에 비해 길고 장황하기 때문에 코드를 읽고 이해하는 데 가독성이 떨어지는 등의 어려움을 겪을 수 있습니다.

C, C++, C#

프로그램을 간단하게 설계할 수 있도록 하는 운영체제 공통 언어로, 다른 언어의 베이스가 되기도 하는 개발 언어 C, 효율성이 좋아 대규모의 고기능 프로그램을 만들 수 있기도 하고 제작된 프로그램의 크기가 작고 속도도 빠른 장점, 문법이 간결하고 짧은 명령으로 많은 일을 할 수 있으며 모든 분야에 두루 활용할 수 있을 정도로 범용적이라는 장점을 갖고 있습니다. 절차 지향적 특성으로 이해하기 쉽고 이식성이 좋지만, C 언어는 다른 언어들과는 다르게 시스템 자원을 직접 제어할 수 있기 때문에 프로그래밍을 할 때 세심한 주의가 필요합니다.

 

C++언어는 기존의 C 언어에 몇 가지 기능이 추가된 언어로 C언어의 발전된 형태라고 할 수 있습니다 대표적인 장점은 강력하면서도 유연하다는 점입니다. 간편하고 경제적인 구조화된 프로그램을 짤 수 있고, 컴퓨터의 기능을 많이 활용할 수 있도록 해줍니다. 사용법이 쉬우면서도 어셈블리어에 크게 뒤지지 않은 제어 능력을 가졌으며 이식성이 좋다는 장점을 가졌지만 사용에 미숙할 경우 버그가 많이 생길 수 있다는 한계를 염두해야 합니다.

 

C#언어는 .Net Framework에서만 돌아가며 닷넷을 위한 많은 언어 중 하나입니다. C# 언어는 C++ 언어에서 더 발전된 것으로 Java의 특징을 합치기까지 해서 C 언어 보다는 Java와 더 비슷하다고 볼 수 있습니다. 기존의 언어들의 장점을 합쳐서 만든 언어이기 때문에 여러 장점을 갖고 있지만, C# 언어는 언어의 점유율이 높지 않아 개발 언어로서 수요가 높지는 않습니다.

 

 

2022 프로그래밍 언어 순위

GitHub 2.0은 어떤 언어들이 사용되는지 분석해 프로그래밍 언어 순위에 반영하고 있습니다. GitHub에서 대표적으로 Push 기능에서 자주 사용된 개발 언어 순위는 다음과 같습니다.

 

 

2022년 1분기 Pushes 순위

1. Python

2. Java

3. JavaScript

4. C++

5. PHP

6. TypeScript

7. C

8. Go

9. Shell

10. Ruby

 

 

프로그래밍 언어는 사용하는 곳 그리고 장점과 단점, 특징까지도 모두 달라 종류가 상당히 방대합니다. 본인이 주로 사용하는 언어가 아니더라도 요즘 어떤 프로그래밍 언어를 많이 사용하는지 트렌드를 알고 있는 것도 의미가 있을 것입니다.

 

 

참고

Java Trends 2022

TIOBE index

GitHub 2.0 - Github Language Stats