파이썬의 주요 특징

최동혁·2022년 12월 6일
0

Python

목록 보기
4/10

파이썬의 주요 특징

1. 스크립트 언어(Script Language)

  • 파이썬은 컴파일 과정 없이 인터프리터(Interpreter, 해석기)가 소스 코드를 한 줄 씩 읽어 들여 곧바로 실행하는 스크립트 언어(Script Language)이다.
  • 그 때문에 컴파일 과정이 필요하지 않아 실행 결과를 바로 확인하고 수정하면서 손쉽게 코드를 작성할 수 있다.

컴파일 언어와 스크립트 언어의 차이점은?

  • 컴파일 언어
    • 컴파일이라는 과정을 통해 프러그래머가 작성한 코드를 기계어로 번역해 실행하는 언어
  • 스크립트 언어
    • 컴파일 과정 없이 인터프리터가 소크 코드를 한 줄씩 읽어가며 바로 실행하는 언어
  • 차이점
    • 컴파일 언어는 소스 코드를 컴파일 하는 과정을 거쳐야 하므로 실행 및 수정에 비교적 많은 시간을 소요한다. 하지만, 한 번 기계어로 번역되면 빠른 실행 속도를 보여준다.
    • 스크립트 언어는 컴파일 없이 곧바로 실행하므로 결과를 바로 확인하고 빠르게 수정할 수 있지만, 번역과 실행이 동시에 이뤄져 컴파일 언어보다 느린 실행 속도를 보여준다.

2. 동적 타이핑(Dynamic typing)

  • 파이썬은 동적 타입 언어이다.
    • 정적 타입 언어의 경우 프로그래머가 변수에 들어갈 데이터의 타입(자료형)을 명시해줘야 하며, 컴파일 시점에 변수의 타입이 결정된다.
  • 파이썬은 동적 타입 언어이기 때문에 변수의 자료형을 지정하지 않고 단순히 선언하는 것만으로도 값을 지정할 수 있다.
    • 변수의 자료형은 코드가 실행되는 시점에 결정된다.
    • 자료형 변환 시 번거로운 과정을 거치지 않아도 된다는 장점이 있다.
    • 하지만 코드 실행 도중 예상하지 못한 타입으로 인한 에러가 발생할 수 있는 특징이 있다.

3. 플랫폼 독립적(Platform-independent)

  • 파이썬은 리눅스(Linux), 유닉스(Unix), 윈도우즈(Windows), 맥(Mac) 등 대부분의 운영체제(Operating System, OS)에서 모두 동작한다. 운영체제별로 컴파일할 필요가 없기 때문에 한 번 소스 코드를 작성하면 어떤 운영체제에서든 활용이 가능하다.

4. 객체지향(Object Orientetion)

  • 객체지향은 어떤 물제의 특징을 파악하고 고유의 특징을 뽑아내는 것(추상화)을 말한다.
  • 객체라는 개념을 통해 프로그램이 사람이 생각하는 방식에 가깝게 프로그래밍 하는 것을 가능하게 하였다.
  • 객체지향이라는 개념이 나타나기 전의 사용되었던 절차지향 프로그램은 어떤 일을 할 때마다 다음에 무엇을 해야 하는지 함수와 변수들을 새로 알려주는 방식으로, 컴퓨터가 해야 할 일을 알려주기 바빴다.
  • 객체지향 프로그래밍은 프로그램을 작성할 대상이 되는 실제 세계의 사물(객체)을 그대로 표현하고, 그것들이 어떻게 작동하는지 정해주고 나서야 비로소 그 객체들을 작동시킨다.
  • 그러므로 보다 빠르고 이해하기 쉬우며 수정하기 쉽게 프로그램을 만들 수 있다.

객체 지향 프로그래밍(Object Oriented Programming, OOP)

  • 객체지향 프로그래밍은 절차지행 프로그래밍(Functional Programming, FP)과 달리 프로그램을 절차 중심이 아닌 객체 중심으로 개발하는 것이다.
  • 즉, 구현하고자 하는 프로그램 안에서 필요한 객체들이 무엇인지 정의하고 그 객체들이 서로 어떻게 상호 작용 하는지를 파악하여 프로그램을 개발하는 것이다.

객체 지향 언어인 파이썬은 class를 통해 객체 지향 프로그래밍을 한다.

class Apprentice(SoccerPlayer):  #축구선수클래스를 상속받는 새 클래스 정의
    technical_skills = 3  # 상속받은 속성 재정의
    def practice(self):
        print ('연습, 연습, 연습')

>>> a_player = Apperentice()  #a_player를 견습생으로 정의 (인스턴스 생성)
>>> a_player.practice()
'연습, 연습, 연습'

객체지향 5가지 원칙

profile
항상 성장하는 개발자 최동혁입니다.

0개의 댓글