프로그래밍 언어, Python이란?

2020.06.20

undefined

이번 포스팅에서는 이전 포스팅 Computer Science 학과에서는 무엇을 배울까?” 에서도 소개해 드렸듯이 전 세계적으로 가장 잘 쓰이는 네 개의 프로그래밍 언어 중 하나인 python을 알아보는 시간을 갖도록 하겠습니다. python은 다른 언어들에 비해서 비교적 입문하기 쉽다고 여겨져, 대부분 학생들이 python으로 프로그래밍 언어를 배우기 시작합니다. 필자도 대학에 진학하기 앞서 python을 독학하고 있으며, 혼자 하는데 있어 큰 어려움을 겪지 않고 있습니다. 비교적 낮은 난이도와 풍부한 라이브러리, 그리고 범용성 때문에 대학을 비롯한 여러 교육 기관 뿐만 아니라, 연구 기관과 산업계에서도 이용이 증가하고 있습니다. 특히 미국 컴퓨터 학회(ACM)에 따르면 미국 대학생들에게 python은 java를 넘어 프로그래밍 및 컴퓨터 공학 입문용으로 가장 널리 활용되고 있는 것으로조사되었다고 합니다.

 

undefined

<절차 지향과 객체 지향이란?>

앞으로의 프로그래밍 언어에 관련된 포스팅에서 제대로 된 설명을 하기 앞서, 우선 절차 지향과 객체 지향에 대한 간단한 이해를 하고 갈 필요가 있습니다. 가령, 축구에도 공격적인 팀과 수비적인 팀이 있고 각각의 팀 컬러에 따른 장단점이 있듯이, 프로그래밍 언어에도 절차지향적인 언어와 객체지향적인 언어가 있습니다. 우선, 절차 지향(Procedural Programming)이란 프로그램에 대한 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법입니다. 대표적으로 C언어가 이에 포함되며, 이는 하드웨어의 처리량을 줄임으로써 프로그램 처리 시간을 획기적으로 줄일 수 있다는 장점을 갖고 있습니다.​ 하지만 유기적인 연결이 중요한 만큼 유지보수가 어려우며, 순서가 바뀔 경우 완전히 다른 결과가 나올 수 있어 비교적 난이도가 어렵다고 할 수 있습니다.

undefined

절차지향과 객체지향의 데이터 분석 방식, 개발새발 blog

객체 지향(Object Oriented Programming)은 프로그래밍 하는데 있어서 절차 지향보다 더 자유롭습니다. 마치 컴퓨터 부품을 하나씩 사서 조립을 한다고 봐도 되는데, 여러 개발자가 만들어 놓은 코드들을 필요한 부분만 가져와서 사용해도 별 문제가 생기지 않는다는 말입니다. 그래서 당연히 코딩이 절차 지향보다 간편하고, 코드의 재활용성이 훨씬 뛰어납니다. 하지만 하드웨어의 처리량을 줄여주지 못하여 처리속도가 비교적 느리다는 단점을 갖고 있습니다. 이번 포스팅에서 다루는 python도 객체 지향에 가까운 언어 중 하나입니다.

 

<Python의 특징>

파이썬의 문법에서 가장 잘 알려진 특징은 들여쓰기를 이용한 블록 구조를 사용하여 가독성을 높인 것이라고 볼 수 있습니다. 

예를 들어, 함수 factorial()을 정의할 때

undefined

<python>

undefined

<들여쓰기를 하지 않은 C>

undefined

 

<들여쓰기를 한 C>

다음과 같은 차이를 보입니다.

보이는 것처럼 C에서 들여쓰기는 가능한 여러 스타일 중 하나일 뿐이지만, python에서는 두 번째 같은 형식을 허용하지 않습니다. 이러한 시각적인 편리함이 많은 사람들이 python을 쓰는 이유입니다.

 

<Python의 활용>

Python이 처음 개발될 때는 Macintosh에서 사용할 목적으로 개발되었지만 지금은 다양한 플랫폼에서 활용됩니다. 대표적으로 Microsoft Window, Macintosh, 그리고 Linux등에서 사용됩니다. 또한 Kakao, NASA, Google, Yahoo 그리고 Youtube와 같은 세계적인 기관들도 python을 이용한다고 알려져있습니다.

undefined

<Python을 사용하는 대표적인 기업 및 단체들>

필자가 진학할 더럼 대학교도 1학년때는 python과 python을 이용한 Linux를 배우는 만큼 입문자에게 편하고 충분한 범용성을 갖춘 언어인 것 같습니다.

로그인


Reset Password 회원 가입하기