/ PYTHON

What is python?

This article contains personal thoughts. Please leave a comment on the parts that need to be revised.
이 글은 개인적인 견해가 포함되어 있습니다. 수정이 필요한 부분은 의견을 남겨주시기 바랍니다.


Python이 뭘까?

Python은 1991년에 출시 된 인터프리터 방식의 프로그래밍 언어이다.
귀도 반 로섬(Guido van Rossum)이라는 네덜란드 출신의 프로그래머에 의해 만들어졌으며, 1989년 크리스마스 주에 연구실이 닫혀있어서 심심한 김에(?) 만든 프로그래밍 언어라고 한다. 웹 개발(서버), 소프트 웨어 개발, 수학 등에 쓰이며 2010년도 후반에는 머신러닝, 딥러닝 등 인공지능 개발을 위한 언어로서 각광을 받고 있다.

왜 Python을 사용할까?

Python은 문법이 쉬워서 초보자들이 프로그래밍을 처음 배울때 추천되는 언어이다. 실제로 영어와 유사한 간단한 구문도 있다.
그로 인해 개발자가 다른 프로그래밍 언어보다 적은 줄로 프로그램을 작성할 수 있다.

def isEmpty(code) {
   # 빈값이 아닌지 체크
   if code is None:    
      return True

   return False
}

프로그래밍 언어는 접근성과 응용력이 좋다는게 굉장히 중요하다. Python은 순수한 프로그램 언어로서의 기능 외에도 다른 언어로 쓰인 모듈들을 연결하는 풀언어(glue language)로써 자주 이용된다.
다양한 플랫폼에서 쓸 수 있고, 라이브러리(모듈)가 풍부하여, 대학을 비롯한 여러 교육 기관 연구 기관 및 산업계에서 이용이 증가하고 있다.
Python으로 개발을 하다보면 라이브러리를 찾는게 빠른지, 해당 기능을 구현하는게 빠른지 고민하게 되는 경우도 생길 정도이다.

“Life is short, You need Python”
인생은 짧으니, 당신은 파이썬이 필요하다.
(빠른 개발 속도와 생산성으로 인해 개발자들 사이에 생겨난 말이라고 한다..)

Python의 단점

  • 다른언어에 비해 상대적으로 속도가 느리다.
    여러가지 이유가 있을 수 있지만 그 중 하나로 인터프리터 언어이기 때문일 수 있다. 작성한 코드를 한줄씩 읽어 가며 실행하기 때문에 컴파일 언어들에 비해 속도가 느리다.
    다른 동적 언어들을 전체적으로 비교해 봐도 속도가 빠른 편은 아니다. 이에 대한 상세 내용은 참조 문서를 확인하기 바랍니다.
  • 동적 타입 언어(dynamically typed language)
    동적 타입이냐 정적 타입이냐에 대한 내용은 서로 장단점이 있기 때문에 어떤게 맞는지 명확한 결론을 내리기는 어려울 정도로 논쟁으로 취급 받는다.
    단, 큰 프로젝트에서 자료 구조 설계나 디버깅이 어렵다는 지적으로 인해 단점으로 적용한다. 그러나 최근에는 테스트 세트로 단점들을 커버하거나 PyCharm과 같은 IDLE 프로그램을 이용해서 도움을 받을 수도 있다.

그럼 난 어째서 Python을 선택 했을까?

인스타그램, 유튜브, reddit 등이 Python을 주로 쓰고 있다고 한다. 외국 구인 사이트에도 Python에 대한 수요가 많다. 그렇다는 뜻은 Microsoft Service에 대한 라이브러리도 풍부하기 때문에 프로젝트 시 도움이 될 것이라 판단했다. 그리고 Python은 스크립팅을 주력으로 밀고 있기 때문에 자동화 시스템의 모듈 개발이나 단기 프로젝트에서 빠르게 개발할 수도 있다.
물론 깊게 파고 들어가면 멀티프로세스, 디자인 패턴, 테스트 기법 등 신경쓸 것도 많고 배경 지식이 필요하다. 하지만 이런 배경 지식은 프로그래머/개발자에게는 필요한 지식이니 Python이 아니더라도 익혀두어야 한다고 생각한다.

핑계 대지말고 방법을 찾자!


참고

Python 나무 위키
Python 위키 백과
w3chools