이 글은 미시건 주립대학교 찰스 교수의 MOOC강의인 Python for Everybody를 수강하고 정리하며 쓰는 글입니다.
0. 들어가기 전에.
필자는 현재 Python for Every body의 마지막 챕터를 남겨두고 기초문법에 대해 정리를 하며 글을 쓰고 있다. 2013년 빅데이터라는 단어가 유행하기 시작했을 때부터 지금까지 데이터는 정말 뜨거운 종목이다. 사실 초반까지만 하더라도 빅데이터는 단순히 거대한 양의 정형화된 데이터를 일컬었다. 방대한양의 데이터가 저장될 수 있는 여건이 갖춰지기 시작했고 그 데이터의 중요성이 매우 부각되었기 때문이다. 하지만 점점 빅데이터의 범위는 넓어졌고, 현재에는 비정형화된 데이터까지 모두 포함한 데이터를 일컫는다. 빅데이터가 유망한 산업으로 떠오르며 데이터를 다루는 도구(tool) 역시 주목받기 시작했다. 그 중 하나가 파이썬이다. 파이썬 언어는 데이터를 다루기에 최적화 되어있다. 심지어 활용성이 넓어 AI에 까지 쓰이고 있다.
데이터는 현 시대를 살아가는데 있어 뗄레야 뗄 수 없는 도구이다. 우리가 자주 쓰는 네이버나 카카오톡의 UI배치 역시 사람들의 데이터를 분석하여 가장 적합한 위치에 셋팅되어있으며, 우리가 흔히 페이스북이나 인스타그램에서 보는 광고들 역시 사용자의 데이터를 기반으로 가장 적합한 광고를 노출시키는 것이다. 그렇다보니 ‘빅데이터’라는 재료 측면에서 최근에는 ‘데이터 사이언스’라는 학문이 도구(tool)로써 인기가 폭발적이다. 구글 트렌드를 보면 2019년에 데이터사이언스가 빅데이터를 제쳤음을 알 수 있다.
그렇다보니 데이터사이언스에 대한 강의도 인터넷에서 많이 찾아볼 수 있다. 현재 이 강의들은 개발자를 대상으로 할 뿐만 아니라, 기획이나 마케팅분야의 종사자를 대상으로도 열리고 있다. 실제로 직장인을 대상으로 한 파이썬강의도 쉽게 찾을 수 있다. 필자도 기획을 준비하고 데이터 분석에 관심이 생겨서 파이썬을 공부하기 시작했다. 혹시 지금 파이썬을 독학해보려 한다면 MOOC강의를 추천한다. MOOC강의란 유명 대학의 강의를 온라인으로 무료로 들을 수 있는 시스템이다. 필자는 미시간 대학의 컴퓨터공학 교수인 Dr.Charles R, Severance의 Python for Everybody 수업을 들었다. 이 강의는 전 세계 100만명 이상이 들은 강의이다. 영어이긴 하지만 네이버 커넥트 재단에서 번역작업후 5개 파트로 나누어서 에드위드를 통해 무료로 강의를 제공하고 있다.
1. 프로그래밍을 왜 할까?
- 기술의 이해-
프로그래밍을 하는 이유는 사실 매우 간단하다. 컴퓨터가 우리를 위해서 일을 하도록 하는 것이다. 프로그래밍을 통해 우리는 게임, 길잦기 그리고 자율주행까지 이루어내고 있다. 하지만 프로그래밍을 모르면 이러한 기술들을 이해하지 못한채 지나가게 된다. 얼마나 안타까운가. 구글은 작년 2019년 말에 티처블머신2.0을 공개하였다. 이를 통해 구글은 어린이도 머신러닝을 배울 수 있다고 자신했다. 이 말은 매우 쉽다는 것이다. 티처블 머신으로 이미지 뿐만 아니라 소리와 자세까지 학습한 모델을 만들어 내고, 학습모델은 무료로 소스로 제공된다. 이 소스를 통해 개발자들은 다양한 프로그램을 만들 수 있게 되었다. 예를 들면, 다양한 연예인의 얼굴을 학습한 모델을 통해 닮은 연예인 꼴 찾기가 한창 올해 초에 유행하였는데, 이또한 티처블 머신으로 만든 것이다. 유튜브에도 손쉽게 강의를 찾아볼 수 있다. 또한 자세를 학습한 학습모델로 나의 운동자세가 올바른지 아닌지 구분하는 프로그램도 만들 수 있다. 하지만 우리가 프로그래밍을 모른다면 이런 AI를 이해조차 하지못한채 넘어가는 것이다.
우리는 컴퓨터가 우리 세상을 지배하게 두는 것보다 우리가 우리의 일을 하도록 시키는 것이 중요하다. 특히 프로그래밍을 할 수있다면 개인적인 업무는 더 효율적으로 셋팅하여 나만의 프로그램을 짤 수도 있다. 특히 데이터를 다루는 일이 많은데 파이썬은 데이터 마이닝, 분석 등을 위한 매우 좋은 프로그래밍 언어이다. 우리는 단순히 컴퓨터를 도구로 사용하기보다 우리가 원하는대로 컴퓨터를 이용할 수 있도록 변해야 한다.
- 많은 정보를 빠르게 처리 한다.-
컴퓨터는 많은 양의 정보를 빠르게 읽을 수 있다. 업무자동화를 통해 몇 년을 걸릴 일을 단 하루만에 끝낼 수도 있다. 2년전에 카이스트 공대생이 공익으로 일하고 있는 뉴스를 본적이 있다. 그 학생은 단순히 연구소에 가기 싫어서 공익을 지원해서 공공기관에서 일하고 있었다. 그 때 약 1년치의 자료를 정리해야하는 매우 단순하고 반복적인 업무를 받았고, 이 업무는 8시간씩 반년이 걸릴 일이었다. 하지만 그 학생은 일을 받고 프로그램을 짜기 시작했고, 단 30분만에 일을 끝냈다.
우리는 단순 반복적인 업무를 할 때가 정말 많다. 하지만 우리가 프로그래밍을 배운다면 업무자동화를 통해 몇 년을 걸릴 일을 단 하루만에 끝낼수도 있는 것이다.
2. 언어로써의 파이썬?
파이썬을 가르치는 찰스교수는 미시건 대학에서 학생들에게 슬리데린의 교수라고 불리고 있다. 파이썬이 뱀의 언어이기 때문이다. ‘파이썬(Python)’이란 영어의 의미는 원래 그리스 신화에 나오는 뱀 이름이다. 파이썬 로고에 두 마리의 뱀 그림이 있는 이유도 이 때문이다. 하지만 파이썬을 제작한 귀도 반 로섬이 실제 ‘파이썬’이란 단어를 선택할 당시에는 그리스 신화를 참고한 것은 아니었다.
귀도 반 로섬이 고안한 언어 1980년대. 실제로 파이썬은 뱀을 위한 언어라거나 해리포터와 관련이 있지는 않다. 귀도 반 로섬은 Month Python’s Flying 이라는 서커스에서 영감을 받아서 파이썬이라는 이름을 지었다고 한다. 강력하지만 다가가기 쉽고 재밌는 프로그래밍 언어를 만들고 싶었던 귀도 반 로섬의 마음을 잘 보여준다고 할 수 있다. 파이썬이 최근에 인기가 많아진 이유 또한 배우기 쉽고 간결하고 강력하기 때문이다. 2020년 티오베의 결과에 따르면 파이썬은 작년과 동일하게 언어 인기랭킹 3위를 기록했음을 알 수 있다.
프로그래밍 언어는 기계어를 가공해서 인간이 쓸 수 있게 만든 것이다. 그래서 기계어는 저급 언어이고 어셈블리어가 좋은 예시다. 고급언어일수록 인간언어에 가까운데, 여기서 파이썬은 매우 훌륭한 고급언어이다. 파이썬을 배워보면 알겠지만 인간의 언어와 매우 유사하다.
print('Hello World!')
위의 코드를 입력하면 print안의 내용이 정확하게 입력된다. 그럼에도 저급언어를 쓰는 이유는 실행속도도 빠르고 세부적으로 조작이 가능하며 낮은 사양의 컴퓨터에서도 작동하기 때문이다. 예를 들어 C언어 같은 경우 고급언어이지만 파이썬에 비해 저급언어에 가깝다. 그래서 C언어의 경우 각종 장비, 무기, 엔진 뿐만 아니라 사물인터넷에서도 사용되고 있다. 하지만 우리는 주로 컴퓨터에서 작동하는 프로그램을 만들 것이고, 최근 컴퓨터는 고급언어를 사용함에 있어 무리가 없으므로 우리는 파이썬을 배우고 있다.
참고
'Language > Python' 카테고리의 다른 글
<파이썬 기초> 06. 루프와 반복문 (0) | 2020.10.03 |
---|---|
<파이썬 기초> 05. 함수 (0) | 2020.10.02 |
<파이썬 기초> 04. 조건부 실행 (0) | 2020.10.01 |
<파이썬 기초> 03. 변수, 표현식 및 코드 (0) | 2020.09.30 |
<파이썬 기초> 02. 예약어와 파이썬 구문 (0) | 2020.09.29 |