프로그래밍/python

파이썬(python) 강좌를 시작하며

콘파냐 2015. 6. 13. 23:56
반응형

파이썬(python)에 대한 자료를 찾는 중 C나 C++ 문법과 비교를 한 자료가 없는 듯 하여, 필자 본인이 파이썬(python)과 C/C++을 비교해 나가며 정리하려 합니다.


나의 베이스 언어는?

우선 시작에 앞서 식상한 이야기지만 모든 언어의 기본은 C/C++이라고 생각하며, 그 생각은 변함이 없습니다. 자신의 기본 베이스 언어를 무엇으로 택하는가 결정하는 것은 중요합니다. 저는 C를 감히 추천 드립니다.


C/C++을 추천하는 이유는 다음과 같습니다.

처음 배우기는 어렵지만, C를 어느 정도 다룰 줄 알면 다른 언어들을 쉽게 이해할 수 있고, 빠른 시간 내에 익힐 수 있다.


하지만, 취미로 택한다면 베이스로 python의 선택도 나쁘지 않다고 생각합니다. C언어/C++언어의 기본 문법을 익히는 데는 최소 3개월에서 공부 방식에 따라 1년 이상 소요된다 생각하기 때문에 힘든 여정이 될 수 있습니다. 그 후로도 꽤 많은 도전 과제들이 산적해 있습니다. 자료구조와, 알고리즘을 배워가면서도 복잡한 문법 구조와, 디자인 패턴 등을 다루어야 합니다.

'미치지 못함은 아니함만 못하다.' 라는 말도 있죠. 때문에 파이썬은 좋은 선택이 될 수 있습니다.


파이썬을 왜 배울려고 하는가?

 물론 파이썬도 마찬가지겠지만, 혹자는 C++개발자가 반년 걸리는 일을 파이썬 개발자가 단 1~2달만에 끝낼 수 있다고 합니다. 저도 처음에는 설마라고 생각했지만, 제가 직접 C언어로 30줄 짜리 프로그램을 파이썬으로 단 한 줄에 끝낸 후에 이 말을 실감했습니다. 이를 실제 언어와 비교하자면 League Of Legend를 파이썬(python)으로는 LoL이라고 쓰는 것과 같은 맥락이라 생각하시면 됩니다.

파이썬의 가장 큰 장점은 가독성과 생산성이라 생각합니다.




그럼 파이썬의 단점은?

하지만, 파이썬(python)은 스크립트 언어로 속도 측면에서는 단점을 가지고 있습니다. 


그런데,

이 또한 극복될 수 있습니다. 빠른 프로토타입을 개발하여 제품에 대해 테스트를 해 볼 수도 있고, 만약 완성도가 높다면 그대로 출시할 수도 있습니다. 또한 필요한 부분은 추후에 C나 C++또는 다른 언어로 작성할 수도 있습니다. 이렇게 다른 언어로 작성된 모듈을 같이 사용하기 때문에, 파이썬(python)을 glue(접착) 언어라고도 합니다. 게임 개발에서도 가독성이 높고 쉬운 파이썬을 개발자 외 기획자가 직접 작성하기도 합니다. 필요한 로직만 개발자가 파이썬(python)이나 루비 같은 스크립트 언어로 작성하면 C나 C++에서 그 모듈을 가져오면 되니까요.


파이썬은 어디에 사용되나?

파이썬으로 할 수 있는 일들은 매우 다양합니다. 시스템 유틸리티, GUI 프로그램, 웹 프로그램, 수치연산, DB 등..

파이썬이 적합하지 않은 분야는 운영체제나, 고 반복 연산, 압축 알고리즘 등 빠른 속도를 요구하거나, 하드웨어를 직접 다루는 프로그램에는 적합하지 않다고 합니다.


C언어와 비교하여 매우 코드가 쾌적하고, 파이썬(python)에서의 객체는 매우 아기자기합니다. C++에서 제공하는 수준에 비하면 많은 기능을 제공하지 못한다 생각하지만, 파이썬은 다른 많은 장점을 가진 듯 보입니다.

대략 여기까지는 파이썬을 처음 접하면서 가진 느낌입니다. 그동안 파이썬에 대해 알고는 있었지만, 필요성은 못 느꼈는데, 점점 프로젝트가 커지다 보니, 하나의 언어만 고수하는 것은 매우 개발자를 지치게 만드는 것 같습니다. 좀 쉬운 방법으로 프로그래밍을 할 수 있다면, 개발자는 다른 중요한 부분에 투자할 기회를 얻는다고 생각합니다.


강좌의 방향

강좌는 주관적인 순서로 다룰 예정입니다.

저는 C를 베이스로 하여 C언어와 C++언어와 차이점이 있는 부분을 중점적으로 다룰 예정입니다.

C나 C++에 대한 기초를 알고 계신다면 이 강좌는 매우 유용한 요약집이 될 것입니다.

반응형