Meiren

[Python/ Grammar] python overview(파이썬 언어 기본 특징 정리) 본문

Python

[Python/ Grammar] python overview(파이썬 언어 기본 특징 정리)

meiren 2023. 1. 23. 01:03
Life is short
You need Python

 

1. python의 시작

  • 191 귀도 반 로섬이 발표
  • 플랫폼 독립적
  • 인터프리터언어
  • 객체 지향
  • 동적 타이핑 언어
  • 초기엔 C언어로 구현되어 있음 (c로 컴파일 등)

 

1-1. 귀도 반 로섬

  • 파이썬의 개선사항(PEP)에 대한 최종 의사결정자
  • 자비로운 종신 독재자 > 현재 사임함
  • 오픈소스 커뮤니티 멤버들의 악플에 힘들어했음
  • MS의 오픈소스 정책을 동의하며 MS로 이직
  • 구글, DropBox, MS 근무

 

 

1-2. 파이썬 이름의 유래

  • Monty Python's Flying Circus (개그 프로그램명)
  • pytho(피톤)은 그리스 신화 속의 괴물 뱀
  • 몬티 파이썬이라는 코메디 그룹의 이름에서 유래

 

 

 

2. 언어의 특징

2-1. 플랫폼 독립적인 인터프리터 언어

플랫폼

  • OS
  • 윈도우, 리눅싀, 안드로이드, 맥OS, IOS 등 프로그램이 실행되는 운영체제가 플랫폼임

독립적인

  • 관계없는 = 상관없는
  • OS에 상관없이 한번 프로그램을 작성하면 사용가능

인터프리터

  • 통역기를 사용하는 언어
  • 소스코드를 바로 실행할 수 있게 지원하는 프로그램 실행 방법
  • 보통 특정 언어의 문법으로 만들어진 코드를 특정 운영체제에서 돌리기 위해선, 그 운영체제에 맞춰서 번역을 해줘야함
    하지만 파이썬은 윈도우/맥/ios 등 작성하면 그냥 바로 돌아간다 (디바이스 고려하지 않아도 된다)

 

2-2. 컴파일러 vs 인터프리터

컴파일러

  • 작동방식 : 소스코드를 기계어로 먼저 번역해 > 해당 플랫폼에 최적화되어 프로그램을 실행
  • 장점 : 실행 속도가 바름
  • 단점 : 한번에 많은 기억장소가 필요함
  • 주요 언어 : C, Java, C++, C#

인터프리터

  • 작동방식 : 별도의 번역과정 없이 소스코드를 실행시점에 해석하여 컴퓨터가 처리할 수 있도록 함
  • 장점 : 간단히 작성, 메모리가 적게 필요
  • 단점 : 실행 속도가 느림
  • 주요 언어 : python, scala

 

프로그램의 동작 과정 : 소스코드 기계어로 번역

사람이 알 수 있는 고급언어를 기계만 알 수 있는 저급언어로 변환

컴파일언어 : os에 맞춰서 변형된 cpu만 이해할 수 있는 언어로 변경됨

파이썬은 처음에 컴파일러 언어인 C로 작성되었다.

따라서 실행시 assembler와 같은 기계어 변환 과정을 거친다

 

 

 

3. 객체 지향 & 동적 타이핑 언어

3-1. 객체지향

실행 순서사 아닌 단위 모듈(객체) 중심으로 프로그램을 작성

하나의 객체는 어떤 목적을 달성하기 위한 행동(methods)와 속성(attribute)을 가지고 있음

 

목적에 맞춰 만든 모듈을 조합해서 실행

 

 

3-2. 동적 타이핑 언어

프로그램이 실행하는 시점에서 프로그램이 사용해야 할 데이터에 대한 타입을 결정함

동적 = 실행 시점!!!에 무언가 결정됨

 

 

 

 

 

4. Why Python (장점)

1. 이해하기 쉬운 문법

사람의 시간이 >>> 기계의 시간보다 중요

 

2. 다양한 라이브러리

무엇을 생각하든 그것을 구현할 수 있다.

다른 사용자에 의해 수많은 라이브러리들이 구현되어 있음(통계, 데이터 분석)

 

3. 이미 널리 쓰이는 언어

어디에든 쓸 수 있는 언어

알파고, 아인슈타인 중력파 확인 코드, 태양의 핵점 찍는 천체만원경 연결에 쓰임

유튜브, reddit, instagram 등

AI 분야의 표준어다.

 

한번 쓰고 버리는 코드(검증용)에 파이썬 만큼 좋은 언어가 없다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Python' 카테고리의 다른 글

[naver boostcourse] Python data structure/ 데이터 스트럭쳐  (0) 2023.01.04