파이썬으로 할 수 있는 것
파이썬의 활용 분야
파이썬은 다양한 분야에서 활용할 수 있는 유현하고 강력한 프로그래밍 언어입니다. 이러한 유연성은 학습 방법에도 적용됩니다. 단순히 '파이썬 학습'이라는 추상적인 목표 보다 '파이썬으로 가족 행사 알림 서비스 만들기', '파이썬으로 게임 개발하기'와 같이 구체적인 목표를 세워 공부하는 것이 더욱 즐겁고 효과적인 학습 방법이 될 수 있습니다. 모든 문법을 숙련되게 사용할 수 있을 때 목표한 프로젝트를 진행하는 것이 아니라 기본 문법에 대한 훈련이 되셨다면 다양한 프로젝트를 통해 실력을 향상시켜보세요. 좀 더 즐거운 학습이 될 것입니다.
파이썬은 웹 개발, 데이터 분석, 인공지능, 자동화 등 거의 모든 분야에서 사용되고 있습니다. 이번 챕터에서는 여러분이 보다 구체적인 학습 목표를 설정할 수 있도록 다양한 분야의 실제 사례를 바탕으로 파이썬 활용 예제를 살펴보겠습니다.
1. 웹 서비스 개발
파이썬으로 빠른 웹 개발을 할 수 있습니다. 파이썬으로 만들어진 장고(Django), 플라스크(Flask) 등의 프레임워크를 사용하여 웹 서비스를 쉽고 빠르게 개발할 수 있습니다. 위니브가 만든 서비스인 스터디인, 주식회사 위대한상상의 요기요 배달서비스, 여러분들이 매일 사용하시는 구글의 유튜브(YouTube) 등 수많은 서비스가 파이썬으로 만들어져 있습니다.
프레임워크(Framework)는 무엇일까요?
프레임워크는 결과물을 만들기 위한 기본 구조와 기능을 제공합니다. 예를 들어 집을 지을 때 기본적으로 필요한 구조를 제공하는 것과 같습니다. 집을 지을 때 설계 도면과 필요한 여러 자재, 가령 벽돌이나 지붕, 문, 창문 등을 함께 제공하는 것과 같습니다.
2. 데이터 분석
파이썬은 데이터 분석에 널리 사용되는 언어입니다. 판다스(Pandas), 넘파이(Numpy), 맷플롯립(Matplotlib) 등의 라이브러리를 사용하여 데이터를 처리하고, 분석할 수 있습니다. 위니브에서는 제주 관광 데이터 분석, 코로나 데이터 분석, 한국 전력 데이터 분석 등에 데이터 분석 실무를 수행하였습니다. 이러한 분석을 통해 얻은 인사이트를 바탕으로 의사결정을 개선하거나 새로운 비즈니스를 기획할 수 있습니다.
당장 여러분의 업무에도 간단히 적용할 수 있는 다양한 데이터 분석 라이브러리가 있습니다. 통계 지식이나 데이터 분석 지식이 있으면 더욱 좋겠지만 그렇지 않더라도 챗지피티(ChatGPT), 클로드(Claude)와 같은 거대언어모델을 통하여 지출 데이터 분석이나 고객 데이터 분석, 매출 예측 등의 업무를 쉽게 할 수 있습니다.
- 다음 코드는 위니브에서 교육용으로 작성한 이력서 100개를 빠르게 분석하는 코드입니다. 짧은 코드로 제출된 이력서를 다양한 형태로 분석할 수 있습니다.
- 페이스북이 개발한 프로펫(prophet) 라이브러리를 사용하면 시간 순서대로 정렬된 데이터의 분석(시계열 분석)을 보다 쉽게 할 수 있습니다. 다음은 교육용으로 제작한 삼성전자 주가 예측 영상입니다. 이처럼 시간 순서대로 나열된 데이터를 분석하고 예측해서 시각화 할 수 있습니다.
라이브러리는 무엇일까요?
라이브러리는 결과물을 만들거나 기능을 수행하기 위한 여러 도구들을 종합적으로 제공합니다. 예를 들어, 집을 수리할 때 드릴, 망치, 나사 등 다양한 도구가 필요한데 이러한 것을 한데 모아 공구 세트로 구매할 수 있는 것처럼, 프로그래밍에서도 특정 기능을 수행하기 위해 미리 만들어진 코드들의 집합이 필요한데, 이를 라이브러리라고 합니다.
3. 머신러닝(인공지능)
파이썬은 인공지능 분야에서도 널리 사용됩니다. 다만 인공지능이라는 단어 대신 컴퓨터를 훈련시킨다는 의미로 머신러닝이라는 키워드를 더 많이 사용합니다. 텐서플로(TensorFlow), 케라스(Keras), 파이토치(PyTorch) 등의 라이브러리를 사용하여 구현할 수 있습니다.
다음 서비스는 위니브에서 교육용으로 개발한 닮은 연예인을 맞춰주는 서비스입니다. 이러한 서비스도 간단한 코드 몇 줄로 구현이 가능합니다.
이러한 머신러닝 코드는 파이썬으로 되어있지 않고 대부분 C언어 계열로 구현이 되어 있습니다. 다만 학습하기 좋고 접근성이 좋은 파이썬 코드로 이 소스코드를 동작할 수 있게 하여 우리는 파이썬만으로도 만들어진 머신러닝 코드를 잘 활용할 수 있습니다.
4. 업무 자동화
파이썬을 사용하면 일상적인 작업을 자동화할 수 있습니다. 위니브 회사 초창기에는 자비스라는 프로그램을 만들어 아침에 출근하고 실행시켰습니다. 자비스가 하는 일은 다음과 같았습니다.
- (보고서) 제주 도내 사업 모아주기
- (보고서) 제주 도내 관련 뉴스 모아주기
- (문자 발성) 오늘 일정 안내
- (문자 발송) 오늘 우선순위 업무 안내
회사가 규모가 있어 해당 프로그램을 사용하지 않고 있지만 지금은 이보다 더 고도화된 여러 봇들이 움직이고 있습니다. 현재 위니브에서 파이썬으로 만든 코드가 회사에서 하는 주요한 일은 다음과 같습니다.
-
단순 반복 업무
우리가 출근해서 컴퓨터로 하는 일 중 2~3번 이상 반복하고 있는 일이 있다면 이는 파이썬이 모두 할 수 있는 일입니다. 주기적인 마우스 클릭, 키보드 [Ctrl + C], [Ctrl + V], 한글에서 복사해서 엑셀에 붙여넣기, 문자 보내기 등입니다. 다음 코드는 교육용으로 작성된 한글 파일에서 특정 데이터를 뽑아 엑셀 파일로 변환하는 코드입니다. 이외에도 문자를 보내는 것도 할 수 있습니다.
-
영상 편집 업무
위니브는 제주코딩베이스캠프라는 유튜브 채널에 교육 영상을 올리고 있습니다. 이렇게 교육 영상을 찍으면 반복적으로 해야 하는 일이 있습니다. 음성이 나오지 않는 부분은 컷을 한다든지, 자막을 달아준다든지 하는 것들입니다. 위니브에서는 이러한 업무도 파이썬이 진행합니다. 해당 코드를 실행하면 어색한 부분만 편집하여 유튜브에 올릴 수 있는 영상으로 만들어 줍니다. 위니브에서 가장 많은 일을 하는 프로그램 중 하나입니다.
-
노션 자동 완성
한글 문서, 구글 독스(google docs) 등으로 작성된 문서들을 한 번에 노션(Notion) 이라고 하는 문서 서비스에 파이썬이 텍스트로 변환하여 올려줍니다. 이로써 모든 문서를 공유할 수 있는 문서로 만들 수 있으며 한 곳에서 관리할 수 있습니다.
-
디스코드 알림 봇
회사에서 사용하는 메신저인 디스코드에서도 파이썬이 활용됩니다. 파이썬으로 만들어진 봇은 다음 그림처럼 50분에 한 번씩 등장하여 쉬는 시간, 점심시간, 퇴근 시간을 알려줍니다. 이 외에도 설문지 작성 등을 도와주거나 스레드 메시지 카운팅, 공지 사항 등을 알려주고 주간 공지 사항을 요약하여 보고서 형태로 제공하는 등 다양한 업무를 수행합니다.
5. 게임 개발
파이썬은 게임 개발에도 사용됩니다. 파이게임(Pygame) 라이브러리를 사용하여 2D 게임을 개발할 수 있습니다. 다음 그림은 위니브에서 교육용으로 만든 게임입니다.
6. 웹 스크레이핑
파이썬을 사용하여 웹 사이트의 데이터를 수집할 수 있습니다. 이렇게 웹에서 정보를 가져오는 것을 웹 스크래핑(Web Scraping) 또는 크롤링(Crawling) 이라고 합니다. 리퀘스트(request), 뷰티풀수프(BeautifulSoup) 등의 라이브러리를 사용하면 간단한 웹 스크래핑을 할 수 있습니다. 다만 웹에 있는 데이터를 가지고 올 때는 robots.txt
를 확인하여 크롤링해도 되는 데이터인지 확인해야 합니다.
7. 하드웨어 제어
파이썬을 사용하여 하드웨어를 제어할 수 있습니다. 라즈베리파이(Raspberry Pi) 등의 하드웨어를 제어하는데 사용됩니다. 위니브에서는 교육용으로 RC카에 라즈베리 파이, 카메라 모듈 등을 사용하여 간단한 자율주행 RC카를 만든적이 있습니다. 이러한 수업을 통해 학생들이 휴대폰으로 조작 가능한 도어락 등 원격 제어 시스템을 만들기도 하였습니다.
8. 데스크톱 애플리케이션 개발
파이썬은 데스크톱 애플리케이션 개발에도 적합합니다. 티케이인터(Tkinter), 파이큐티(PyQt), 더블류엑스파이썬(wxPython) 등의 라이브러리를 사용하여 데스크톱 애플리케이션을 개발할 수 있습니다. 월급 계산기는 위니브에서 파이큐티 교육용으로 만든 소프트웨어입니다.
[위니브 TMI] Life is too short, You need python!
파이썬은 그 자체로도 매우 강력한 언어이지만, 관련된 라이브러리와 프레임워크를 활용하면 더욱 막강한 성능과 활용을 기대할 수 있습니다.
Life is too short, You need python! - Bruce Eckel
이 말은 브루스 에켈(Bruce Eckel)라는 개발자가 만든 문장으로 이 문장이 세겨진 티셔츠도 판매가 되고 있습니다. 인생은 짧습니다. 재미있고 빠르게 개발할 수 있는 파이썬을 잘 선택하셨습니다. 여러분이 상상한 모든 것을 만들어보세요.