- 파이썬의 간단한 개발 배경과 필요성 및 활용범위를 알아보고, 왜 파이썬을 배우고자 하는지 이유에 대해서 알아본다.
파이썬에 관련해서는 우리나라뿐만 아니라, 전 세계적으로 인기를 끌고 있는 개발 언어이기 때문에, 정말 많은 자료들이나 영상들이 공개되어 있기 때문에, 여기 이 블로그까지 그 세력에 가세할 필요는 없겠지만, 그래도 명색이 기술 블로그를 지향하고 있기 때문에 간단하게라도 파이썬에 대한 개요와 왜 많은 개발자들이 파이썬을 선택하는지에 대해서 소개해본다.
파이썬? 뱀?
파이썬의 사전적 단어뜻은 비단뱀이다.(개인적으로 정말 싫어함.ㅠㅠ)
1991년 네덜란드 출신의 소프트웨어 개발자인 귀도 반 로섬(Guido van rossum)씨가 개발한 인터프리터 기반의 객체지향적 개발 언어이자 동적 타이핑 대화형 언어이다.
파이썬이라는 이름은 자신이 좋아하는 코미디 쇼인 "몬티 파이썬의 날아다니는 서커스(Monty python's flying circus)에서 따왔다고 하며, 간결하고 읽기 쉬운 문법이 특징인 프로그래밍 언어이다.
파이썬 프로그래밍 언어의 핵심 철학은 다음과 같다.
- "아름다운 게 추한 것보다 낫다." (Beautiful is better than ugly)
- "명시적인 것이 암시적인 것보다 낫다." (Explicit is better than implicit)
- "단순함이 복잡함보다 낫다." (Simple is better than complex)
- "복잡함이 난해한 것보다 낫다." (Complex is better than complicated)
- "가독성은 중요하다." (Readability counts)
위와 같이 파이썬은 전문적인 전공지식이 없어도, 누구나 쉽게 접할 수 있고, 쉽게 배울 수 있도록 설계했다고 느껴지지만, 솔직히 다른 개발 언어를 접해본 적이 없기 때문에 어려울지 쉬울지는 경험해봐야 할 것 같지만, 여타 다른 개발 언어보다는 훨씬 수월하게 접근할 수 있는 것은 사실이다.
파이썬의 특징
모든 프로그래밍 언어에는 저마다의 장점이 있지만, 파이썬은 위에서도 언급하였듯이 다른 개발 언어에서는 쉽게 찾아볼 수 없는 독특한 매력을 가지고 있으며, 그 대표적인 것들을 몇몇 개 알아보자.
파이썬은 인간다운 개발 언어이다.
파이썬을 공부하는 사람 또는 여러 강좌를 찾아보면, 파이썬은 사람이 생각하는 방식을 그대로 표현할 수 있는 인간의 사고를 가진 언어라고 말하는 것을 많이 접할 수 있다.
이것은 컴퓨터적인 사고 체계에 맞추어 프로그래밍하려고 애쓸 필요 없이, 프로그램을 구상하자마자 생각하는 데로 술술 코드를 작성해 내려갈 수 있다는 것이다.
아래 간단한 예를 들어보자.
# 간단한 파이썬 코딩
if 4 in [1, 2, 3, 4]:
print("4가 있습니다.")
위 코드는 파이썬에서 작성한 코드이며, 이것을 해석한다면, 만약(if) 1~4중에 4가 있다면, "4가 있습니다"를 출력한다.
이것처럼 누구나 영어 단어만 조금 알고 있다면, 누구나 예측할 수 있고, 코드를 눈으로 보기에도 쉽게 보이는데, 여기서 파이썬이 아닌 다른 개발 언어와는 어떠한 차이가 있는지 간단하게 알아보자.
아래에 있는 코드는 너무도 유명하고 잘 알려진 C++과 JAVA를 이용해서, 위에 있는 파이썬 코드와 동일한 결과물 만들 수 있는 코드 들이다.
// C++로 작성된 코드
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4};
if (std::find(numbers.begin(), numbers.end(), 4) != numbers.end()) {
std::cout << "4가 있습니다." << std::endl;
}
return 0;
}
// JAVA로 작성된 코드
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
if (numbers.contains(4)) {
System.out.println("4가 있습니다.");
}
}
}
눈으로 봤을 때, 파이썬 코드와 C++이나 JAVA와 같은 개발 언어의 차이가 확실하게 느껴지는지 모르겠다. ㅎㅎ
초보자인 내가 봐도, C/C++이나 JAVA와는 비교할 수 없을 정도로 간단하고, 쉽게 이해할 수 있는 코드 문법을 가지고 있는고, 사람이 생각하는 체계와 많이 비슷하다고 볼 수 있다.
물론, 뒤로 가면 갈수록 복잡해지고 어려워지는 것은 분명히 있겠지만, 상대적으로 다른 개발 언어보다는 훨씬 쉽게 접근할 수 있다는 것은 사실이다.
파이썬 코드는 간결하다.
파이썬 개발자인 귀도 반 로섬 씨의 개발 철학에 맞게 코딩 문법을 정말 간결하게 만들었다.
이 간결한 문법 때문에 다른 사람이 작성해 놓은 소스 코드를 분석하고 이해하기 쉽고, 공동 작업과 유지/보수에도 매우 편리하다는 정점이 있다.
파이썬 프로그래밍 언어의 간결함을 살짝 알아보자.
languages = ["python", "perl", "c", "java"]
for lang in languages:
if lang in ["python", "perl"]:
print(f"{lang}은/는 인터프린터 기반 개발 언어")
elif lang in ["c", "java"]:
print(f"{lang}은/는 컴파일러 기반 개발 언어")
else :
print("충족한 내용이 없습니다.")
위 내용은 프로그램 언어를 판별하여, 그에 맞게 문장을 출력하는 파이썬 코드이다.
앞서 보았던, C/C++이나 JAVA를 비교했을 때, 차이가 느껴지는지 모르겠지만, 파이썬 코드에서는 중괄호({})와 세미콜론(;)등 일반적인 개발 언어에서는 어디든지 다 사용되는 코드 블록과 명령줄의 끝을 표시하는 기호가 보이지 않는다.
다만, 코드 블록단위로 들여 쓰기 되어, 줄이 잘 맞춰진 코드라는 것은 확실하게 보이고, 깔끔하고 간결하게 코드를 읽을 수 있다는 장점이 있지만, 다른 개발 프로그램 언어를 같이 사용한다면, 조금은 헷갈릴 수 있을 것 같다는 생각이 든다.
파이썬은 무료다.
파이썬은 파이썬 자체와 IDE 등은 오픈 소스 라이선스로 무료로 사용할 수 있으며, 파이썬이 불러와서 사용할 수 있는 모듈들도 대부분은 오픈 소스로 제공하고 있어 무료로 막강한 라이브러리를 사용할 수 있지만, 몇몇 개발 환경(IDE)나 모듈등은 유료로 책정되어 있는 경우도 있다.
솔직히 파이썬뿐만 아니라, 모든 개발 언어 자체는 무료이지만, 대부분은 IDE가 유료인 경우가 많고, 몇몇 라이브러리나 프레임워크 같은 경우 유료이거나, 대부분은 진짜 상업적으로 개발할 사용할 목적이거나, 기업 대상인 경우에는 대부분은 유료라고 생각해도 될 것 같다.
파이썬으로 만들 수 있는 것들
파이썬과 사용할 수 있는 라이브러리들은 무료이지만, 만들 수 있는 분야의 일은 정말 많이 있는 것 같다. 대부분의 개발 프로그래밍 언어가 하는 일을 쉽고 깔끔하게 처리하며, 앞장에서도 언급했지만, 손쉽게 코딩할 수 있는 몇몇 가지를 소개한다.
웹 프로그래밍
파이썬의 대표 중에 한 부분을 차지하고 있는 분야가 웹 프로그래밍 분야로, 웹 사이트 개발에 필요한 게시판, 방명록 등, 데이터베이스에 접근하고 활용할 수 있는 기능을 이용하여 웹 관련 분야의 각종 서비스 만들기에 적합한 도구이며, 실제로 파이썬으로 제작한 웹 사이트도 많이 있다고 한다.
대부분, 웹 분야에서 프런트 엔드보다는 백엔드 개발에 쪽이라고 생각하면 될 것 같다
인공지능과 머신러닝
아마, 파이썬이 인공지능과 머신러닝의 발전에서 가장 큰 수혜자라고 볼 수 있을 것 같다.
인공지능 관련 분야의 엄청난 발전으로 파이썬의 인기가 급상승하고 있고, 실제로 파이썬을 활용하여 자연어 처리, 음성 인식, 이미지 인식과 같은 인공지능 기술을 구현하고, 경험을 통해 자동으로 발전하는 머신러닝 분야에서도 컴퓨터 알고리즘 연구에 사용된다.
데이터 분석
인공지능과 함께 대두되고 있는 또 하나의 분야가 빅데이터 분야로, 이것 역시 파이썬을 대표하는 분야의 기술을 너무나도 쉽게 지원하고 있다.
넘파이, 판다스, 맷플롯립 등과 같은 파이썬 라이브러리를 활용하여 데이터 처리, 통계 분석, 시각화등을 손 쉬게 수행할 수 있다.
C/C++와 결합하기
파이선은 접착(Glue) 언어라고도 부르는데, 그 이유는 다른 언어와 결합해서 사용할 수 있기 때문이고, C/C++에서 만든 프로그램을 파이선에서 사용할 수 있고, 반대로 파이썬으로 만든 프로그램을 C/C++에서 사용할 수 있다.
IoT 분야
주로 사물 인터엣으로 대두되는 IoT분야에서도, 리눅스 기반의 라즈베리파이와 교육용 마이크로 프로세스의 대명사인 아두이노를 제어할 때도 파이썬을 사용할 수 있고, 파이썬을 통해 각종 기기나 센서를 제어할 수 있다.
더 크게 본다면, 공장 자동화를 간단하게 실현할 수 있는 개발 도구일 수 있다.
여기까지 파이썬이 무엇인지, 또 파이썬을 이용해서 무엇을 만들 수 있는지 간단하게 알아봤다.
솔직히 코딩하는데, 이러한 내용은 거의 쓸모가 없겠지만, 그래도 아주 기본적인 사항들은 알아두고 있으면, 누구와 대화할 때 조금은 아는 척할 수 있지 않나 싶어서 3강까지는 쓸데없는 글만 적었다.ㅎㅎ
우리 같이 열심히 공부해 봅시다.
죽이 되는 것보다 밥이 되는 것을 목표로~~^^