다양한 프로그래밍 언어 어떤 것을 먼저 배워야할지, 각각 어떤 특성을 갖고 있는지, 

또 어디에 어떻게 활용되는 언어인지..


오늘은 많이 사용되는 프로그래밍 언어에는 어떤 것들이 있고 

어떤 특징을 갖고있는지 함께 살펴보겠습니다. 

 

 

C



 

C언어는 프로그램을 보다 간단하게 사용하고 설계할 수 있게 하는 운영체제의 공통언어입니다. 짧고 간결하게 표시할 수 있어 다른 프로그래밍 언어들의 베이스가 되기도 합니다. 성능이 아주 중요한 어플리케이션 개발에 사용된다는 C언어는 운영체제 개발을 위해 생겨난 것으로 간결한만큼 하드웨어를 효율적으로 통제할 수 있다고 합니다.

 

C언어는 절차지향 언어인데, 여기서 절차지향이란 명령어를 몇 회, 어떤 순위로 시행할지 판단하는 방식입니다. 기능이 많지 않다는 단점이 있지만 전세계에서 가장 많이 쓰이는 언어인만큼 능숙하게 다룰 수 있다면 좋을 것 같습니다.

 

C++



 

C++는 C언어와 비슷하지만 절차지향 대신에 객체지향 지원을 하며 조금 더 발전된 기능을 가지고 있습니다. 우리가 주로 사용하는 구글, 크롬, 파이어폭스, 워드, 엑셀,  파워포인트 등이 모두 C++로 개발된 것이라고 합니다.

 

C#



 

마소의 .NET 프레임워크에서 제공되는 범용언어입니다. C++에서 발전된 것으로, 자바와도 비슷한 특징을 보이며 ASP.NET 프레임워크를 사용한다면 필수로 공부해야하는 언어입니다. 언어의 완성도가 매우 뛰어나며 .NET 프레임워크 사용 시 Visual Studio를 함께 사용해야 합니다.

 

JAVA



 

학교에서 컴퓨터 공학 초급코스로 많이 가르치는 범용 언어입니다. 스프링 프레임워크, 전자정부 프레임워크 등을 사용한다면 자바는 필수입니다. 자바는 사실 쉬운 편은 아니지만, 인기가 많아 초보 코스에서 자주 선택되는 언어입니다. 윈도우, 리눅스, 유닉스 등 다양한 운영체제에서 실행되는 프로그램 개발에 주로 쓰입니다.

 

자바는 서로 다른 실행환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 이식성이 높은 언어입니다. 또한 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결하여 전체 프로그램을 완성하는 객체지향 언어이기도 하고요. 더불어 오픈 소스 라이브러리가 풍부하여 검증된 오픈소스 라이브러리를 이용할 경우 개발기간을 단축하며 안전성이 높은 애플리케이션을 쉽게 개발할 수 있습니다.

 

Java Script



 

Java의 이름을 달고있지만 JAVA와는 공통점이 없습니다. 자바스크립트는 스크립트 언어이며 웹페이지의 동작을 담당하고 주로 웹 브라우저, HTML 문서 내에서 사용됩니다. 자바의 경우, 다목적 언어이고 주로 스마트폰 앱과 게임을 만드는 사용됩니다. 웹페이지는 3가지로 구성되는데, 디자인요소를 관리하는 CSS/내용작성 부분인 HTML/동작을 책임지는 자바 스크립트로 구성됩니다. 이것을 이용하면 명령을 입력하고 그에 따른 결과를 얻어낼 수 있습니다.

 

자바스크립트의 장점은 컴파일 과정이 없어서 빠르고 간단하게 코딩을 만들고 프로그래밍을 할 수 있으며 스크립트 코드를 작성할 수 있어 편리하다는 것입니다. 또한, 웹에 특화된 언어이다보니 다른 운영체제, 플랫폼에서 문제없이 사용되도록 쉬운 형태로 제공됩니다. 하지만 내부에서 제공하는 기능이 제한적이고 보안에 취약할 수 있다는 단점이 있습니다.

 

Python


파이썬은 여러가지 프로그래밍 언어 중 가장 쉽고 기초적인 프로그래밍 언어라고 할 수 있습니다. 파이썬은 문법이 간결하고 쉬우며 기본적입니다. 따라서 실행의 효율성보다는 개발기간 단축에 초점을 둔 언어라고 할 수 있습니다. 웹사이트, 서비스개발, 데이터 분석 등에 다양하게 사용됩니다. 또한, 객체지향을 강력히 지원하는 대화형 인터프리터 언어입니다. 다만 다른언어보다 실행이 느리다는 단점이 있습니다. 하지만 외부 라이브러리가 크기 때문에 확장에는 용이한 언어입니다. 특히 C와 아주 잘 결합합니다.

 

VBA(Visual Basic for Application)


각종 응용프로그램(마이크로소프트사의 엑셀, 워드, 파워포인트, 엑세스 등)을 위한 비주얼 베이직 언어로 일반 비주얼 베이직 언어와 문법 구조가 매우 비슷합니다. 조건 분기 처리나 순환 반복 작업등을 통해 매크로만으로 해결할 수 없는 복잡한 작업을 수행할 수 있는 프로그래밍 언어입니다. 특정 시간에 문서를 자동으로 생성할 수 있고, XML/웹/데이터베이스 등과 연계하여 작접할 수 있습니다. 또한, 별도의 프로그래밍 도구 필요 없이 마이크로 소프트 오피스가 있다면 어디서든 프로그래밍을 할 수 있습니다.

 

 R



 

주로 통계 해석에 사용되는 언어입니다. 스프레드시트에 담기엔 너무 큰 데이터를 처리하고 싶을 때 제격이라고 할 수 있습니다. R에서 사용할 수 있는 수많은 통계 관련 패키지가 개발되어 있어 인터넷을 통해 이 패키지들을 설치하는 식으로 무수한 기능 확장이 가능합니다. 단점은 사용 난이도가 높으며 데이터를 물리적 메모리에 저장해야 하기 때문에 큰 데이터 집합을 이용할 때 문제가 발생할 수 있습니다. 또한 정보보호 기능이 없어 보안성이 약합니다.

 

PHP



 

PHP 언어는 웹 상에서 서버를 연동해서 실행하는 대표적인 언어이며, 인터프리터 방식을 채택하고 있어 편리한 언어입니다. MySQL,mSQL,Oracle, Sybase 및 윈도우 ODBC 등 여러 DB를 편리하게 연동할 수 있습니다. 또한 거의 모든 운영 체제 구현이 가능하며 코드 작성이 쉽고 문법이 간단합니다. C/C++언어의 문법과 비슷하여 클래스 지원시 효율적인 코딩이 가능하고, 스크립트 언어이기 때문에 HTML 문서 내부에서 입력하여 실행할 수 있습니다.

 

 GO


 

 

GO는 구글이 2009년에 만든 프로그래밍 언어입니다. 이름 특성상 검색으로 정보 얻기가 힘들어 GoLang으로도 불립니다. 컴파일 언어이지만 컴파일러의 속도가 매우 빨라서 인터프리터 언어처럼 쓸 수 있기에 서버사이드 언어로서 좋은 평가를 받고 있습니다. C/C++, Java와 같이 컴파일 타임에 타입 결정이 이루어지며, 코드 내에서 암시적 형변환이 일어나지 않습니다. 또한 실행파일 내에 Garbage collector가 탑재되어 있는 언어입니다. 

 

 Swift


 

 

스위프트는 애플이 2014년에 공개한 언어입니다. 애플은 스위프트 언어의 특징을 Safe,Fast,Expressive로 발표했습니다. 스위프트는 안전한 프로그래밍을 지향합니다. 옵셔널이라는 기능을 비롯하여 guard 구문, 오류처리, 강력한 타입통제 등을 통해 안전성을 높이고 있습니다. 또한, 실행속도의 최적화 뿐만 아니라 컴파일러의 지속된 개량을 통해 더 빠른 컴파일 성능을 구현했습니다. 스위프트는 여러 가지 프로그래밍 패러다임을 채용한 다중 패러다임 프로그래밍 언어입니다. 명령형과 객체지향 프로그래밍 패러다임을 기반으로 한 함수형 프로그래밍 패러다임과 프로토콜 지향 프로그래밍 패러다임을 지향하고 있습니다.

 

Perl


Perl은 범용언어로 주로 방대한 문자열을 처리하는 데에 사용됩니다. 정규표현식의 원조라고 칭송받는 Perl은 긴 문자열을 분석하여 어떤 의미를 추출할 때 최적의 언어입니다. Perl은 거의 모든 운영체제에 설치되어 있으며, C언어에 삽입이 가능합니다. TCP/IP 네트워크 작업을 쉽게 처리할 수 있으며 Perl 커뮤니티가 활성화되어 있습니다.

 

Ruby


루비는 순수 객체 지향 언어로서 루비에서의 정수나 문자열 등을 포함한 데이터 형식 등 모든 것이 객체입니다. 루비의 장점은 코드가 간단하여 배우기가 쉽고 MVC 모델이 거의 완벽하게 구현되어 있다는 것입니다. 추가적인 작업 없이 폴더 내에 파일명만 맞추면 거의 완벽하게 MVC 모델이 구현됩니다. 또한 확장성과 이식성이 높습니다. 시스템 용량을 변경해도 그 기능이 잘 동작하며 하나 이상의 운영체계에 사용될 수 있습니다. 국내 사용률은 저조한 편입니다.

 

 

Kotlin


코틀린은 안드로이드 스튜디오 개발사인 Jet Brains에서 2011년에 공개한 언어입니다. 코틀린은 JVM에서 구동되는 언어로 자바와 상호운용할 수 있도록 만들어졌습니다. 따라서 기존의 자바 라이브러리를 최대한 활용하기 때문에 코틀린에서 자바 API 호출시 별도의 변환작업이 필요 없습니다. 자바를 완전히 대체할 수 있는 언어가 되는 것이 코틀린의 주요 목적입니다. 코틀린은 정적 타입 지정 언어이며 함수형 프로그래밍과 객체지향 프로그래밍을 지향합니다.

 

오늘 소개해드린 프로그래밍 언어들 이외에도 많은 프로그래밍 언어들이 존재합니다. 나만의 방식으로 언어들을 새롭게 풀어나갈지 고민해보시길 바랍니다 :)

 

-출처 및 참고글: https://blog.sonim1.com/207