정리함

프로그래밍 언어 특이사항 간단하게 비교정리 (C,C++,C#,JAVA,JavaScript,Python,Php)

돌맹이시터 2020. 8. 26. 10:00

프로그래밍, 코딩의 세계에 입문하기에 앞서
어떤 언어를 공부해야 할 것인지 선택하는 것에 도움이 되고자 포스팅을 한다.


널리 쓰이는 언어들을 비교하여 정리해보았다.

 

간단하게 정리한 자료이며,

각 언어 별로 자세한 내용은 따로 다룰 예정이다.

 





C


프로그래밍의 근본이라고 불리는 언어

 

리소스가 많이 없는 기계에서 작동할 때 유용
low level language.

하드웨어와 밀접하게, 효율적으로 코드를 구성할 수 있으며 속도가 빠르다.

크로스플랫폼 (여러 종류의 플랫폼, OS에서 동작 가능) - 코드를 약간 수정할 필요가 있긴 함

절차 지향 언어

 

임베디드 프로그래밍에 필수적인 언어

(각종 IoT, 드론 등등 관련)







 


C++ (씨플러스플러스/씨플플/씨뿔뿔../씨피피 등으로 읽음) 



C의 확장판(superset), 유사한 문법구조를 가지지만, 완전히 다른 언어

intermediate-level language.

객체지향프로그래밍 (OOP, object-oriented programming) 언어

일반화 프로그래밍, 함수형 프로그래밍 모두 지원
클래스, 연산자 중복, 가상함수 등이 추가되었다고 생각하면 편하다.

STL과 함께 공부하는 것이 좋다.

 

자유도가 높은 것이 장점

그만큼 설계가 어려운 것이 단점

 

빠른 처리 , 메모리를 컨트롤해야 하는 분야에서 주로 사용된다고는 하지만

거의 모든 분야에서 사용한다고 한다.






C# (씨샾)



C++에 기본을 두었지만, Java와 유사하다. ( Microsoft에서 .NET 플랫폼을 위해 개발함 )
모든 것을 객체로 취급한다. 객체지향프로그래밍 언어

high level language.
기업용 프로그래밍 언어 

 

마소에서 개발한 .NET 을 위한 언어 (Java-Oracle의 관계와 유사)

백엔드, 프론트엔드를 만들 수 있으며

C#을 익히게 된다면, 
unity 3D (비디오게임 엔진)를 이용해, 엑스박스/플레이스테이션/iOS/Android 앱을 모두 만들 수 있다.



한국에서는 Java를 많이 사용하고, 미국/유럽 등 해외에서는 C#, .NET을 많이 사용함
Javascript, Typescript, Java을 할 줄 안다면 배우기가 쉽다.





 


Java


C, C++ 의 문법과 유사한 편
객체 지향 프로그래밍 언어 // 순수 객체지향 언어는 아니다.
보안에 강하다.

high level language.

어떠한 플랫폼에서도 실행 가능하며, 이식성이 높다. (다른 os, cpu 에서도 같은 코드로 사용가능하다.)


최근

스타트업에서는 많이 쓰지 않지만, 한국에서는 정부기관, 기업, 은행 등에서 많이 쓰고 있다.

국내 프로그래밍 언어 중 점유율이 매우 높은 편.

기업용 web application 개발에 주로 쓰인다.
백엔드(web application backend)에 적합하고, 안드로이드 어플 개발에도 쓰인다.

거의 모든 곳에서 전반적으로 잘 쓰이는 언어






Javascript



객체지향 프로그래밍 언어
상속성, 클래스가 없다. ( 자바에는 있음 )

HTML 코드에 끼워져서(embedded) 사용된다. ( 자바는 HTML과 독립적으로 사용가능 )
HTML 코드에 끼워져있기 때문에

누구나 코드를 볼 수 있기 때문에 보안에 취약한 편이다. ( 자바는 HTML에서 클래스 파일을 부르는 형식이기 때문에 타인이 소스코드를 직접 볼 수 없다. )



직관적이고 HTML, CSS와 함께 웹사이트(특히 프론트엔드)를 만들기에 적합하며,
web이 어떻게 작동하는 것인지 기본부터 익힐 수 있다.



HTML(hyper text markup language) - web의 frame
CSS (Cascading Style Sheets) - web의 디자인 요소
Javascript - cross platform, 객체지향 스크립트 언어로, webpage의 동작을 담당



Js을 익히면,
보다 동적인 웹사이트, iOS 어플, 프론트엔드 모두 가능하다.
다재다능하지만 원시적인 측면도 있는 언어.

 

개발 환경이 자주 바뀌는 편이라, 계속 공부해야 하고 시간이 많이 걸린다.






Python



매우 간결하며, 표현 구조가 인간의 사고체계와 유사해 초보자/비전공자에게 추천된다.
라이브러리가 풍부하여 다양한 용도로 사용할 수 있다.

 

배우기 쉽고, 직관적인 언어라는 특성 때문에 

입문용으로 많이 쓰이고, 실제로도 많이 사용되는 언어

최근 프로그래밍 언어 점유율에서 좋은 성적을 내고 있다.



(웹 개발, 머신러닝, 데이터사이언스, 데이터비주얼라이제이션, 웹스크래핑 등)

속도는 느린 편이며, 모바일 앱 개발에 사용하기 힘들다.

데이터사이언스에 특화된 언어 (데이터 사이언스 분야를 위해서는 필수적)








PHP (Hypertext Preprocessor)



HTML에 포함되어 동작하는 스크립팅 언어

자바, C언어군에 비해 직관적인 편

동적 HTML 처리 속도가 빠른 편

HTML 문서 안에 포함시켜 사용해왔지만,

최근에는 PHP, HTML을 별도로 분리하여 작성하는 경우가 많다.



거의 모든 web은 PHP에서 작동된다.

대부분의 website는 wordpress(웹페이지 제작,관리를 위한 오픈소스 콘텐츠 관리 시스템 중의 하나)를 이용하는데, wordpress는 PHP로 구현되었기 때문



백엔드 빌드, CMS(contents management system)에 적합