2021년 대학교 여름 방학이 시작되었다. 1학년인 나로써는 처음 맞이하는 대학교 방학이다.
이 시간을 허투로 쓰지 않기 위해 'Do it! 점프 투 파이썬' 책을 구입해 독학하기로 하였다.
이번 공부의 목표는 유튜버 '조코딩'의 '점프 투 파이썬' 오픈 강의를 하루에 한 강의씩 들으며 복습을 꾸준히 하는 것이다.
파이썬이라는 언어를 처음 접하는 것이기 때문에 굉장히 설레인다.
파이썬(Python)은 1990년 암스테르담의 귀도 반 로섬(Guido Van Rossum) 이 개발한 인터프리터 언어이다. 귀도는 파이썬 이라는 이름을 자신이 좋아하는 코미디 쇼인 '몬티 파이썬의 날아다니는 서커스' 에서 따왔다고 한다. 파이썬의 사전적 의미는 고대 신화에 나오는 파르나소스 산의 동굴에 살던 큰 뱀을 뜻하며, 아폴로 신이 델파이에서 파이썬을 퇴치했다는 이야기가 전해지고 있다. 대부분의 파이썬 책 표지와 아이콘이 뱀 모양으로 그려져 있는 이유가 여기에 있다.
인터프리티 언어란 한 줄씩 소스 코드를 해석해서 그때그때 실해해 결과를 바로 확인할 수 있는 언어이다.
프로그래밍이란 인간이 생각하는 것을 컴퓨터에 지시하는 행위라고 할 수 있다. 앞으로 살펴볼 파이썬 문법에서도 보게 되겠지만, 파이썬은 사람이 생각하는 방식을 그대로 표현할 수 있는 언어이다. 따라서 프로그래머는 굳이 컴퓨터의 사고 체계에 맞추어서 프로그래밍을 하려고 애쓸 필요가 없다.
다음 소스 코드를 보면 이 말이 쉽게 이해될 것이다.
if 4 in [1,2,3,4]: print("4가 있습니다")
위 예제는 다음처럼 읽을 수 있다.
만약 4가 1,2,3,4 중에 있으면 '4가 있습니다' 를 출력한다.
프로그램을 모르더라도 직관적으로 무엇을 뜻하는지 알 수 있다. 마치 영어 문장을 읽는 듯한 착각에 빠져든다.
파이썬은 문법 자체가 아주 쉽고 간결하며 사람의 사고 체계와 매우 닮아 있다. 배우기 쉬운 언어, 활용하기 쉬운 언어가 가장 좋은 언어가 아닐까?
오픈소스인 파이썬은 당연히 무료이다. 사용료 걱정 없이 언제 어디서든 파이썬을 다운로드 하여 사용할 수 있다. 또한 프로그래머는 만들고자 하는 프로그램의 배부분을 파이썬으로 반들 수 있다.
파이썬과 C는 찰떡 궁합이란 말이 있다. 즉 프로그램의 전반적인 뼈대는 파이썬으로 만들고, 빠른 실행 속도가 필요한 부분은 C로 만들어서 파이썬 안에 포함시키는 것이다.
필자는 소프트웨어 학과 전공 학생이다. 1학년 1학기 때 C언어를 배워서인지 파이썬을 하기에는 수월했다. 정말 마음먹고 프로그래밍을 배우고 싶다면 C 언어를 먼저 접해보고 파이썬을 해 보는 것을 추천한다. 왜냐하면 복잡한 C 언어를 배우다가 간편한 python을 배우면 프로그래밍이 그렇게 재밌을 수가 없다.
사실 파이썬 라이브러리 중에는 순수 파이썬만으로 제작된 것도 많지만 C로 만든 것도 많다.
파이썬 홈페이지 링크
https://www.python.org
오픈 소소(Open Source)란 저작권자가 소스 코드를 공개하여 누구나 별다른 제한 없이 자유롭게 사용, 복제, 배포, 수정할 수 있는 소프트웨어이다.
파이썬 라이브러리는 파이썬 프로그램을 작성할 때 불러와 사용할 수 있는 미리 만들어 놓은 파이썬 파일 모음이다.
귀도는 파이썬을 의도적으로 간결하게 만들었다. 이 간결함의 철학은 파이썬 문법에도 그대로 적용되어 파이썬 프로그래밍을 하는 사람들은 잘 정리되어 있는 소스 코드를 볼 수 있다. 다른 사람이 작업한 소스코드도 한눈에 들어와 이해하기 쉽기 때문에 공동 작업과 유지 보수가 아주 쉽고 편하다.
다음은 파이썬 프로그램의 예제이다. 이 프로그램 소스 코드를 굳이 이해하려 하지 않아도 된다. 한번 구경해보자.
languages = ['python', 'perl', 'c', 'java']
for lang in languages:
if lang in ['python', 'perl]:
print("%6s need interpreter" %lang)
elif lang in ['c', 'java']:
print("%6s need compiler" %lang)
else:
print("should not reach here")
이 예제는 프로그래밍 언어를 판별하여 그에 맞는 문장을 풀력하는 파이썬 프로그램 예제이다. 다른 언어에서 늘 보게 되는 단락을 구분하는 괄호({}) 문자가 보이지 않는 것을 확인할 수 있다.
또한 줄을 참 잘 맞춘 코드라는 것도 알 수 있다. 파이썬 프로그램은 줄을 맞추지 않으면 실행되지 않는다. 코드를 예쁘게 작성하려고 줄을 맞추는 것이 아니라 프로그램이 실행 되게 하려면 꼭 줄을 맞추어야 하는 것이다 이렇듯 줄을 맞추어 코드를 작성하는 행위는 가독성에 크게 도움이 된다.
이렇게 코드의 줄을 맞추는 것을 '들여쓰기' 라고 부른다. 파이썬에서 들여쓰기를 하지 않으면 실행되지 않는다
이 부분이 가장 강조하고 싶은 부분이다. 파이썬만큼 필자에게 프로그래밍을 즐기게 해 준 언어는 없었다. 파이썬은 다른 것에 신경 쓸 필요 없이 내가 하고자 하는 부분에만 집중할 수 있게 해준다.
마지막으로 재미있는 다음 문장으로 파이썬의 특징을 마무리 하겠다.
파이썬으로 할 수 있는 일은 아주 많다. 대부분의 프로그래밍 언어가 하는 일을 파이썬은 쉽고 깔끔하게 처리한다. 파이썬으로 할 수 있는 일들을 나열하자면 끝도 없겠지만 대표적인 몇 가지 예를 들어보겠다.
파이썬 운영체제의 시스템 명령어를 사용할 수 있는 각종 도구를 갖추고 있기 때문에 이를 바탕으로 갖가지 시스템 유틸리티를 만드는 데 유리하다. 실제로 여러분은 시스템에서 사용 중인 서로 다른 유틸리티성 프로그램을 하나로 뭉쳐서 큰 힘을 발휘하게 하는 프로그램들을 무수히 만들어 낼 수 있다.
유틸리티란 컴퓨터 사용에 도움을 주는 여러 소프트웨어를 말한다.
GUI(Graphic User Interface) 프로그래밍이란 쉽게 말해 화면에 또 다른 윈도우 창을 만들고 그 창에 프로그램을 동작시킬 수 있는 메뉴나 버튼, 그림 등을 추가하는 것이다. 파이썬은 GUI 프로그래밍을 위한 도구들이 잘 갖추어져 있어 GUI 프로그램을 만들기 쉽다.
파이썬은 접착의 언어라고도 부르는데, 그 이유는 다른 언어와 잘 어울려 결합해서 사용할 수 있기 때문이다. C 나 C++ 로 만든 프로그램을 파이썬에서 사용할 수 있으며, 파이썬으로 만든 프로그램 역시 C 나 C++에서 사용할 수 있다.
일반적으로 익스플러러나 크롬, 파이어폭스 같은 브라우저로 인터넷을 사용하는데, 누구나 한 번쯤 웹 서핑을 하면서 게시판이나 방명록에 글을 남겨 본 적이 있을 것이다. 그러한 게시판이나 방명록을 바로 웹 프로그램이라고 하낟. 파이썬은 웹 프로그램을 만들기에 매우 적합한 도구이며, 실제로 파이썬으로 제작한 웹 사이트는 셀 수 없을 정도로 많다.
파이썬은 사이베이스(Sybase), 인포믹스(Infomix), 오라클(Oracle), 마이에스큐엘(MySQL), 포스트그레스큐엘(PostgreSQL) 등의 데이터베이스에 접근하기 위한 도구를 제공한다.
또한 이런 굵직한 데이터베이스를 직접 사용하는 것 외에도 파이썬에는 재미있는 도구가 하나 더 있다. 바로 피클(pickle) 이라는 모듈이다. 피클은 파이썬에서 사용하는 자료를 변형 없이 그대로 파일에 저장하고 불러오는 일을 맡아 한다. 이 책에서는 라이브러릴에서 피클을 어떻게 사용하고 활용하는지에 대해서 알아본다.
필자가 관심있게 지켜보고 있는 파트 중 하나이다.
파이썬으로 만든 판다스(pandas) 모듈을 사용하면 데이터 분석을 더 쉽고 효과적으로 할 수 있다. 데이터 분석을 할 때 아직까지는 데이터 분석에 특화된 'R' 이라는 언어를 많이 사용하고 있지만, 판다스가 등장한 이후로 파이썬을 사용하는 경우가 점점 증가하고 있다.
사물 인터넷 분야에서도 파이썬은 활용도가 높다. 한 예로 라즈베리파이(Raspberry Pi)는 리눅스 기반의 아주 작은 컴퓨터이다. 라즈베리파이를 사용하면 홈시어터나 아주 작은 게임기 등 여러 가지 재미있는 것들을 만들 수 있는데, 파이썬은 이 라즈베리파이를 제어하는 도구로 사용된다.