Python 과 C++은 매우 인기있는 범용 개발 언어 입니다.
Python 은 C++의 영향을 많이 받았지만, 두 언어는 완전히 다릅니다. Python은 배우기는 쉽지만 실행 속도는 느립니다. C++은 실행 속도는 빠른 반면 제대로 마스터할려면 꽤 긴 시간을 투자해야합니다. 이외 두가지 언어의 차이점을 알아보겠습니다.
Python VS C++
Python과 C++은 둘다 인기 있는 프로그래밍 언어입니다. 두가지 언어 모두 Application(응용프로그램) 개발에 주로 사용되지만 Python은 웹 어플리케이션 개발에 주로 사용되며, C++은 순수 응용프로그램개발에 주로 사용됩니다.
근래에는 두언어가 모바일 앱개발에도 많이 사용되는 추세입니다.
Python 과 C++ 코드 차이점을 비교해 보겠습니다.
Python Code
print('Hi, friend!')
C++ Code
#include <iostream>
int main() {
std::cout << "Hi, friend!";
return 0;
}
위와같이 C++은 간단한 결과를 출력하는 작업에 있어 Python 보다 훨씩 코드가 복잡합니다.
Python 장단점
파이썬은 Compiled language (컴파일언어)가 아니라 interpreted 이며 런타임 오류도 자주 발생합니다.
Python 장점(Pros)
- 배우기 쉽다 : Python은 이해도 측면에서 프로그래밍을 시작하기 쉽기 때문에 간혹 초보자의 개발 언어로 착각.
- 웹 개발에 적합 : 근래의 추세는 주로 웹 애플리케이션과 클라우드 개발. Python은 C++보다 웹 어플리케이션 개발에 더 적합.
- 동적 타입 : 동적 타입은 프로그래밍을 더 쉽고 유연하며 직관적으로 만듬.
- 무료 오픈소스 : Python은 예제 코드등 커뮤니티가 활성화되어있어 정보를 구하기 쉬움.
- 풍부한 라이브러리 지원 : 일반 라이브러리 포함 Python 기반 빌드 추가 라이브러리, 프레임워크, 개발 키트가 다양하게 있음.
- 인터프리터 언어 : 사소한 오류에도 불구하고 지속적으로 유연하게 실행하려는 경향이 있음.
Python 단점(Cons)
- 속도가 느리다 : Python은 특히 확장될 때 다른 유사한 언어보다 느리게 실행.
- 메모리 효율성 저하 : Python은 다른 이전 언어보다 더 자동화된 메모리 관리를 제공하지만 단점은 메모리 효율성이 낮음.
- 모바일 컴퓨팅에서 자원 관리 문제 : Python의 리소스 부담 문제.
- 런타임 오류 : interpreted 언어는 compiler 에러보다 런타임 오류가 있을 가능성이 더크며, 이런점음 문제해결을 더어렵게 만들수도 있음.
C++ 장단점
C++은 정말 놀라운 수명을 가진 개발 언어이며 그이유는, 파이썬에서 할수 있는 모든것을 C++로 할수있습니다.
그리고 효율성이 매우 높은 개발 언어 입니다.
C++ 장점(Pros)
- 훌륭한 이식성 : C++는 거의 모든 것으로 이식될 수 있어 매우 다재다능하고 유용한 언어.
- 견고한 메모리 관리 : 메모리 관리는 사용자의 손에 있지만 메모리 관리가 보다 세분화되고 제어된 수준에서 처리된다는 의미.
- 빠르고 효율적임 : C++는 매우 가벼운 프로그래밍 언어이므로 사물 인터넷(IOT) 장치나 모바일 장치 프로그래밍과 같은 프로그래밍에 이상적.
- C, C# 및 Java와 비슷함 : 이미 C#, C 또는 Java로 프로그래밍에 익숙한 사람은 누구나 C++로 프로그래밍하는 것이 쉬움. 마찬가지로 C++를 배우는 사람은 Java로 쉽게 전환 가능.
- 광범위한 내장 라이브러리 : C++ 개발됨에 따라 개발을 위한 커뮤니티 라이브러리, 프레임워크 및 키트등 광범위한 내장 라이브러리를 사용할수 있음.
C++ 단점(Cons)
- 대규모 커뮤니티 : C++은 좀더 많은 것을 배우고자 하는 사람들에게 튜토리얼, 레슨 및 코드등을 제공하는 커뮤니티가 많지 않음.
- Garbage Collection 없음 : C++은 모든 메모리 관리를 사용자에 맡깁니다. 이러면 보다 효율적인 시스템이 생성되지만 모든 책임은 사용자 몫.
- 비직관적인 포인터 : 포인터 관리는 사용자에게 가장 실망스러운 작업 중 하나. 사용자가 포인터를 제대로 관리하지 않으면 코드가 작동하지 않음.
- 잠재적인 보안문제 : C++의 변수 및 함수 처리는 몇 가지 잠재적인 보안 문제 가지고있음.
- 배우기어려움 : 복잡하고 엄격한 타이핑 구문으로 인해 C++는 유연성이 떨어짐. 초보자가 배우기에는 어려움이 있음.
결론 요약
속도면에서는 C++이 Python보다 우세합니다. 하지만 Python이 훨씬더 많은 시장 점유율을 가지고 있습니다. 커뮤니티로 본다면 Github에서 두 언어 모두 충분한 자료와 정보를 찾을수 있습니다.
최근 트렌드는 Python이 지속 성장하는 반면 C++은 퇴색하고 있습니다. 어찌보면 Python은 웹기반 서비스나 산업 성장에 힘입어 인기도 많고 더불어 성장하는 모양새입니다. 해외 모 채용사이트의 개발자 구인정보를 보면 C++ 채용은 80,000여개 정도가 채용중이며, Python 개발자 채용은 200,000개 이상의 채용 구인 정보가 있습니다. 직업적인 측면에서 본다면 Python 개발 채용이 2배이상 많다는것을 짐작할수 있습니다.
Python 이 C++보다는 인기도있고 지속 성장하는것으로 보여지긴하지만 연봉(급여)에서는 평균적으로 C++ 개발자가 Python 개발자보다 앞서는것으로 나타납니다. C++ 고급개발자의 경우에는 꽤나 높은 연봉을 받는것으로 알고 있습니다. 기업마다 케바케인 경우도 많을것입니다.
개발자(프로그래머) 직업을 선택하실때 위와 같은 여러가지 측면을 고려하여 개발 언어를 선택하시는것도 좀더 나은 미래 선택에 중요한 포인트가 될것입니다.