Python 코딩

HELLPY#1. 파이썬으로 할 수 있는 일들

코딩(Coding)의 시대. 전문가의 영역이라 여겼던 코딩은 이제, 2018년 부터 초, 중, 고등학교 교육과정에서 전면 의무화가 된다. 이미 영국, 인도 등의 나라에서는 의무 교육화 돼 교실에서 스크래치(Scratch)나 앱인벤터(appinventor) 등 GUI 기반의 소프트웨어를 통한 코딩 교육이 활발하게 이뤄지고 있다. 심지어 아두이노(Arduino)나 라즈베리파이(Rasberry-Pi) 등의 하드웨어를 활용한 IoT(사물인터넷) 교육도 진행된다. 이같은 흐름에 맞춰 국내에도 여러 코딩 전문 교육기관이 생겨나고 무크 강좌도 개설되면서 과거보다 수월하게 코딩의 세계에 발을 들여놓을 수 있게 됐다. 그런데 막상 마음먹고 나면 무엇을, 어떻게 해야할지 망설이게 된다. 코딩의 ‘코’자도 모르는 상황에서  100여 종이 넘는 프로그래밍 언어는 시작부터 난관이다. C, C++, JAVA, PHP, Perl, JAVA script, Python, Ruby, Swift, Visual Basic 등 알려진 것만도 무수히 많다.

전문 프로그래머의 경우라면 C나 C++, JAVA를 시작으로 해서 능선을 넘는다고 하지만 난이도가 높기 때문에 일반적으로 접근하기에는 무리가 있다. 그렇다면, 시작하는 입장에서 어떤 언어가 가장 탁월한 선택일까?. 물론 여기에 답은 없다. 각자의 취향이나 필요에 의한 선택이 있을 뿐이다. 필자의 경우라면 ‘파이썬'(Python)을 추천한다. 여기서 앞으로 다루고자 하는 언어 역시 ‘파이썬’이다. 파이썬의 장점은 무수히 많지만 무엇보다 강점은 다른 언어에 비해 규칙에 직관성이 높아 배우기가 쉽다는 점이다. 또한 범용 언어로서 모바일 앱을 제외하고 대부분의 프로그램(구글도 파이썬으로 제작됐다)을 짤 수 있다는 것도 매력이다. 쉽게 말해, 가성비가 좋은 언어다. 이런 장점을 무기로 전체 언어 중 파이썬이 차지하는 비중은 그야말로 가파르게 상승 중이다.(난공불락의 레전드급 언어인 JAVA와 C까지 위협 중이다). 이는 수치 상으로도 드러난다. 코딩 전문 그룹인 타이오베(Tiobe)가 공개하는 코딩 언어 점유율 순위를 보면 JAVA(19.8%), C(12.2%), C++(6.3%)에 이어 4위(4.1%)를 기록했다. 전년 대비 한계단 상승한 것이다.

 

코딩 전문 그룹 타이오베(Tiobe)가 공개한 전세계 코딩 언어 점유율 순위. 파이썬은 작년 대비 한계단 상승한 4위를 기록했다. 그림을 클릭하면 해당 사이트로 이동
전세계 코딩 언어 점유율 순위. 파이썬은 작년 대비 한계단 상승한 4위를 기록했다.

 

그렇다면 파이썬의 장점은 무엇일까?. 자세히 알아보기로 한다.  박응용 저자의 <점프 투 파이썬>(이지스 퍼블리싱 刊)을 참고했다. 입문 교재로 추천한다.(저자와 아무런 이해관계가 없다)

이썬은 쉽다
무엇보다 파이썬의 장점은 코딩에 처음 입문하는 사람이라도 빠르고 쉽게 배울 수 있다는 점이다. 파이썬은 문법 자체가 간결하고, 인간의 언어체계와도 매우 유사하다. 물론 언어 그 자체의 규칙을 지닌 것은 아니지만 인간이 생각한 방식 그대로 결과화된다. <점프 투 파이썬>의 저자가 제시한 예시로 부연 설명을 하면 이렇다.

if 4 in [1,2,3,4]: print(“4가 있습니다”) 라는 코드를 작성했다고 가정하자, 이를 인간의 언어로 읽는다면  만약(if) 4가 1,2,3,4 중(in) 있으면 ‘4가 있습니다’를 출력(print)한다. 로 해석할 수 있다. 언어 자체를 모르더라도 직관적으로 이해하기 쉽다. 파이썬은 이런 언어다.

료이지만 강력하다
파이썬은 무료다. 자체가 오픈소스이기 때문이다. 때문에 유저는 사용료를 걱정하지 않아도 되고 이를 이용한 프로그램을 제작하더라도 로열티를 지불할 필요도 없다. 언제 어디서든 공식 페이지를 통해서 내려받을 수 있다. 또한 업데이트도 꾸준하게 이뤄지고 있다. 또한 다른 언어와도 쉽게 연동이 가능해 복잡하고 반복 연산이 많은 프로그램도 짤 수 있다. 더불어 자체적으로 풍부한 라이브러리(일종의 플러그인)를 가지고 있어 파이썬 만으로도 훌륭한 프로그램을 제작할 수 있다.

른 개발속도
파이썬은 간결성을 무기로 프로그램 개발 속도를 높인다.  또한 공동작업이 수월하기 때문에 다양한 유저들의 아이디어를 접목할 수 있고, 유지보수가 쉽다. 다른 것에 신경쓸 필요 없이 내가 쓰고자, 하고자 하는 부분에만 집중할 수 있도록 언어 자체가 짜여있다.

이썬으로 할 수 있는 일

*시스템 유틸리티 제작
파이썬은 자체적으로 시스템 명령어를 갖추고 있기 때문에 시스템 유틸리티를 만드는데 유리하다.

*GUI 프로그래밍
GUI는 ‘Graphic User Interface’의 약자로 사용자가 보기 사용하기 쉽도록 그래픽 기반으로 마우스나 키보드로 조작할 수 있는 프로그램을 말한다. 파이썬은 이 GUI 프로그램 제작하는데 그 어떤 프로그램보다 용이하다. 한 예로 파이썬 프로그램을 설치할 때 함께 설치되는 Tkinter를 이용해 제작하는 GUI 프로그램을 들 수 있다. Tkinter를 이용하면 다섯줄의 소스코드 만으로도 윈도우창을 띄울 수 있다.

*웹 프로그래밍
크롬이나 익스플로러, 파이어폭스 같은 브라우저를 이용해 사용하는 프로그램을 말한다. 우리가 인터넷을 사용하면서 일반적으로 접하는 게시판이나 방명록 등이 여기에 포함된다. 파이썬은 이런 프로그램도 만들 수 있다. 구글도 파이썬을 사용한다.

*데이터분석, 사물인터넷
판다스(Pandas)라는 모듈을 이용하면 데이터 분석을 쉽고 빠르게 할 수 있다. 아직 R이라는 데이터 분석에 특화된 언어가 있지만 판다스가 등장한 이후 파이썬을 통해 데이터를 분석하는 이들도 점차 늘고 있다. 사물인터넷 분야에서도 활용도가 높아 라즈베리파이를 이용한 파이썬 기반의 솔루션도 개발되고 있다.

이 밖에도 파이썬의 장점은 무수하다. 복잡한 연산을 필요로 하는 수치연산 프로그램 제작이나 오라클이나 인포믹스 등 데이터베이스 솔루션에도 접근이 쉬워 그 활용도는 무궁무진하다. 다만, 파이썬 자체로 모바일 프로그램은 할 수 없다. 물론 안드로이드 운영체제에서 파이썬으로 제작한 프로그램이 실행되도록 지원하고 있지만 자유도 높은 프로그램을 제작하기에는 아직 무리다. 앞으로 점차 개선될 것으로 보이지만, 미지수다. 앱을 제작하고 싶은 분이라면 파이썬은 추천하지 않는다.


Warning: printf(): Too few arguments in /home/lightover/html/wp-content/themes/fortunato-pro/inc/template-tags.php on line 47
되고 싶은 것보다 하고 싶은게 많아요. 어느 순간 둘 중 하나를 선택해야 한다면 하고 싶을 걸 택할 겁니다. 삶은 짧고, 불확실하니까.