프로그래밍언어/Python

파이썬이란 무엇인가?

멍토 2020. 1. 11.

프로그래밍을 하기위해 언어들을 찾아보고 어떤 언어를 공부해야 할까 고민을 많이 할것입니다.

이번 포스팅에서는 파이썬에 대해 알아보겠습니다.


파이썬은 1980년대에 귀도 반 로섬이 고안한 프로그래밍 언어입니다.

독립적이고, *인터프리터 방식의 객체지향이고, 동적이며 대화형 성격을 가진 프로그래밍 언어입니다.

인터프리터란? 
프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경을 말한다. 원시 코드를 기계어로 번역하는 컴파일러와 대비된다.

 

파이썬의 어원 : 귀도 반 로섬이 좋아하는 프로그램인 Monty Python's Flying Circus에서 따왔습니다.

파이썬 로고는 비단뱀의 모형을 따와 만들었습니다.


파이썬의 종류

종류 언어
Cpython(표준) C언어로 만들어진 파이썬
IronPython  .Net과 Mono용, C#으로 구현
Jython Java로 만들어졌으며, 자바가상머신에서 동작하며 자바클래스, 자바 표준 라이브러리 사용이 가능
PyPy Python으로 구현됨

 

파이썬의 핵심 철학 

Beautiful is better than ugly(아름다운 것이 추한 것보다 낫다)
Explicit is better than implicit(명시적인 것이 묵시적인 것보다 낫다)
Simple is better than complex(단순한 것이 복잡한 것보다 낫다)
Complex is better than complicated(복잡한것이 난해한 것보다 낫다)
Readability counts(가독성이 중요하다)

 

파이썬의 특징

인터프리팅 방식 -> 명령의 실행결과를 대화형으로 바로 확인
동적타이핑(dynamic typing) -> 실행 시간 값에 의해 자료형 결정
Garbage Collector -> 생성된 객체에 대한 메모리 관리는 가비지 컬렉터를 이용한다.
가독성 -> 코드 들여쓰기를 이용한 가독상 향상
풍부한 라이브러리 ->표준라이브러리와 통합 환경이 배포판과 함께 제공됨 ->정규표현식, CSV파일처리, 운영체제 시스템콜, 데이터베이스접속, GUI, XML처리, 직렬화, 통신프로토콜, TML, 파이썬 구문분석 등
문자열은 기본적으로 유니코드 기반
오픈소스 -> 파이썬 소프트웨어 재단에서 관리하며 무료처럼 사용가능
다양한 프로그래밍 패러다임 지원 - > 객체지향, 함수형 프로그래밍 지원
학습 용이성 -> [프로그래밍 문서화]도 언어의 기본 기능에 포함, 문서와, API도 체계적으로 정리, 일ㄹ기 쉽고 효율적인 코드를 간단하게 쓰려는 철학이 반영되어 있음
내장 스크립트 언어 -> 다른 언어로 쓰인 모듈을 연결하려는 목적으로 이용됨, 많은 상용 프로그램에 내장되어 스크립트 언어로 활용되고 있음

 

파이썬 버전

파이썬 2.0 : 2000년 10월 16일에 발표, 가비지컬렉터와 유니코드를 지원, 개발과정에서의 투명한 공동체 지원
파이썬 3.0 : 2008년 12월 3일 발표, 2.x 대 버전의 파이썬과 하위 호환성이 없음, 주요 기능 다수가 이전버전과 호환되도록 2.6~2.7버전에 반영됨

 

파이썬 문서에서는 파이썬 2.x 버전은 낡은 기술이고 파이썬 3.x가 파이썬의 현재와 미래가 될것이라며
파이썬을 시작할 때는 파이썬 3로 시작할 것을 권고하고 있습니다.

 

2.0과 3.0의 차이점

내장 자료형의 내부적인 변화 및 일부 자료형의 구성 요소 제거
표준 라이브러리의 패키지 재배치
향상된 유니코드 지원
한글로 변수명을 사용하는 것이 가능해짐(그렇지만 추천하지 않습니다.)
출력을 위한 print문이 print()함수로 변화함

 

파이썬의 인기 분야

웹 분야 django(회원가입, 사용자 인증 등 공통기능을 제공, 높은 개발 생산성 지원)
Flask(간단한 웹 서비스 또는 모바일 서버 구축)
데이터 수집 Beautiful Soup(웹 크롤링 라이브러리)
-> 문서수집 ,HTML문서 구문 분석, DOM트리탐색, 문서분석 및 정보추출
Scrapy(웹 크롤링 프레임워크) -> 웹 문서에서 데이터 추출 규칙 작성, 문서 수집 및 필요 데이터 자동 추출
데이터과학 및 인공지능 분야 Numpy : 다차원 배열 객체지원, 선형대수, 푸리에 변환, 난수생성 등
pandas : 데이터 분석 표준 라이브러리 -> 다양한 분석도구 제공, 강력한 데이터 구조
Scipy : 수학, 과학, 엔지니어링 분야에서 활용
Scikit-learn : 데이터 마이닝과 데이터 분석을 위한 도구 -> 분류, 회귀, 군집, 차원축소와 같은 머신러닝 지원
Tensorflow : 머신러닝 및 딥러닝 프레임워크 -> GPU연산지원, 각종 신경망 모델 구현 지원
Pytorch : GPU 연산지원, 간결한 코드, 신경망 모델 구현 지원, 빠른 모델훈련 시간, 실시간 결과 시각화

 

파이썬의 장점 : 

1. 빠른학습속도

2. 명령의 수행결과를 빠르게 확인가능

3. 확장 기능 지원

4. 다양한 플랫폼에서 사용 가능

 

단점 : C, C++ 보다 수행속도가 느리다.

 

사용분야 : 빅데이터 분석, 머신러닝, 딥러닝, IoT등등, 웹크롤링 등등

 

댓글

💲 광고입니다.