프로그램 정의, 프로그래밍 언어 종류

프로그램 정의

소프트웨어 제작툴을 이용해 프로그래머가 작성한 소스 코드의 컴파일된 결과물을 의미를 합니다. ‘Program’은 컴퓨터에게 어떠한 문제에 대해서 처리 하는 방법과 순서를 명령어를 통해 기술합니다.

이러한 명령어는 컴퓨터가 사용하는 언어인 기계어로 작성이 되었고, 컴퓨터의 중앙 처리 장치인 CPU(central processing unit)가 프로그램의 연산을 실행 및 처리하는 역할을 합니다.

다시 정리하자면, ‘명령어를 작성해서 수행하기 원하는 프로그램을 만든다’라고 생각하면 쉽습니다.

프로그램 정의

프로그램 명령어

프로그램 명령어를 개발자가 ‘기계어’로 작성을 할 수는 없습니다. 기계어의 형태는 숫자로 이루어져 있기 때문입니다. ex) 45 23 56 00 00 3C 4E

그래서 기계어를 이해하기 쉬운 명령어로 작성하는 방법이 ‘어셈블리어’ 입니다. 좀 더 직관적으로 기계어를 번역해 놓았습니다. 기계어와 일대일 대응이 되는 컴퓨터 프로그래밍의 언어입니다. 덧셈할때는 ‘add’, 뺄셈은 ‘sub’, 호출은 ‘call’, 값을 옮길때는 ‘mov’, 값을 증가시킬 때는 ‘inc’ 등 명령어를 작성하는 것입니다. 직관적으로 알 수는 있지만 개발자들이 소스 코드 작성하기에는 단순한 코드는 가능하지만 복잡한 코드는 작성하는데 무리가 있었습니다.

결국, 새롭게 만들어 진 것은 개발자에게 친화적인 코드를 작성할 수 있게 만들어진 ‘고급언어’입니다. 어셈블리어처럼 복잡한 명령어가 아닌 사람이 이해하기 쉬운 코드로 작성할 수 있어졌습니다. 덧셈하는 코드로 설명하자면 변수 a와 변수 b를 더하는 코드는 ‘a + b’로 작성하면 됩니다.

프로그램 실행파일

최종적으로 프로그램은 ‘기계어’로 작성된 명령어의 집합이여야 합니다. 개발자가 작성한 소스파일은 일종의 텍스트 파일이기에 컴파일 과정을 통해서 ‘기계어 코드로 전환된 실행파일’이 되어야 합니다.

컴파일러가 ‘고급 언어로 작성한 파일’을 ‘어셈블리 코드’로 변환하고 마지막 단계를 거쳐 컴퓨터가 이해할 수 있는 언어인 ‘기계어’로 실행파일이 생성됩니다.

프로그래밍 언어 종류

프로그래밍 언어의 종류가 많다는 것은 다 아는 사실입니다. 무엇이 가장 좋은 언어일까? 정답은 없고 목적에 맞게 선택하는 것이 가장 좋다고 할 수 있습니다. 프로젝트 개발을 위해서 Java, Python, PHP 언어 중에서 한 가지를 선택한 이유는 분명한 이유가 있습니다. 자신이 배운 언어라든지, 익숙한 언어라서 선택한 측면이 있을 것입니다.

그럼, 대표적으로 개발자들에게 인기 있고 대중적인 프로그램 언어에 관해서 기술해 보겠습니다.

Java

국내에서 수요가 가장 많은 언어입니다. 대학교 컴퓨터 공학에서 필수 과목으로 가르치고 있습니다. 상대적으로 규모가 큰 프로젝트를 개발할 때 사용이 되고 대기업이나 공공기관에서 자바 수요가 많습니다. 전통적으로 국비지원 커리큘럼에 빠지지 않는 교육 과정이 Java 개발 과정 교육입니다.

자바는 Backend 영역으로서 데이터를 처리하거나 가공 및 수집을 하는 역할을 담당합니다. 객체지향 프로그래밍 언어로 웹 애플리케이션, 모바일 애플리케이션, 임베디드 시스테, 빅데이터 처리 분야에서 널리 사용됩니다. 가장 인기 있는 프로그래밍 언어 중 하나입니다.

Python

파이썬은 인공지능 관련 분야와 데이터 분석 영역에 활용되는 언어입니다. 이제는 파이썬 언어는 프로그래밍 입문 언어로써 초등학생 때부터 배우기 시작을 할 정도로 개발자들에게 필수언어이고 비전공자들에게도 데이터 분석영역에서는 활용도가 넓습니다.

데이터 과학, 인공지능, 웹 개발, 시스템 자동화에 사용이 되고 특히, 머신러닝 및 딥러닝 분야에서 많이 사용되고 초보자부터 전문가까지 개발자에게 인기가 많습니다.

JavaScript

자바스크립트는 Frontend 영역입니다. 웹 페이지의 시각적인 부분을 다루는 언어입니다. 웹 개발자에게는 기본중의 기본인 언어입니다. 웹 브라우저에서 동적으로 내용을 변경하는 기능을 개발을 주로 합니다. 최근에는 Node.js와 같은 환경에서 실행이 됩니다.

자바스크립트는 HTML, CSS와 함께 웹 애플리케이션을 구축하는 데 사용이 됩니다. 또한, AJAX 기술을 통해 비동기적으로 서버와 통신하는 역할도 담당합니다.

C++

객체지향 프로그래밍 언어로 C언어를 기반으로 만들어졌습니다. 시스템 프로그래밍이나 게임 개발 등에서 주로 사용됩니다. 다만 학습 난이도가 높고 메모리 관리를 개발자가 직접 해야 하기에 기능적인 측면에서 완성도 있는 개발을 하여야 합니다.

고성능 및 저수준 메모리 조작이 가능한 언어로 알려져 있습니다. 시스템 소프트웨어, 임베디드 시스템, 대규모 소프트웨어 개발 등 다양한 분야에서 사용됩니다. C++의 특징 중 하나는 효율적인 성능을 제공하면서도 다양한 하드웨어 환경에서 이식성을 보장한다는 점입니다.

C#

C#은 MS에서 개발한 객체지향 언어로 .NET Framework에서 실행되는 언어입니다. 주로 Windows 플랫폼인 데스크톱 애플리케이션에서 활용이 됩니다. 또한 C#은 Visual Studio와 같은 강력한 통합 개발 환경을 통해 개발자들에게 편리한 개발 환경을 제공합니다.

C#은 .NET 프레임워크와의 통합을 통해 다양한 라이브러리 및 도구들을 활용을 할 수 있고, 최근 오픈소스 커뮤니티의 기여로 Linux 및 macOS와 같은 다양한 플랫폼에서도 사용할 수 있게 되었습니다. 기업용 응용프로그램부터 게임 개발까지 다양한 분야에서 널리 사용되고 있습니다.

마치며

프로그래밍 언어의 선택은 용도에 따라 선택이 가능한 것이지 한 가지의 언어로 모든 서비스를 구현할 수는 없습니다. 그래서 웹 개발자, 응용 프로그램 개발자, 앱 개발자, FrontEnd, BackEnd, DBA 등으로 나뉘어지는 것입니다.

Leave a Comment