[Python] Python 개요 정리

안녕하세요 오늘은 BESPIN GLOBAL Innovate AI실 김철환님이 작성해주신 ‘[Python] Python 개요 정리’에 대해 소개해드리도록 하겠습니다.

목차

  1. 정리 목적
  2. Python 소개
  3. Python 특징
  4. Python 장점
  5. Python 활용 사례

1. 정리 목적

  • ‘Python은 이런 느낌이구나’ 라는 부분을 쉽게 알 수 있습니다.
  • Python 특징과 장점, 활용 사례에 관하여 살펴봅니다.

2. Python 소개

– Python은 1991년 귀도 반 로섬이라는 프로그래머에 의해 개발 되었습니다.
– 가독성이 높고 쉬운 문법으로 다른 프로그래밍 언어보다 빠른 습득이 가능합니다.
– 프로그래밍을 전공하지 않은 비전공자들도 데이터 분석과 모델링, 인공지능 등 다양한 분야에서 활용 중입니다.
– 검색량을 기준으로 프로그래밍 언어 선호도를 조사하는 TIOBE Index에서 2023년 10월 기준 Python이 선호하는
   프로그래밍 언어 1위입니다. (출처: TIOBE Index for February 2023)

3. Python 특징

3.1 스크립트 언어

Python은 컴파일 과정 없이 인터프리터가 소스 코드를 한 줄씩 읽어 들여 곧바로 실행하는 스크립트 언어입니다.

컴파일 과정이 필요하지 않아 실행 결과를 바로 확인하고 수정하면서 쉽게 코드 작성 가능합니다.

✔ 컴파일 언어와 스크립트 언어 차이
– 컴파일 언어는 컴파일이라는 과정을 통해 개발자가 작성한 코드를 기계어로 번역해 실행하는 언어입니다.
– 스크립트 언어는 별도의 컴파일 과정 없이 인터프리터가 소스 코드를 한 줄씩 읽어가며 바로 실행하는 언어입니다.

장단점을 설명 하자면
컴파일 언어는 소스 코드를 컴파일 하는 과정을 거쳐야 하므로 실행 및 수정에 비교적 많은 시간이 소요되지만 한 번 기계어로 번역 되면 빠른 실행 속도를 보여줍니다.

스크립트 언어는 컴파일 없이 곧바로 실행하여 결과를 빠르게 확인하고 수정이 가능하지만 항상 번역과 실행이 동시에 이뤄져 컴파일이 된 컴파일 언어보다 느린 실행 속도를 보여줍니다.

스크립트 언어는 컴파일 없이 곧바로 실행하여 결과를 빠르게 확인하고 수정이 가능하지만 항상 번역과 실행이 동시에 이뤄져 컴파일이 된 컴파일 언어보다 느린 실행 속도를 보여줍니다

3.2 동적 타이핑

Python은 동적 타입 언어이며 변수의 자료형을 지정하지 않고 단순히 선언하는 것만으로 값을 지정 가능합니다. 변수의 자료형은 코드가 실행되는 시점에 결정됩니다. 자료형 변환 시 번거로운 과정을 거치지 않아도 되는 장점을 갖지만 코드 실행 도중 예상하지 못한 타입으로 인한 Error 이슈가 발생할 수 있습니다.

✔ 변수 타입(자료형)
– 특정 변수에 저장하고자 하는 데이터의 종류를 사전에 정의한 것을 의미합니다.
– 크게 문자와 숫자로 나뉘고 숫자는 정수와 실수로 세분화됩니다.
– 특정 변수에 저장하려는 값은 종류별로 나눈 것이 변수의 타입(자료형)입니다.

✔ 정적 타입 / 동적 타입 언어
– 정적 타입 언어는 개발자가 변수 데이터의 타입(자료형)을 명시해줘야 하며 컴파일 시점에 변수의 타입이 결정됩니다.
– 동적 타입 언어는 변수 데이터의 타입(자료형)을 사전에 선언할 필요 없이 변수만 선언해 값을 지정 가능합니다.

정적 타입 / 동적 타입 언어
정적 타입 / 동적 타입 언어

3.3 플랫폼 독립적

Python은 리눅스, 유닉스, 윈도우, 맥 등 대부분의 운영체제에서 모두 동작되며 운영체제별로 컴파일할 필요가 없기 때문에 한 번 소스 코드를 작성하면 어떤 운영체제에서든 활용이 가능합니다.

4. Python 장점

Python은 많은 시간을 들이지 않고도 문법을 학습할 수 있고 프로그래밍 전공으로 하지 않은 사람도 수일 내에 익혀 활용이 가능합니다.

4.1 간결하고 쉬운 문법

타 프로그래밍 언어 대비 Python 문법이 얼마나 쉽고 간결한지 밑에서 확인해봅니다.

C++

#include <iostream> using namespace std;
int main() {
   cout<<"Hello, Lucas!";
   return 0;
}

Java

public class HelloGabia {
   public static void main(String args[]) {
     System.out.println("Hello, Lucas!");
   }
}

Python

print("Hello, Lucas!")

위에 예제들은 “Hello, Lucas!”라는 문구를 출력하는 문법입니다.

다른 예제를 통해 좀 더 확인해보겠습니다.

C++

#include <iostream> using namespace std;
int main() {
   int arr[5] = {1, 2, 3, 4, 5};
  
   for(int i=0; i<5; i++) {
       cout << arr[i] << endl;
   }
   return 0;
}

Java

public class HelloGabia {
   public static void main(String args[]) {
     int arr[] = {1, 2, 3, 4, 5};
    
     for(int i=0; i<5; i++) {
         System.out.println(arr[i]);
     }
   }
}

Python

arr = [1, 2, 3, 4, 5]
for el in arr:
   print(el)

위의 예제를 통해 Python이 C++과 Java와 비교 했을 때 더 적은 코드로 동일한 작업을 수행할 수 있음을 확인할 수 있습니다.

4.2 빠른 개발 속도

쉽고 간결한 문법 덕택에 Python은 높은 생산성을 자랑하며 더 적은 코드로 더 많은 작업을 수행이 가능합니다.

복잡한 구문으로 인한 error 발생을 줄여 다른 프로그래밍 언어보다 빠른 개발이 가능합니다.

4.3 높은 확정성 및 이식성

Python은 대표적인 글루(Glue) 언어에 해당하며 다른 언어나 라이브러리에 쉽게 접근해 연동이 가능합니다.

높은 성능의 애플리케이션 개발이 필요한 경우 C++/C와 같은 언어를 Python과 결합해 사용할 수 있습니다.

이러한 경우 애플리케이션의 성능을 보장할 수 있으면서 동시에 별도 설치나 구성 과정 없이 스크립트 언어의 장점 또한 함께 누릴 수 있습니다.

4.4 활발한 생태계

Python은 수 많은 표준 라이브러리를 제공하고 있으며 개발자는 모든 코드를 일일이 작성할 필요가 없습니다.

예를 들어 특정 DB와 웹 서버를 연결해야 한다면 기존에 작성된 Python 표준 라이브러리를 활용하기만 하면 됩니다.

전 세계에서 Python이 활발함에 커뮤니티 활동 역시 활발하여 문제가 있을 시 빠르게 해결하고 협업할 수 있다는 강점이 있습니다.

✔ 패키지 설치
대표적으로 PypI와 같은 웹사이트를 통해 개발자들이 스스로 작성한 Python 패키지를 공유하고 다른 개발자가 배포한 패키지를 pip 명령어를 통해 간단하게 설치가 가능합니다.

5. Python 활용 사례

많은 기업들이 각기 다른 기능을 구현함에 있어 Python 언어를 적극 활용하고 있으며 운영 중인 서비스에 Python을 활용하는 대표적인 기업은 구글, 인스타그램, 넷플릭스, 스포티파이, 드롭박스 등 있습니다.

5.1 구글

구글은 백엔드에 C++과 Python을 결합해 활용하고 있습니다.

짧은 대기 시간과 엄격한 메모리 제어가 중요한 부분은 C++로 코드를 작성하고 프로그램의 빠른 전달과 유지 관리가 필요한 부분에는 Python을 활용해 코드를 작성합니다.

5.2 넷플릭스

넷플릭스는 방대한 표준 라이브러리와 간결하고 깔끔한 구문, 대규모 커뮤니티, 풍부한 타 라이브러리 등을 이유로 Python을 자사 서비스에 활용하고 있습니다.

5.3 스포티파이

음악 스트리밍 및 미디어 서비스 제공 업체인 스포티파이는 Python을 활용해 빌드 되었으며 스포티파이 백엔드 80% 이상이 Python으로 작성되어 있다고 밝혔습니다.

5.4 드롭박스

클라우드에 사진, 문서 등 파일을 보관 및 공유 서비스를 제공하는 드롭박스는 외부 오픈 소스 코드와 자체 작성한 코드 모두에 Python을 사용하고 있으며 크로스 플랫폼 지원, 가독성, 학습 용이성 등 Python이 갖고 있는 장점으로 빠르게 서비스를 구현할 수 있다고 밝혔습니다.

위에 말씀 드렸던 Python 창시자 귀도 반 로썸은 2012년 ~ 2019년까지 드롭박스에서 개발자로 재직했습니다.

여기까지 ‘'[Python] Python 개요 정리’에 대해 소개해드렸습니다. 유익한 정보가 되셨길 바랍니다. 감사합니다. 

Written by 김 철환 / Innovate AI실

BESPIN GLOBAL