✨교재전체목차
🏷️1-1. 파이썬이란?
파이썬의 사전적 의미는 '고대 신화에 나오는 파르나소스 산의 동굴에 살던 큰 뱀'을 뜻하며, 아폴로 신이 델파이에서 파이썬을 최지했다는 이야기가 전해지고 있다.
파이썬은 교육뿐만 아니라 기업에서 실무를 할 때도 많이 사용되는데, 대표적인 예로 구글이 있다. 구글에서 만든 소프트웨어의 50% 이상이 파이썬으로 작성되었다는 이야기도 있을 정도이다. 이 밖에도 인스타그램, 넷플릭스, 아마존 등 우리가 알고 있는 많은 IT기업에서 파이썬을 사용한다.
파이썬 프로그램은 공동 작업과 유지 보수가 매우 쉽고 편리하다. 이 때문에 이미 다른 언어로 작성된 많은 프로그램이 파이썬으로 재구성되고 있으며, 국내에서도 그 가치를 인정받아 사용자 층이 더욱 넓어지고 있고 파이썬을 사용해 프로그램을 개발하는 업체 또한 늘어나는 추세다.
🏷️1-2. 파이썬의 특징
파이썬은 인간다운 언어이다
파이썬은 사람이 생각하는 방식을 그대로 표현할 수 있는 언어라서, 파이썬을 사용하는 프로그래머는 굳이 컴퓨터의 사고 체계에 맞추어 프로그래밍하려고 애쓸 필요가 없다.
예제를 보면 좀 더 이해될 것이다.
if 4 in [1, 2, 3, 4]: print("4가 있습니다")
이 소스 코드는 다음처럼 읽을 수 있다.
만약 4가 1, 2, 3, 4 중에 있으면 "4가 있습니다"를 출력한다.
마치 영어 문장을 읽는 것처럼, 프로그램을 모르더라도 직관적으로 무엇을 뜻하는지 알 수 있다.
문법이 쉬워 빠르게 배울 수 있다
파이썬은 문법이 매우 쉽고 간결하며 사람의 사고 체계와 매우 닮아 있다. 유명한 프로그래머인 에릭 레이먼드는 파이썬을 공부한 지 단 하루 만에 자신이 원하는 프로그램을 작성할 수 있었다고 한다.
무료이지만 강력하다
파이썬은 오픈 소스이므로 무료이다. 사용료 걱정없이 언제 어디서든 파이썬을 내려받아 사용할 수 있다.
'파이썬과 C는 찰떡궁합'이라는 말이 있다. 프로그램의 전반적인 뼈대는 파이썬으로 만들고 빠른 실행 속도가 필요한 부분은 C로 만들어서 파이썬 프로그램 안에 포함시킬 수 있기 때문이다. 사실 파이썬 라이브러리 중에는 파이썬만으로 제작된 것도 많지만 C로 만든 것도 많다. C로 만든 것은 대부분 속도가 빠르다.
간결하다
파이썬을 개발한 귀도는 파이썬을 의도적으로 간결하게 만들었다. 만약 펄과 같은 프로그래밍 언어가 100가지 방법으로 1가지 일을 처리할 수 있다면, 파이썬은 가장 좋은 방법 1가지만 사용하는 것을 선호한다. 이 간결함의 철학은 파이썬 문법에도 그대로 녹아 있어 파이썬 프로그래밍을 하는 사람들은 잘 정리되어 있는 소스 코드를 볼 수 있다. 그 덕분에 다른 사람이 작업한 소스 코드를 이해하기 쉽고 공동 작업과 유지 보수가 매우 편리하다. 다음의 예제를 보면 간결함을 잘 느낄 수 있을 것이다.
langquages = ['python', 'perl', 'c', 'java']
for lang in langquages:
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")
j프로그래밍 언어를 판별하여 그에 맞는 문장을 출력하는 파이썬 프로그램 예제이다. 다른 언어에서 늘 보게 되는 단락을 구분하는 괄호({})가 없고 줄을 잘 맞춘 코드라는 것을 알 수 있다. 파이썬 프로그램은 줄을 맞추지 않으면 실행되지 않는다. 코드를 예쁘게 작성하려고 줄을 맞추는 것이 아니라 프로그램이 실행되게 하려면 꼭 줄을 맞추어야 하는 것이다. 이렇듯 줄을 맞추어 코드를 작성하는 행위는 가독성에 많은 도움이 된다.
프로그래밍을 즐기게 해 준다
파이썬은 프로그래머가 다른 부수적인 개념이나 제한 사항 등에 신경 쓸 필요없이 만들고자 하는 기능에만 집중할 수 있게 해 준다. 파이썬을 배우고 나면 다른 언어로 프로그래밍하는 것이 지루하다고 느낄지도 모른다.
개발 속도가 빠르다
재미있는 문장으로 파이썬의 특징을 마무리하겠다.
"Life is too short, You need python." (인생은 너무 짧으니 파이썬이 필요해.)
엄청나게 빠른 파이썬의 개발 속도 때문에 유행처럼 퍼진 말이다. 이 위트 있는 문장은 이 책에서 계속 예제로 사용할 것이다.
🏷️1-3. 파이썬으로 무엇을 할 수 있을까?
프로그래밍 언어를 좋은 언어와 나쁜 언어로 구별할 수 있을까? 어떤 언어이든 강점과 약점이 존재하기 때문에, 사실 현실에서 이런 구별은 무의미하다. 따라서 어떤 프로그래밍 언어가 어떤 일에 효율적인지를 안다는 것은 프로그래머의 생산성을 크게 높일 수 있는 힘이 된다.
그렇다면 파이썬으로 하기에 적당한 일과 적당하지 않은 일은 무엇일까? 이를 아는 것은 매우 가치 있는 일이므로 파이썬을 배우기 전에 간단히 알아보자.
파이썬으로 할 수 있는 일
파이썬으로 할 수 있는 일은 매우 많다. 파이선은 대부분의 프로그래밍 언어가 하는 일을 쉽고 깔끔하게 처리한다. 파이썬으로 할 수 있는 일들을 나열하자면 끝도 없지만, 대표적인 몇가지만 소개한다.
웹 프로그래밍
누구나 한 번쯤 구글 크롬이나 마이크로소프트 엣지와 같은 웹 브라우저로 웹 서핑을 하면서 게시판이나 방명록에 글을 남겨 본 적이 있을 것이다. 이러한 게시판이나 방명록을 '웹 프로그램'이라고 한다. 파이썬은 웹 프로그램을 만들기에 매우 적합한 도구이며, 실제로 파이썬으로 제작한 웹 사이트는 셀 수 없을 정도로 많다.
인공지능과 머신러닝
최근 인공지능 분야의 발전 덕분에 파이썬이 인기 언어로 떠올랐다. 인공지능은 기계가 인간처럼 생각하고 행동할 수 있는 능력을 제공하는 기술이다. 파이썬을 활용하면 자연어 처리, 음성 인식, 이미지 인식과 같은 인공지는 기술을 구현할 수 있다. 머신러닝은 인공지능의 한 분야로, 경험을 통해 자동으로 발전하는 컴퓨터 알고리즘을 연구하는 분야이다. 파이썬은 인공지능과 머신러닝 프로그래밍을 쉽게 할 수 있도록 사이킷런(Scikit-Learn), 텐서플로(TensorFlow), 파이토치(Pytorch), 케라스(Keras) 등과 같은 다양한 라이브러리를 제공한다.
수치 연산 프로그래밍
사실 파이썬은 수치 연산 프로그래밍에 적합한 언어가 아니다. 수치가 복잡하고 연산이 많다면 C와 같은 언어로 프로그래밍하는 것이 더 빠르기 때문이다. 하지만 파이썬은 넘파이(Numpy)라는 수치 연산 모듈을 제공한다. 이 모듈은 C로 작성했기 때문에 파이썬에서도 수치 연산을 빠르게 수행할 수 있다.
데이터 분석
파이썬은 데이터 분석에 이상적인 언어로, 넘파이(Numpy), 판다스(Pandas), 맷플롯립(Matplotlib) 등과 같은 라이브러리들을 활용하여 데이터 처리, 통계 분석, 시각화를 손쉽게 수행할 수 있다. 데이터 분석을 할 때 아직까지는 데이터 분석에 특화된 R이라는 언어를 많이 사용하고 있지만, 판다르가 등장한 이래 파이썬을 사용하는 경우가 점점 많아지고 있다.
데이터베이스 프로그래밍
파이썬은 사이베이스(Sybass), 인포믹스(Informix), 오라클(Oracle), 마이에스큐엘(MySQL), 포스트그레스큐엘(PostgreSQL) 등의 데이터베이스에 접근하기 위한 도구를 제공한다.
이런 굵직한 데이터베이스를 직접 사용하는 것 말고도 파이썬에는 재미있는 도구가 하나 더 있다. 바로 피클(pickle)이라는 모듈이다. 피클은 파이썬에서 사용하는 자료를 변형 없이 파일에 저장하거나 불려오는 일을 수행한다.
시스템 유틸리티 제작하기
파이썬은 운영체제(윈도우, 리눅스 등)의 시스템 명령어를 사용할 수 있는 각종 도구를 갖추고 있기 때문에 이를 바탕으로 파일 관리, 로그 분석, 시스템 모니터링 등과 같은 여러 가지 시스템 유틸리티를 만드는 데 유리하다. 실제로 여러분은 시스템에서 사용 중인 서로 다른 유틸리티성 프로그램을 하나로 합쳐 보다 유용한 프로그램들을 무수히 만들어 낼 수 있다.
GUI 프로그래밍
GUI(graphic user interface) 프로그래밍이란 쉽게 말해 화면에 윈도우 창을 만들고 그 창에 프로그램을 동작시킬 수 있는 메뉴나 버튼 등을 추가하는 것을 말한다. 파이썬은 GUI 프로그래밍을 위한 도구들이 잘 갖추어져 있기 때문에 GUI 프로그램을 쉽게 만들 수 있다. 대표적인 예로 파이썬 프로그램과 함께 설치되는 Tkinter(티케이인터)를 들 수 있다. Tkinter를 사용하면 단 5줄의 소스 코드만으로 윈도우 창을 띄울 수 있다.

C/C++와 결합하기
파이썬은 접착 언어라고도 부르는데, 그 이유는 다른 언어와 결합해서 사용할 수 있기 때문이다. C나 C++로 만든 프로그램을 파이썬에서 사용할 수 있고 파이썬으로 만든 프로그램도 C나 C++에서 사용할 수 있다.
사물 인터넷
파이썬은 사물 인터넷 분야에서도 활용도가 높다. 한 예로 라즈베리파이(Raspberry pi)는 리눅스 기반의 매우 작은 컴퓨터이다. 라즈베리파이를 사용하면 흠시어터나 매우 작은 게임기 등 여러 가지 재미있는 것을 만들 수 있는데, 라즈베리파이를 제어할 때 파이썬을 사용한다. 예를 들어 라즈베리파이에 연결된 모터를 작동시키거나 LED에 불이 들어오게 하는 일을 파이썬으로 할 수 있다.
파이썬으로 할 수 없는 일
시스템과 밀접한 프로그래밍 영역
파이썬으로 리눅스와 같은 운영체제 또는 엄청난 횟수의 반복과 연산이 필요한 프로그램을 만드는 것은 어렵다. 즉, 매우 빠른 속도를 욕구하거나 하드웨어를 직접 건드려야 하는 프로그램에는 적합하지 않다.
모바일 프로그래밍
파이썬은 구글이 가장 많이 애용하는 언어이지만, 파이썬으로 안드로이드 네이티브 앱을 개발하는 것은 아직 어렵다. 안드로이드에서 파이썬으로 만든 프로그램이 실행되도록 지원하기는 하지만, 이것만으로 앱을 만들기에는 아직 역부족이다. 이 밖에 아이폰 앱도 파이썬으로 개발할 수 없다.
🏷️1-4. 파이썬 설치하기 (생략)
인터넷에 파이썬 설치하기 치면 너무나 많은 정보가 나와있다.
🏷️1-5. 파이썬 둘러보기 (생략)
🏷️1-6. 파이썬과 에디터 (생략)
사람마다 편한 에디터가 다를 것이다. VS code, Pycharm 등등 제작 회사에 따라 많은 기능을 가진 에디터가 있고, 정말 기본적인 에디터가 있고 여러가지가 있다. 나는 VS code를 사용하는중이다.
'파이썬' 카테고리의 다른 글
| 장고 프로젝트 구조 (0) | 2024.07.23 |
|---|---|
| 파이썬 설치부터 장고로 서버 런칭하기 (0) | 2024.07.16 |