본문 바로가기
📑IT정보

개발언어는 C, Java, Python만 있는거 아니에요? 우리가 모르는 개발언어들

by 메가스터디IT 2023. 2. 17.

 

안녕하세요. 메가IT입니다:)

개발 현장에서는 다양한 언어를 알고 있는 것이 중요합니다. 언어에 따라 장단점이 있기 때문에 나에게 처해진 개발 상황에 맞는 언어를 쓰는 것이 중요하죠. 그래서 오늘은 메가스러운 IT지식 개발언어의 특징들을 알아보겠습니다.


👑4대 천왕 개발언어

C언어
가장 기본이 되는 프로그래밍 언어로 유닉스 운영체제의 대표 언어입니다. 절차지향적 언어입니다.

  • 장점 : 속도를 빠르게 최적화 시킬 수 있다. 언어 자체가 심플하다. 투명성을 가지고 있어 기능 자체가 적고 하드웨어 맞춤화된 언어로 하드웨어가 어떻게 움직일지 예상이 가능하다. 유연성과 혼합성이 좋다.
  • 단점 : 기계에 가까운 추상화를 제공하고 있어서 사용자는 기계 등의 컴퓨터 아키텍처에 대해서 잘 알고 있어야 한다. 객체 지향 개념이 없다. 
  • 활용처 : 시스템 프로그램, 컴파일러, 유틸리티, 게임 등

Java
개발에 특화된 언어로 객체 지향 언어입니다. 

  • 장점 : 짧은 코드로 언어가 단순하고, 확장이 쉽다. 독립적인 운영체제를 지니고 있다. 플랫폼에 구애받지 않고 웹과 앱을 동시에 구현이 가능하다. JVM을 통해서 단점 극복
  • 단점 : 플랫폼에 독립적이다 보니 윈도우 운영체제에서 리눅스 운영 체제에서 안 돌아간다.
  • 활용처 : 데이터 과학 분야, 웹 개발, 애플리케이션 개발

Python

인간 친화적인 언어며, 순수 객체 지향 언어입니다. 

  • 장점 : 문법이 쉽고, 인간의 사고와 비슷하여 초보자들이 배우기 쉽다. 학습용과 동시에 실사용률과 생산성이 높다. 다양한 모듈이 제공되며, 높은 생산성으로 개발 기간이 단축된다. 잘못 짜인 코드 실수를 자세히 알려주고 고쳐간다.
  • 단점 : 개발 속도는 빠르지만 느린 실행 속도를 가졌다. 빠른 속도를 자랑하는 C언어의 비해 시간, 메모리, 에너지를 더 소모한다.
  • 활용처 : AI, 빅데이터, 머신러닝, 웹 서버 등

JavaScript

프로토타입 기반의 프로그래밍 언어로, 스크립트 언어입니다. 

  • 장점 : 멀피 패러다임으로 명령형, 함수, 객체 지향적인 특징을 가지고 있다. 간단명료하게 코드를 쓸 수 있다. 버그를 회소화할 수 있다.
  • 단점 : 소스 코드가 노출되며 한정적인 객체와 함수를 제공한다.
  • 활용처 : 웹 브라우저, 데스크톱 설치형 애플리케이션

💻우리도 많이 들어봤을걸?

C#
C언어의 파생 언어로 기본 문법이 동일하며, 객체지향언어입니다.

  • 장점 : 생산성이 뛰어나며 CRL을 지원하고 있다.
  • 활용처 : 웹 응용 프로그램 등 

C++
C언어의 단점을 보완해서 만들어진 객체지향 언어입니다. 

  • 장점 : C언어 확장 언어이다 보니 C언어 라이브러리를 상당수 활용이 가능하다. 효율적으로 자료 관리가 가능하다.
  • 단점 : Java나 C언어로 시작하면 배우기 어렵다.
  • 활용처 : 게임, 하드웨어 제어 프로그램

TypeScript(타입스크립트)

자바스크립트의 슈퍼셋 프로그래밍 언어입니다. C#과 문법이 매우 유사합니다. 

  • 장점 : 타입 에러들을 확인하고 피드백을 받을 수 있다. 자바스크립트에 비해서 생산성은 높일 수 있다. API 인풋과 아웃풋 명확하게 표현이 가능하다. 
  • 단점 : 다른 언어와 기능의 개념이 달라서 생산성이 떨어질 수 있다. 

R
통계, 그래프 등의 작업을 위해서 개발된 인터프리터 프로그래밍 언어입니다. 

  • 장점 : SPSS 등의 상용화 프로그램을 사용하지 않고도 GPL로 배포가 되어 무료 사용이 가능하다. 통계 관련 패키지가 많이 개발되어 있다.  
  • 단점 : 어려운 난이도여서 컴퓨터 공학자가 다뤄야 한다. 입문자가 배우기 쉽지 않다. 큰 용량의 메모리가 필요하다. 
  • 활용처 : 데이터 마이닝, 빅 데이터 프로세싱, 기계학습

📱앱개발은 내가 책임질게!

앱 개발에 영향을 주는 것은 운영체제입니다. 스마트폰에는 크게 2가지의 운영체제가 있습니다. 대표적으로 갤럭시의 운영체제인 안드로이드 운영체제와 아이폰의 운영체인 IOS 운영체제로 나뉩니다. 두 운영체제는 서로 호환성이 떨어져서 앱 개발 시에 따로 개발을 진행해야 합니다. 


안드로이드 앱 언어 Kotlin(코틀린)
자바 플랫폼에서 돌아가는 프로그래밍 언어로 함수형 언어입니다. 

  • 장점 : 컴파일러가 문맥으로부터 변수 타입을 자동으로 유추 가능하다. 간결성을 중요시해서 타입 추론을 지원해서 타입 선언을 생략할 수 있다. 함수 타입도 지원이 가능하다. 무료 오픈소스로 어떤 목적에도 사용이 가능하다.
  • 단점 : 모든 프로그램 구성 요소를 컴파일 작업 시점에 알 수 있다. 
  • 활용처 : 서버와 안드로이드 개발

IOS 운영체제 앱 언어 Swift(스위프트)
새로운 애플의 프로그래밍 언어입니다. 

  • 장점 : 현대 프로그래밍 언어가 가지는 갖가지 기능을 포함시켰다. 애플의 모든 기기에서 가능하다.
  • 단점 : 이전 버전인 Objective-C에 비해 개발 속도가 느리다. 애플 생태계만 활용 가능한 한정적인 생태계를 가지고 있다. 
  • 활용처 : iOS, Mac, Apple TV, Apple Watch 앱 개발

🎭난 하이브리드, 안드로이드와 IOS 모두를 지원하지!

모바일 앱 개발이 중요해지면서 크로스 플랫폼 개발이 가능한 프로그래밍 언어가 뜨고 있습니다. 이를 다른 말로 하이브리드 개발이 중요해졌고, 웹 기술을 사용하는 언어이기도 합니다. 


React native

  • 장점 : IOS와 안드로이드 동시에 개발하기가 쉽다. 소스를 수정하고 저장만 한다면, 바로 변경된 내용을 확인할 수 있다. 개발에 용이한 아키텍처 패턴도 지원한다. 웹 확장에도 유리하다.
  • 단점 : 복잡한 UI 구현이 어렵고, 애니메이션 기능이 구현이 되지 않는 경우도 있다. 
  • 활용처 : 앱 개발

Flutter(플루터)
모바일/웹/데스크톱 크로스 플랫폼 앱 프레임워크입니다. 

  • 장점 : 하나의 코드로 모든 운영체제와 웹 브라우저 동시에 작동이 가능하다. 유지 보수 비용이 절감된다. UI 디자인을 쉽게 구현이 가능하다. 성능과 속도 면에서도 알아준다. 오픈 소스 코드로 제공하고 있어 내부 코드를 참고하며 작업이 가능하다.
  • 단점 : 플러그인 지원 수준이 낮다. 함수나 변수의 자유도가 낮아 작업의 어려움이 있다. 
  • 활용처 : Google Ads, 인터페이스 

🖥새롭게 탄생한 신규 개발언어

Go
C++의 복잡함을 벗어나고자 제작된 언어로, C와 구문이 비슷하지만 시스템 프로그램에 적합하도록 설계된 컴파일러 언어입니다.

  • 장점 : 컴파일러 속도가 매우 빠르다. 소스 코드를 해석하는 PASS의 수를 줄여 문법 구조를 개선하여 간결한 코드이다. 높은 성능을 뽑아낼 수 있다. 라이브러리가 풍부하다.
  • 단점 : 기계어 번역 시 반응이 느리다. 설계 철학과 어긋나는 기능들은 제외되었다.

Rust
오픈 소스 시스템 프로그래밍 언어입니다. 

  • 장점 : 메모리 관리와 기타 하위 수준의 세부 정보를 제어할 수 있다. 안전한 형식을 가지고 있고, 스레드 보안을 보장하고 있다.
  • 단점 : 신생 언어로 자료가 적다. 유효하지 않는 정보가 많다. 
  • 활용처 : 웹 서버 및 클라이언트 소프트웨어 개발

Ruby
순수 객체지향 스크립트 언어입니다. 

  • 장점 : 오픈 클레스로 사용자가 코드를 마음대로 수정이 가능하다. 객체 지향언어이면서도 함수형 언어의 특징을 가지고 있다. 확장이 쉬운 메타 프로그래밍을 지원한다.
  • 단점 : 실행 속도가 느리다. 
  • 활용처 : 웹 백엔드 개발 등

✏기억 속의 지우개 개발언어

한때 개발 현자에서 많이 쓰이던 언어들이 실용성과 복잡한 문제들로 현재는 쓰이지 않는 경우들이 많습니다. 

Algol(알골), Forth(포스), Modula-2(모듈라-2) 등이 있어지만, 개발 언어의 패러다임의 변화와 다양한 원인으로 현재는 잊혀 가고 있습니다. 개발 언어는 많지만 사용자와 현장 상황에 맞게 사용하는 것이 필요합니다. 그래서 개발자들도 한 가지 언어만 공부하지 않고, 여러 가지 기술 스택을 연마하기도 합니다. 

 

다양한 개발언어의 특징
https://bit.ly/3YLteWa
반응형

댓글