프로그래밍 언어는 정말 많은 종류가 있는데 왜 파이썬일까요? 파이썬 책을 보고 계시니 미리 공부를 하셨거나 혹은 누군가에게 조언을 받지 않았을까 조심스럽게 추측해 봅니다. 아니면 회사에서 파이썬을 배우라는 권고를 받으셨을 수도 있겠네요.
컴퓨터 프로그래밍 언어를 살펴보면 지금은 안쓰지만 기계어와 가장 가깝다는 어셈블리 언어를 시작으로 A, B, C, D, C#, C++, F#, 파이썬, 루비, 자바, 자바스크립트, 코틀린, 파스칼, 프롤로그, 포트란, 코볼, 리스프, 펄, R, 그루비, 스칼라, occam, Ada, Modula, Tcl, SmallTalk 등등등 정말 많습니다. 여기에 모바일용 프로그램을 만드는 언어 혹은 툴들을 추가로 살펴보면 코틀린, 스위프트, 자바, 리액트 네이티브, 플러터 등이 있습니다. 이렇게 많은 언어들이 있다보니 소프트웨어를 전공한 저도 사용해 보지 않은 언어 대부분입니다.
그럼 이렇게 다양한 프로그래밍 언어 중에서 왜 파이썬이 인기가 좋은지 왜 파이썬을 배우라고 하는지 이야기를 시작해 보고자 합니다.
첫번째로 꼽아야 할 이유는 쉽다는 것입니다. 다른 프로그래밍 언어에 비해서 쉽게 배울 수 있고 빠르게 프로그램을 만들어 볼 수 있다는 것입니다. 파이썬은 전 세계에서 가장 많이 사용하는 프로그래밍 언어라는 통계도 찾아볼 수 있습니다. 그런데는 이유가 있지 않을까요? 쉽고 강력하다는 것을 당장 증명하기는 어렵습니다만 믿고 따라와 주세요. 생전 처음 프로그래밍을 배우시는 분들도 따라오실 수 있도록 안내하겠습니다.
두번째로 사용분야에 거의 제약이 없습니다. 너무나도 다양한 분야에서 파이썬은 사용되고 있습니다. 웹 프로그래밍, 인공지능, 머신러닝, 수치연산 프로그램, 데이터 분석, 데이터베이스, 이미지 프로세싱, 시스템 유틸리티, GUI 프로그래밍 (Graphic User Interface), 다른 언어와 결합, 사물인터넷, RPA라고 하는 업무 효율화 그리고 게임 등등이 있습니다. 이렇게 범용적으로 사용되는 프로그래밍 언어를 저는 본 기억이 없는 것 같습니다. 그러면 어떠한 이유로 파이썬이 이렇게나 다양한 영역에서 사용이 될 수 있는 것일까요?
그것은 바로 위의 프로그래밍의 각 분야마다 다양한 패키지라는 것이 존재하기 때문입니다. 패키지 혹은 라이브러리라고도 부르는데요 각 분야의 기능이 어느 정도 미리 구현이 되어 있습니다. 그래서 프로그램을 만들 때에는 미리 구현된 기능을 가져다가 프로그래밍의 순서에 따라서 일종의 조립을 해 주게 됩니다. 패키지 또는 라이브러리라는 것은 이해하기 쉽게 레고블럭이라고 생각하시면 될 것 같습니다. 레고블럭은 특정 모델을 만들 수 있는 미리 만들어진 제품이 있기도 하고 범용적으로 사용할 수 있는 블럭들도 있죠. 이런 로고 블럭을 상상하시면 됩니다.
인공지능 프로그램을 예로 말씀드리면 이렇습니다. 파이썬에는 인공지능과 관련된 다양한 레고블럭이 있는 겁니다. 인공지능 알고리즘에 따라서 또는 누가 만들었느냐에 따라서 다양한 인공지능과 관련된 패키지가 존재하는 것입니다.
이런 파이썬 레고블럭이 어디 있는지 보시려면 인터넷에서 "python + 원하는 기능"으로 검색을 해 보면 많은 레고 블럭들이 존재함을 알 수 있습니다. 그리고 이런 블럭들은 대부분 pypi.org에 등록이 되어 있습니다. 만약에 필요한 패키지가 있다면 pypi.org에 접속해서 검색해 보시면 됩니다. 너무 많아서 검색이 어려울 수도 있습니다. 그리고 한 분야에 많은 패키지들이 있어서 어떤 것을 써야할지 모를때도 있습니다. 그럴땐 오히려 인터넷에서 검색합니다. 그러면 같은 기능을 가진 다양한 패키지들 중에서 어떤 것이 많이 사용되는지 알 수 있습니다. 우리는 이렇게 필요한 레고 블럭을 찾습니다. 그리고 내가 원하는대로 레고 블럭을 쌓기만 하면 됩니다.
이런 방식으로 우리는 파이썬 레고블럭을 찾고 찾은 레고블럭을 어떻게 쌓아갈지를 배우게 될 것입니다. 이런 레고블럭을 가지고 혼자서 뚝딱뚝딱 뭔가 만들어보는 것은 100% 무료입니다. 파이썬에 대한 사용료나 라이선스 비용을 낼 필요가 없다는 말씀입니다. 나만의 프로그램을 얼마든지 만들 수 있습니다. 마음속에 생각해 놓은 프로그램이 있다면 관련된 어떤 블럭들이 있는지 찾아보는 것도 재미 있을 것 같습니다. 단 이 레고 블럭을 이용해서 상용 소프트웨어 그러니까 판매를 목적으로하는 프로그램을 만든다면 해당 레고 블럭에 라이선스를 확인해 봐야 합니다. 대다수의 패키지들은 무료이지만 유료도 일부 있습니다.
꼭 남이 만든 블럭을 이용해서 프로그램을 만들 필요는 없습니다. 당신께서 직접 원하는 레고 블럭을 만들어 사용할 수도 있고 pypi.org에 올릴 수도 있습니다. 공짜로 나눠주기 싫다면 유료 라이선스로 올려서 로열티를 받을 수도 있습니다.
세번째는 한번 만든 프로그램을 윈도우, 맥 그리고 리눅스에서도 사용할 수 있도록 만들 수 있습니다. 운영체제별로 따로 배울 필요가 없다는거죠. 프로그래밍을 하는 과정 중에서 맥에서 프로그램을 실행하는 부분을 보여드리도록 하겠습니다.
아직도 파이썬이 왜 인기가 좋은지 실감이 안되시나요? 그럼 파이썬을 이용해서 서비스를 만든 대표적인 회사들을 한 번 알아볼까요? 그러면 좀더 실감을 하실 수 있을 것 같습니다. 구글, 인스타그램, 넷플릭스, 스포티파이, 드롭박스와 같은 회사에서도 그네들이 제공하는 서비스의 많은 부분에서 파이썬을 사용한다고 합니다. 이제 우리도 필요한 프로그램을 스스로 만들 수 있도록 한번 파이썬을 쓱 훑어 보는 시간을 가져보겠습니다. 한번 훑어보고 나서 더 배울지 것인지 그만둘 것인지 판단해도 늦지 않을테니까요.
파이썬의 단점도 알아봐야겠죠?
먼저 모든 것을 할 수 있는 것처럼 얘기했습니다만, 파이썬으로 할 수 없는 영역도 있지요. 파이썬이 만능은 아니라는 얘깁니다. 대표적으로 스마트폰에서 사용할 수 있는 어플리케이션을 이야기하는 모바일 프로그래밍은 안타깝게도 할 수 없습니다.
두번째 파이썬의 속도 문제입니다. 어떤 사람들은 치명적인 단점이라고 얘기하기도 합니다. 바로 속도가 느리다는 것입니다. 파이썬의 단점하면 바로 누군가의 입에서 나오는 얘기가 파이썬의 속도 문제입니다. 대표적인 언어 중의 하나인 c라는 언어에 비해서 50배 정도 느리다고 합니다. c는 프로그래밍 언어 중에서 대표적으로 가장 많이 사용하고 속도가 빠른 편에 속하는 언어입니다. 그런데 이 속도, 여러분이 프로그램 개발해서 사용하는데는 아무런 지장이 없을 정도로 빠릅니다. 다만 속도가 빠른 언어들과 비교했을 때 느리다는 것이지 일반적인 상황에서는 해당하지 않습니다. 여러분이나 제가 만들 프로그램이 계산을 수백만번, 수천만번 할 것도 아니기 때문에 단점이라고 얘기하는 속도는 크게 문제가 되지 않습니다.
세번째는 내가 힘들게 만든 프로그램의 소스코드를 남들이 너무나 쉽게 볼 수 있다는 문제가 있습니다. 엑셀 프로그램이나 파워포인트 프로그램의 소스를 우리는 볼 수 없습니다. 이것이 일반적입니다. 그런데 파이썬은 소스코드를 추출해 낼 수 있다고 합니다.
일반적으로 프로그램을 만들때는 프로그래밍 언어로 작성을 하고 작성된 파일을 실행파일로 만들어서 제품화 합니다. 실행파일로 만드는 것을 컴파일 한다고 합니다. 컴파일이라는 것은 우리가 이해하는 프로그래밍 언어를 컴퓨터가 이해하는 컴퓨터의 언어로 변환하는 과정입니다. 파이썬도 그렇게 할 수는 있습니다만, 파이썬이라는 언어는 스크립트 언어로 분류가 됩니다. 여러분이 잘 아시는 HTML이라고 웹페이지를 만드는 언어도 스크립트 언어 중의 하나인데요. 크롬 웹 브라우저를 사용하시면 F12 키를 눌러보세요. 오른쪽에 소스코드가 나타납니다. 스크립트 언어로 프로그램된 코드가 전달이 되고 전달된 코드를 번역기가 수행을 하는 방식입니다. 파이썬도 이와 유사하게 소스코드가 쉽게 노출 될 수 있다는 것입니다. 물론 이 문제를 방어할 수 있는 방법도 나와 있기는 합니다.
지금까지 엄청난 장점과 별 것 아닌 단점을 살펴봤습니다. 선택은 여러분의 몫입니다.
자~ 그러면 어떻게 파이썬 공부를 시작하는 것이 좋을까요?
책을 두 번 읽어보시라고 제안드리고 싶습니다. 처음엔 그냥 쭉 읽기만 하세요. 컴퓨터 앞에서 뭔가 직접 따라하려고 하지 마시고 그냥 읽어보세요. 쓱쓱 넘겨가며 훑는다는 느낌으로다가 읽어보시기 바랍니다. 그러다가 요거봐라 '해 볼만 하겠는데!'라는 생각이 들면 그때서야 컴퓨터 켜고 하나씩 따라해 보시면 좋을 것 같습니다.
예전엔 책 이외에는 참고할 만한 것들이 없었죠. 하지만, 요즘엔 인터넷을 검색하면 수많은 자료들을 찾을 수 있습니다. 언제든지 검색을 통해 많은 정보와 자료를 찾아 사용하시길 바랍니다.
'IT' 카테고리의 다른 글
첫 파이썬프로그램과 개발환경 (0) | 2025.01.30 |
---|---|
파이썬을 설치합시다 (1) | 2025.01.30 |
파이썬 - Qt 디자이너를 이용한 프로그램 만들기 (0) | 2025.01.30 |
파이썬 - GUI를 가진 프로그램 - PySide6 (0) | 2025.01.30 |
파이썬 - 파워포인트는 어떻게 만들까요? (0) | 2025.01.30 |
댓글