큐펭스토리
파이썬 강의, 프로그래밍 문제 풀이, 지식 공유 및 정리용
파이썬을 배우는 이유 (Why do we learn Python?)

왜 파이썬을 배우냐..라기 보단 왜 하필 파이썬을 통해 CS101 을 배우느냐가 더 알맞은 표현이지만 그냥 저게 간결해서 그대로 쓴다.


파이썬 언어 특성에 대해 잘 설명했다고 생각되는 글이 있어서 링크를 달아둔다. ( Link )

1년 좀 더 된 글이지만 그동안 파이썬이 많이 변한 것도 아니고 내가 설명한다고 해서 가성비가 좋지 않을 것 같다.


이미지 출처: https://www.python.org/


몇가지 추려서 추가하자면, 파이썬은 보자가 처음 프로그래밍을 접하기에 좋은 언어이다. 영문법과 굉장히 닮은 구조들이 많이 보이기에 사람 언어와 소통 방식이 비슷하다는 점에서 컴퓨터 프로그래밍을 배우는 것에 대한 거부감이 적다. C/C++, JAVA 등에서 의미를 제대로 알지 못하는 #include <stdio.h>나 public static void main((String[] args) {} 를 매번 적어줘야된다거나 type 을 미리 선언해야 하는 등 초보자가 생각하기에 불편한 것들을 파이썬에서는 비교적 자유롭게 사용할 수 있다. Interpreter 로 해석할 수 있다는 것도 초보자들이 처음 배우는 언어로 선택하기에 적절한 장점이 된다. 매 코드 블록 하나마다 곧장 피드백을 받을 수 있으니 개발을 완료한 후 순차적으로 디버깅을 하기 위해 처음부터 뜯어봐야하는 C나 JAVA에 비해선 충분한 장점이 된다.
수치 계산 ( numerical computation ) 을 이용하는 모듈들이 많이 개발된 덕분에 공학자 입장에서도 편리한 점들이 있다. 특히 파이썬은 NLP ( Natural Language Processing ) 가 필요할 때 굉장히 매력적인 선택이 될 수 있다. C나 JAVA에서 많은 경우엔 파일을 읽어들여서 원하는 글자를 찾아 끼워넣거나 빼내거나 정렬하거나 그 개수를 세는 일을 하는 데 있어서 수작업이 많이 들어가는 편이다. 하지만 파이썬은 str 기본 메소드에 이와 관련된 함수들을 대부분 제공한다. 메소드만 자유자재로 쓸 줄 알면 작업 능률이 몇배씩 올라가는 편이다. 또한 스타트업 등 현재 IT 관련 기업들이 파이썬을 주 개발 언어로 삼는 트렌드가 생기고 있다. (카더라)


한편 파이썬이 객체 지향 프로그래밍 ( Object Oriented Programming, OOP ) 를 배우기에 적절한 언어인가에 대해선 의문이 많이 든다. type을 미리 선언하지 않아서 매번 변수의 타입을 바꿔 끼워넣을 수 있는 Dynamic type 이란게 장점이기도 하지만 디버깅이나 프로그램 실행 속도 면에 있어서는 전혀 도움이 되지 않기도 하다. 단적인 예시로 최적화가 잘된 C코드에 비해 같은 기능을 하는 파이썬 코드는 3배에서 10배 정도 느리다. 또한 변수에 덮어쓰기 ( Overwriting ) 이 거의 대부분 허용된다. list, str 과 같은 키워드들도 덮어써지는 탓에 프로그래머의 실수가 그대로 논리 오류 ( Semantic Error ) 로 이어질 수 있다. class private 변수 설정도 JAVA의 그것에 비하면 아주 미흡하다고 볼 수 있다. 완전히 큰 대형 프로젝트에는 파이썬이 그다지 좋지 못한 선택이 될 수 있다. (카더라)



  Comment ,     Trackback