본문 바로가기

별걸다하는 IT/기타IT

프로그래밍 언어 종류(C. Java, php 등 10개)와 사용도, 순위

프로그래밍 언어 종류

프로그램을 처음 시작한다던가.. 이제 막 개발자의 길로 접어든 사람의 경우,

많은 프로그래밍 언어 때문에 '뭐가 이렇게 많지.. 무슨 언어로 개발해야 하는거지..' 헷갈릴 수 있어요. 제가 처음에 그랬거든요 ㅎㅎㅎ 사실 필요에 따라 사용하면 된다는 알고보면 별거 없지만..ㅎㅎ 

모든 언어를 다뤄본건 아니지만.. 그래도 C/C++/C#/Java/Python 등등 여러 언어를 미약하게나마 다뤄본 사람으로(?) 

프로그래밍 언어 종류가 무엇이 있는지, 어디에 주로 쓰이는지 정도는 기본으로 알아야한다 생각해요 

언어는 각기 역사가 있고 특징이 있고 장단점이 있는데 그걸 알아야 그래도 이해할 수 있고 판단할 수 있으니까요.

 

일단 우리와 친숙한 웹 관련 언어를 살펴볼게요. 

 

 1. HTML (HyperText Markup)-WEB

여러분이 보고 있는 이 티스토리도, 제가 쓰고 있는 글도 결국엔 HTML이라는 언어로 구성되어 있답니다. 

혹시 제가 올린 티스토리 포스팅을 봤다면 HTML이라는 단어는 익숙할거예요.

 

- 인터넷의 정보 검색 시스템인 월드 와이드 웹(WWW)의 홈페이지를 작성하는데 사용되는 생성 언어로, 문자 뿐만 아니라 화상이나 음성을 포함하는 음성, 영상을 포함하는 페이지로 표현할 수 있는 구조화 된 언어입니다.

 

- 인터넷 하이퍼텏트 문서제작에 사용됩니다.

확장자는 *.html, *.htm

 

티스토리 스킨의 HTML언어는 어떻게 생겼나~~

←  요렇게 생겼습니다.

 

여러분들도 웹 사이트를 하나 제작하려면 알아야하는 기본 언어예요.

 

 

 

 

 

 

♣ 2. VRML (Virtual Reality Modeling Language)-WEB

앞자리 VR, 여러분이 생각하는 그 친숙한 VR이 맞습니다. 3D와 관련된 언어라는게 예측되죠?

- 3차원 도형 데이터의 기술 언어로, 3차원 좌표값이나 기하학적 데이터 등을 기술한 문서 파일(Text)의 서식(Format)이 정해져 있습니다.

- 작성된 가상 현실 모델링 언어(VRML) 파일을 월드 와이드 웹(WWW) 서버에 저장하여 입체적인 이미지를 갖는 3차원의 가상적 세계를 인터넷상에 구축하는 언어예요.

 

(예를 들어, 인터넷을 통해서 방을 구할 때도 사진이 아닌 직접 본 것 같은 효과를 얻을 수도 있겠죠?)

 

♣ 3. WML (Wireless Modeling Language)-WEB

WML, formerly called HDML(Handheld Devices Markup Languages), is a language that allows the text portions of Web pages to be presented on cellular telephones and personal digital assistants via wireless access.

HDML이라고 불리기도 해요. WML = HDML

- 무선 접속을 통해 휴대폰이나 PDA 등에 웹 페이지의 텍스트와 이미지 부분이 표시될 수 있도록 해주는 웹 프로그래밍 언어입니다.

- 작은 화면과 제한된 메모리 및 CPU, 좁은 대역폴을 가진 무선 이동 단말기에 적합해요. 

 

 4. Perl (Practical Extraction and Reporting Language)

-1980년대 초반에 Lary Wall에 의해 개발된 인터프리터 언어입니다.

(인터프리터 언어이므로 C언어처럼 컴파일할 필요가 없이 코딩한 대로 실행이 가능해요)

-사용하기가 쉽고 크기가 작기 때문에 CGI 프로그램을 작성하는데 널리 이용돼요.

유닉스/정보보안쪽 공부하다보면 많이 볼 수 있음. 보통 Perl은 보다 구조적인 C나 C++언어들보다 배우기 쉽고 빠르게 코딩할 수 있대요 하지만 프로그램들이 복잡해 질 수 있습니다.

 

♣ 5. SGML (Standard Generalized Markup Language)-WEB

-1980년대 국제 표준화 기구(ISO)에서 1986년 국제 표준으로 채택한 문서 생성 언어입니다.

앞에 살펴본 HTML의 바탕이 된 언어예요. SCML이 HMTL보다 먼저 나온거~ (그러므로 지금은 HTML/XML을 쓰지 얘는 사용하지 않는 추세임 하지만 HTML발전 방향이나, 웹 프로그래밍 역사 글 보면 나오는 언어~)

- 컴퓨터 시스템이나 응용 프로그램과 독립적으로 문서나 파일을 교환할 수 있고 교환되는 문서가 수신측에서도 자유로이 편집할 수 있어서 유용하게 재이용될 수 있도록 하기 위해 개발된 언어입니다.

 

 6. 자바스크립트 Javascript

티스토리 스킨 소스코드 보면

.js로 끝나는 이 파일들이 자바스크립트로 작성된 파일들이예요.

 

 

이 외에 크롬으로 웹 페이지 들어가 F12를 누르면 개발자 도구로 들어갈 수 있는데 

여기서 네트워크 탭에 보이는 js파일들이 그 웹 사이트에 사용된 javscript로 작성된 파일들을 뜻합니다.

 

 

자바스크립트란?

- 미국의 넷스케이프 커뮤니케이션즈(Netscape Communication)사가 개발한 스크립트 언어로 웹 브라우저에서 실행하는 스크립트 언어를 기술합니다.

 

 

-하이퍼텍스트 생성 언어(HTML) 문서를 작성하는 수준의 사용자가 사용하는 것을 주안점으로 하여 자바의 언어 규격으로부터 변수의 형을 생략하거나 새로운 클래스 정의를 할 수 없도록 합니다.
-스크립트는 HTML 문서 속에 직접 기술하며 Script라는 꼬리표를 사용해요.

자바와 자바스크립트가 이름이 비슷해서 비슷한 언어인가? 생각하는 사람들이 있는데 사실 관련이 없는 정반대의 언어입니다. 인도네시아와 인도가 다른 그런느낌으로 생각하시면 돼요. 자바가 인기가 많아서 인기 버스타고자 이름을 바꿨다는 말도 있음..

이제는 자바스크립트가 들어가지 않는 웹 페이지는 없죠... 웹 프로그래밍에서는 필수로 알아야 하는 언어입니다. 유연성이 매우 뛰어나요 그래서 매우 Strict한 C나 Java로 프로그래밍 언어를 시작한 사람들이 배우기 어려워하기도 합니다. 자바스크립트는 클래스라는 개념이 없거든요.ㅎㅎ 자바는 클래스 기반의 대표, 자바스크립트는 프로토타입의 대표 언어로 정반대의 언어입니다.

자바스크립트는 알아두면 매우 좋은 언어니, C/C++/Java/Javascript 언어 정도는 기본으로 알아둡시다.

 

참고!

자바스크립트의 원래 명칭은 ECMAscript로 에크마 스크립트라고 부릅니다.

JavaScript는 통칭하는 말이고 정식 버전 명칭은 ECMAScript 5 , ECMAScript 6+ 이런식입니다.

따라서 JS 6버전 이렇게 부르지않고 ES 6라고 하거나 ES 풀명칭인 ECMAScript 6라고 한다는거~

Javascript는 ECMAScript 표준을 따르는 언어이다~

 

 7. 자바 Java

요새 개발자라면 자바 안배우는 사람들 없죠? 대표적인 객체지향 프로그래밍 언어죠.

 

- 미국의 썬 마이크로시스템즈 사가 개발한 객체지향 프로그래밍 언어로, C++언어를 바탕으로 언어 규격을 규정했습니다.

- 자바의 원시코드를 고쳐 쓰거나 재컴파일할 필요가 없기 때문에 기종이나 운영체제와 무관한 응용 프로그램의 개발 도구로 각광받고 있습니다.

- 멀티스레드를 지원하고 각각의 스레드는 독립적으로 동시에 다른 일을 처리합니다.

- 특정 컴퓨터 구조와 무관히 가상 바이트 머신 코드를 생성하므로 플랫폼이 독립적입니다.

- 바이트 머신 코드를 생성합니다.

 

뭔말인가...싶죠. 핵심은 플랫폼이 독립적인 언어다! 이거예요. 자바를 시작하게 되면 더 자세히 배우게 될거지만..

 

 

 

자바 바이트 머신 코드는 또 당췌 먼말인가~

--> Windows에서 개발한 어떤 바이너리 프로그램이 있어요 근데 이거 맥 컴퓨터에서 돌리면 안돌아갑니다.

리눅스 운영체제에서 돌려도 안돌아가요. 이걸 가능하게 하고 싶다는 거죠

프로그램을 하나 만들었는데 얘를 윈도우에서도 돌리고 맥에서도 돌리고 솔라리스 컴퓨터에서도 돌리고 싶다. 어떻게 해야 하느냐? 일단 하드웨어의 CPU 명령어가 똑같아야 해요. 그래서 만든 CPU 명령어를 자바 바이트 코드라고 합니다.

CPU명령어를 자바에서 만든 것이 자바 바이트 코드! 이것때문에 자바가 인기를 엄청 얻었다고 해도 과언이 아니죠.

 

이건 웹 서비스일 때 특히 필요한데, 웹 서버가 하나 있고 거기에서 어떤 프로그램을 다운로드시켜가지고 이 컴퓨터에서 실행을 해야 한다 칩시다. 이 클라이언트가 윈도우일수도 있고, 리눅스 컴퓨터일수도 있고, 맥 노트북일 수도 있고,, 다 가능하게 하려면 이 방법밖에 없는거죠. 그래서 자바 프로그래밍이라는 언어와 자바 프로그램을 실행시키는 JVM이라는 개념이 나온거예요.

아 오늘은 언어 소개만 간략히 하려고 했는데 말이 길어졌네요. 

 

요새 웹 사이트 들어가보면 대부분의 언어가 php또는 java로 쓰여진 걸 볼 수 있는데

php는 대표적 무료 언어고 자바는 웹페이지 만들려면 유료입니다. ㅎㅎ 이게 또 php가 성장할 수 있었던 이유이기도 하죠.

아무튼 java는 특히 핸드폰 즉 안드로이드 앱 개발할 때는 필수로 쓰입니다 

게다가 요새는 웹뿐만 아니라 서버쪽까지 거의 대부분의 기능을 자바가 다 수행할 수 있어요.  

 

그래서 사실 언어 하면 제일 많이 배우는 언어가 C/C++ vs Java인 것 같은데 그래서 더욱더 C와 자바 언어 사용 논쟁이 많은 것 같아요. C/C++ vs 자바글인데 읽고 재밌는 것 같아서 요것도 함 읽어보세요 

-> 서버 개발자 왜 C를 선호하나요? https://okky.kr/article/223715

 

더 자세한건 자바 포스팅에서 다루도록 할게요

 

 8. C/ C++

C/ C++은 정말 역사가 오래된 언어죠. 그만큼 이미 기존의 시스템은 대부분 C/C++로 이루어졌다고 말해도 틀린 말이 아닙니다. 여러분이 지금 사용하고 있는 윈도우 부터가 C로 개발되었고 바로 위의 자바 언어도 C가 기반이기 때문이죠. 기존 인프라를 이해하고 분석하려면 C언어를 아는건 필수겠죠?

밑에 프로그래밍 언어 순위를 보면, C는 오래되었음에도 불구하고 2019년 프로그래밍 언어 순위에도 당당히 2등을 차지하고 있습니다.

 

웹 쪽에서는 C언어를 사용할 수 없는건 아니지만 잘 쓰지는 않아요. 하지만 여러분이 쓰는 포토샵, 엑셀, 한글 등 대부분의 소프트웨어는 C로 만들어졌답니다. C++, C#언어는 C로부터 발전된 언어라고 생각하면 돼요. 자세한 것은 C/C++ 포스팅에서 파고 들도록 할게요. 앞의 Java vs C/C++ 질문 게시글의 댓글들을 읽어보면 음 대강 느낌정도는 파악할 수 있을거예요.

 

- 이식성이 좋다 

- 하드웨어와 관련된 부분까지 접근할 수 있다 --> 그래서 임베디드 쪽은 거의 다 C..

- 좋은 성능, 빠른 속도를 보인다 --> 그래서 성능이 중요한 게임 쪽은 대부분 C로 만들어집니다.

 

자세한 내용은 C포스팅에서 만나봐요 C언어 활용분야를 쳐도 많은 글들이 주루룩 나오니 읽어보는 것도 좋아요.

참고로 저희 학교는 (졸업생이지만..) 컴공과 가면 제일 먼저 배우는게 C/C++과 파이썬 이 두 개랍니다.

 

 9. XML-WEB

- 기존 HTML 단점을 보완하여 문서의 구조적인 특징들을 고려하여 문서들을 상호 교환할 수 있도록 설계된 프로그래밍 언어입니다. 

- 하이퍼텍스트 생성 언어(HTML)을 대체할 목적으로 월드 와이드 웹 컨소시엄(WWW Consortium)이라는 단체가 표준화 작업을 진행하고 있는 페이지 기술 언어입니다.

- HTML에서 사용되는 연결(Link) 기능 등을 확장함과 동시에 표준 볌용 문서 생성 언어(SGML)를 인터넷 용으로 최적화 한 것으로, HTML과 SGML의 장점을 모두 가지도록 규격했습니다.

- 인터넷뿐만 아니라 전자 출판, 의학, 경영, 법률, 판매 자동차, 디지털 도서관, 전자상거래 등에서 이용하고 있어요

 

현재 HTML, XML 둘 다 열라 많이 쓰입니다

안드로이드 개발이나 WPF 개발을 하게 된다면 주구장창 보게 되는 XML..ㅎㅎㅎ

 

 10. php (professional Hypertext Preprocessor) 

PHP는 자바 할 때 살짝 언급했었는데 일단 무료라는 점~ 배우기가 쉽습니다. 

- 웹 서버에서 작동하는 스크립트 언어로, UNIX, LINUX, Windows 환경에서 작동합니다.

- C, Java, Perl 등의 언어와 문법이 유사하고 배우기가 쉽기 때문에 웹 페이지 제작에 많이 사용됩니다. 

 

 

프로그래밍 관련 언어는 진짜 너무 많아요  아직도 남은 언어들이 잔뜩.. 이게 프로그래밍 언어 종류 그래프 그림이랍니다..와우..

 

포스팅이 너무 길어지는 관계로 오늘은 딱 10개 까지만 살펴보았고 

이 외에도 Python, ruby, Basic, VB.Net, LISP등 중요한 언어들이 많이 남았어요.

너무 많아서 오히려 뭘 써야할지 뭐부터 배워야할지 헷갈리겠다고요?ㅎㅎㅎ 일단 C/C++/Java부터 배우는걸 추천...

다른 주요한 언어들은 해당 언어들을 포스팅 할 때 다루도록 할게요 

아님 또 다른 10개 종류 포스팅을 할지도... 고민중..ㅎㅎ 사실 이렇게 길게 써봐야 너무 길어서 다들 안읽을거같아서..ㅎ

 

 

2019년 프로그래밍 언어 순위

 

 

Java, C/C++/C#, javascript, 파이썬, php등이 상위권을 차지하고 있네요! ㅎㅎ

보통 프로그래밍 언어를 웹언어와 분리해서 생각하긴 합니다. 그래서 항상 사용되는 HTML이나 XML같은 경우 랭크에 측정되지는 않았어요. 정말 웹에 특화되어 있기 때문에 완전한 언어다?라고 하기 약간 애매한 감이 있죠..ㅎㅎ HTML의 경우 태그 사용이 사용법 끝인 경우라...ㅎㅎ

 

문제

정보러치기사 기출 문제에서 따왔어요.

 

1. 다음 중 XML 문서에 대한 설명으로 거리가 먼 것은?

(1) 태그와 속성을 사용자가 정의할 수 있으며 문서의 내용과 이를 표현하는 방식이 독립적이다.

(2) HTML과 달리 DTD(Document Type Definition)가 고정되어 있지 않으므로 논리적 구조를 표현할 수 있는 유연성을 가진다.

(3)XML은 HTML에 사용자가 새로운 태그를 정의할 수 있는 기능이 추가되었다.

(4) 확장성 생성 언어라는 뜻으로 기존의 HTML의 단점을 보완하여 비구조화 문서를 기술하기 위한 국제 표준 규격이다.

답: 4

 

2. 다음 중 인터넷 문서를 작성할 때 사용되는 언어 중에서 HTML에 관한 설명으로 옳은 것은?

(1) 인터넷용 하이퍼텍스트 문서 제작에 사용된다.

(2) 구조화된 문서를 제작하기 위한 언어로 태그의 사용자 정의가 가능하다

(3) 서버 측에서 동적으로 처리되는 페이지를 만들기 위한 언어이다

(4) 웹상에서 3차원 가상공간을 표현하기 위한 언어이다.

 

답: 1

 

ㅠㅠ 프로그래밍 언어가 매우 많다보니 포스팅이 길어졌네요 여기서 끝!

좋은 글이었다 생각하면 공감 또는 댓글이나 광고보답 감사합니다

 

**WEB이라고 옆에 마크해 놓은 것은

완전하게 독립적으로 사용할 수 있는 프로그래밍 언어라고 분류되지 않는 것들입니다. 메인 프로그래밍 언어와 함께 보조적으로 사용되는 마크업 언어라고 이해하시면 될 것 같아요.

예를 들어 기본적인 웹만 해도, 한 예로, JAVA로 기능들을 구현하지만 사용자와 소통하는 인터페이스를 위해서라면 HTML언어가 필수적이니까요

  • ㅇㅇ 2020.02.09 11:12

    HTML은 프로그래밍 언어가 아닙니다!

    • IT 양햄찌(jhnyang) 2020.02.09 11:14 신고

      **WEB이라고 옆에 마크해 놓은 것은
      완전하게 독립적으로 사용할 수 있는 프로그래밍 언어라고 분류되지 않는 것들입니다. 메인 프로그래밍 언어와 함께 보조적으로 사용되는 마크업 언어라고 이해하시면 될 것 같아요.


      라고 하단에 오해소지없도록 기재되어있습니다. ㅎㅎ

  • 궁금증 2020.04.07 13:05

    운영체 개발을 목적으로 하고 기계어 수준의 하드웨어 제어가 가능하면서 꼭 필요한 기능만 있는 언어가 JAVA인가요?

    • IT 양햄찌(jhnyang) 2020.04.07 14:45 신고

      운영체제는 c언어로 개발되어있습니다. 메모리 직접 접근 이 자유자재로 가능하기 때문이예요. 또 자바의 경우 운영체제 바로 위에 올라가는게 아니라 운영체제 위 JVM에서 실행되기 때문에 논리적으로도 어렵습니다.