SW교육 | 소프트웨어 중심사회

프로그래밍 입문용 언어로 파이썬 어떠세요?

SW중심사회 2017-04-27 5341명 읽음

 


제4차 산업혁명을 맞이하는 전 세계가 코딩 교육에 주목하고 있습니다. 인공지능 로봇과 경쟁하고, 자율주행차와 드론을 이용해야 하는 우리 아이들에게 코딩은 영어와 같은 제2의 외국어가 될 것이란 주장도 나오고 있죠. 이에 미국, 영국, 이스라엘, 핀란드 등에 이어 우리나라도 SW교육 의무화를 앞두고 있습니다. SW융합형 인재 양성을 위해 내년부터는 중학교에서는 프로그래밍이 필수과목이 되고, 고등학교에서는 일반과목으로 바뀔 예정이라고 합니다. 이런 시대적인 변화에 학부모들도 마음이 편치는 않습니다. 자녀들이 혹여 트렌드에 뒤처지지는 않을까 걱정하며 코딩 교육에 대한 정보를 수집하고 관련 활동을 찾아 참여를 독려하고 있으니까요. 

 

사실 비전공자가 프로그래밍을 배운다는 건 쉬운 일이 아닙니다. 그래서 초등학생 중심으로는 알고리즘을 이해하는 블록형 코딩 교육이 주류를 이루고 있습니다. 그 대표적인 곳이 엔트리죠. 여러 개의 명령어를 하나로 묶은 블록들을 순서대로 열거하면서 프로그래밍을 이해하는 교육으로, 초․중․고급 과정으로 구분된 교육 프로그램을 이수하면 소프트웨어의 중요성을 깨닫고 코딩의 기초를 마스터할 수 있다고 합니다. 하지만 엔트리는 코딩을 쉽게 접할 수 있도록 한 블록형 코딩입니다. 그래서 프로그래밍을 좀 더 전문적으로 배우려는 학생들은 프로그래밍 언어를 배우려고 합니다. 

 

그렇다면 엔트리 중급과 고급 과정을 뗀 학생들은 어떤 프로그래밍 언어를 배우는 게 좋을까요? 최근 우리 주변을 둘러보면 이런 고민을 하는 학생들이 참 많습니다. 현직 프로그래머들이 가장 많이 사용한다는 자바? 객체지향의 프로그래밍 언어인 C? 아니면 홈페이지 개발 등을 위해 알아둬야 한다는 PHP? 앞서도 언급했듯 일반 학생들이 고급 프로그래밍 언어를 배우기는 쉽지 않은 일입니다. 프로그래밍 언어 자체보다는 언어를 활용하기 위한 환경에 대한 이해가 필요하기 때문입니다. 

 

 

과거 20년 전, 전산을 전공한다는 이유로 홈페이지를 만들고 싶다는 동네 선배들을 대상으로 교육을 진행해 본 적이 있습니다. 처음 HTML이 무엇인지 알려주면 모두 신기해하며 재미있게 배웠죠. 하지만 PHP와 데이터베이스 기술 쪽으로 넘어가면 상황은 달라집니다. 도메인, 서버, 데이터베이스의 기본기를 숙지해야 이해할 수 있는 일이기 때문에 초반에 몇 번 관심을 두다가도 중간에 그만둔 일이 많았죠. 아마 이런 과정은 우리 학생들에게도 똑같이 발생할 수 있으리라 봅니다. 하지만 ‘파이썬(Python)’을 이용했다면 그 당시 선배들이 중간에 포기하는 일은 없을 것 같다는 생각을 하게 됩니다. 필자가 엔트리를 마스터한 학생들에게 파이썬에 관심을 가져보라고 조언하는 이유이기도 하죠.

 

파이썬이 어떤 프로그래밍 언어냐고 묻는다면 쉽게 차량에 비유할 수 있을 듯합니다. C와 C++은 온갖 기능을 갖춘 스포츠카, 자바는 수동 기어가 달린 세단, 파이썬은 오토매틱 기어를 제공하는 세단이라고 볼 수 있기 때문이죠. 사실 수동 기어의 자동차는 다루기가 어려워 전문 드라이버들이 이용하지만, 오토매틱 기어의 자동차는 누구나 배우기도 쉽고 다루기도 쉽습니다. 한 마디로 파이썬은 입문용으로 매우 적절한 프로그래밍 언어로, 학습 목표에 따라 다양한 활용이 가능하다고 말할 수 있습니다. 

 

 

그럼, 파이썬에 대해 자세히 배워볼까요? 파이썬은 1990년 네덜란드의 개발자인 귀도 반 로섬(Guido Van Rossum)이 개발해 발표한 프로그램 언어입니다. CWI(Centrum voor Wiskunde en Informatica)라는 국립 수학 및 컴퓨터 과학 연구기관에 근무하면서 인터프리터 언어를 개선하는 프로젝트를 맡고 분산시스템을 연구한 경험을 토대로 개발한 언어로, 파이썬은 귀도 반 로섬이 평소 좋아하던 개그 그룹명(Monty Python)에서 따온 단어라고 합니다. 또한, 파이썬이 사전적인 의미는 고대 그리스 신화에 나오는 뱀으로, 파이썬의 로고는 뱀을 형상화한 형태죠. 

 

재미있는 점은 파이썬이 자바보다 더 오랜 역사를 자랑한다는 것입니다. 국내에서는 대중적으로 잘 알려지지 않았지만, 해외에서는 오래전부터 입문용 프로그래밍 언어로 널리 쓰이고 있습니다. 또한, 전 세계가 주목하는 구글도 파이썬을 이용한 프로젝트들을 대거 진행해 왔는데, 그 대표적인 사례가 파일 동기화 서비스인 드롭박스(Dropbox)입니다. 매년 수백만 명의 프로그래머들이 도전하는 코드 경진대회 서비스인 코드이벨(Codeeval, www.codeeval.com)이 집계한 프로그래밍 언어 인기 순위에서도 파이썬은 5년 연속 1위를 차지했습니다. 전년도 발표 자료에 따르면 가장 인기 있는 프로그래밍 언어는 파이썬, 자바, C++, C#, C, 자바스크립트, 루비, PHP 순이었습니다. 

 

 

그럼, 파이썬이 인기를 누리는 이유는 무엇일까요? 결론부터 말하면 높은 가독성과 생산성을 꼽을 수 있습니다. 다른 언어에 비해 코드가 짧고 간결하지만 다양한 기능을 구현할 수 있다는 얘기죠. 실제로 런파이썬 홈페이지(https://goo.gl/s6KtYA)에 가보면 프로그래밍을 시작할 때 기본적으로 배우는 ‘Hello World’ 출력 예제로 파이썬의 장점을 확인할 수 있습니다. 자바나 C언어에서는 3줄 이상의 코드가 필요하지만 파이썬은 단 한 줄! ‘print(“Hello World!”)’면 충분합니다. 또한, 자바와 C 등에서는 문법적인 블록을 지정하기 위해 중괄호({})와 같은 기호를 사용하지만, 파이썬은 들여쓰기만 하면 됩니다. 

 

 

교육용 프로그래밍 언어로 많이 쓰이는 루비(Ruby)도 파이썬처럼 코드가 간결하고 생산성이 뛰어납니다. 하지만 루비는 하나의 답을 낼 때 다양한 형태의 코드가 나올 수 있지만, 파이썬은 구현하는 사람에 차이 없이 코드 결과가 나올 수 있다는 것이죠. 그래서 파이썬을 직관적인 프로그래밍 언어라고 말합니다. 이 외에도 파이썬은 다양한 특징이 있는데, <Jump To Python> 도서에서 소개한 내용을 간추려보면 다음과 같습니다. 

 

1. 매우 직관적이며 인간다운 언어입니다. 
파이썬 문법은 사람이 생각하는 방식을 그대로 표현하는 언어입니다. 

2. 문법이 쉬워 초보자도 배우기에 좋습니다.  
사람의 사고 체계와 닮아 배우기 쉽고 활용하기에도 쉬운 언어입니다. 유명 프로그래머인 에릭 레이먼드은 파이썬을 공부한 지 하루 만에 원하는 프로그램을 짤 수 있었다고 회고한 바 있죠. 

3. 무료이면서도 강력한 언어입니다. 
파이썬은 오픈소스로 공개된 인터프리터 언어입니다. 인터프리터 언어이기 때문에 성능에 문제가 있다는 주장도 있지만, 파이썬은 다른 언어로 짠 프로그램을 포함할 수 있어 인터프리터 언어의 약점을 극복합니다. 예컨대 프로그램의 뼈대는 파이썬으로 만들고, 빠른 실행 속도가 필요한 부분은 C로 만들어 포함할 수 있습니다. 

4. 코드가 간결합니다. 
파이썬의 코드는 ‘하나의 우아한 해답’을 도출하는 데 주력한 언어입니다. 따라서 다른 사람이 작업한 소스코드도 한눈에 이해할 수 있고, 공동 작업을 하거나 유지 보수가 필요할 때 도움이 됩니다. 

5. 프로그래밍을 즐기게 해줍니다. 
파이썬은 다른 것에 신경 쓸 필요 없이 내가 하고자 하는 부분에 집중할 수 있도록 합니다. 덕분에 개발 속도가 빠르죠. 그래서 프로그래머들 사이에서는 “Life is too short, You need python.(인생은 너무 짧기 때문에 파이썬이 필요하다.)”란 말이 회자된다고 합니다. 

 

일련의 특징을 살펴보니 파이썬을 배워야겠다는 생각이 드시나요? 그렇다면 파이썬을 배워서 어떤 프로그램을 작성할 수 있을지 궁금할 수 있을 텐데, 파이썬을 이용하면 모바일앱을 제외하고 대부분의 프로그램을 짤 수 있습니다. 요즘 유행하는 ‘가성비 甲’의 프로그래밍 언어라고 할 수 있죠. 실제로 파이썬은 자체적으로 시스템 명령어를 갖추고 있어 윈도, 매킨토시, 리눅스 등의 시스템 유틸리티를 제작할 수 있습니다. 파이썬을 설치할 때 함께 깔리는 ‘Tkinter’를 이용하면 간단한 GUI 프로그램도 만들 수 있고, ‘DJango’를 이용하면 웹 프로그램이 가능합니다. 참고로 구글 사이트도 파이썬으로 만든 웹사이트란 사실!! 또한, 사이베이스, 인포믹스, 오라클, MYSQL 등 다양한 데이터베이스 프로그램이 가능합니다. 

 

 

필자가 가장 관심을 두는 부분은 사물인터넷과 관련한 프로그래밍이 가능하다는 점입니다. 컴퓨터과학 교육용으로 전 세계에서 널리 쓰이고 있는 신용카드 크기의 싱글보드 컴퓨터인 라즈베리파이가 파이썬을 사용하기 때문이죠. 라즈베리파이 설명서를 보면 파이썬을 ‘읽고 쓰기 쉬우면서도 강력한 프로그래밍 언어’라고 정의하면서 파이썬 프로그래밍으로 라즈베리파이에 연결된 모터, 램프 등의 기기를 제어하라고 추천합니다. 이는 사물인터넷과 관련한 다양한 프로그래밍 구현이 가능토록 하는 점이죠.  

 

물론 프로그래밍은 억지로 배운다고 해서 배워지는 게 아닙니다. 프로그래밍의 재미를 느껴야 하고, 그 재미를 알아가면서 어떤 개발자가 될 것인지 방향을 잡을 수 있습니다. 때문에 프로그래밍 언어를 배우려는 학생들에게 재미있는 미션을 찾아 프로그래밍을 시작해 보라고 추천하고 싶습니다. 이를테면 라즈베리파이를 이용해 내가 만든 드론을 파이썬 프로그래밍으로 조정하고 싶다거나 하는 목표를 세우시길 바랍니다. 아울러 파이썬 프로그래밍을 즐기면서 생각하는 방법을 배우고 문제해결력을 키우시길 바랍니다. 

 

<출처 : 파이썬 공식 홈페이지 www.python.org> 

 

참고로 파이썬을 처음 시작하는 학생들은 파이썬 공식 홈페이지(www.python.org)에서 파이썬3을 윈도 데스크톱에 다운로드받아 설치한 후 파이썬 GUI인오픈 IDLEfmf 실행해 “Hello, World”란 코드부터 출력해 보시길 바랍니다. 이후 해당 홈페이지에서 입문자 가이드를 밟아나가면서 코딩을 배워보세요.  

 

 

관련 콘텐츠

홈페이지 만족도

콘텐츠 내용에 만족하십니까? 현재 페이지의 만족도를 평가해 주십시요. 의견을 수렴하여 빠른 시일 내에 반영하겠습니다.

등록