4 분 소요

파이썬

파이썬이란 1991년 귀도 반 로섬에 의해 만들어진 인터프리터 프로그래밍 언어이다.
웹 애플리케이션, 소프트웨어 개발, 데이터 과학, 기계 학습(ML)에 널리 사용된다.

인터프리터 언어란?

인터프리터 : 코드를 한줄씩 실행

인터프리트 언어(interpreted language)는 실행 즉시 인터프리터를 거쳐서 실행되는 프로그래밍 언어를 뜻한다.

쉽게 설명하자면 우리가 적은 코드(명령)을 한줄씩 즉시 통역사가 컴퓨터 언어로 번역하여 바꿔주는것(실행)이라고 생각하면 된다.

더 쉽게 설명하자면 우리가 한국어로 설명하는것을 외국어로 번역하여 다시 외국어로 설명하는것이라고 생각하면 쉽다.

즉 번역하여 다시 설명하는 시간이 발생한다.

그렇다 보니 컴파일러 언어에 비해 느리다.

-대표적인 인터프리터 언어-

Python, R, Ruby

-동작 과정-

  1. 번역 단계 없음(소스코드 직접 실행)
  2. 한줄씩 실행(코드를 한줄씩 읽고 실행하여 결과 즉시 반환)

-장점-

빠른 개발 및 디버깅 가능 플랫폼에 구애받지 않음

-단점-

상대적으로 실행속도가 느릴수 있음

번역 과정이 반복되므로 반복작업에서 비효율

컴파일러 언어란?

컴파일 : 무언가를 모아서 묶음으로 만듬

컴파일러 : 프로그램을 실행하기전에 번역하는것

컴파일러언어는 소스코드(우리가 작성한코드)를 한번에 다른 목적 코드(기계어)로 번역한 후, 한번에 실행하는 프로그램 언어이다.

쉽게 설명하자면 한줄씩 통역하는것이 아닌 코드(명령)을 다 모아놓고 한번에 검사하는 형태이다.

-대표적인 컴파일러 언어-

C, C++, C#, CLEO, COBOL

-동작 과정-

  1. 번역 : 작성한 소스 코드를 컴파일러에게 전달
  2. 컴파일링 : 컴파일러가 소스코드를 기계어나 중간언어로 번역
  3. 실행 : 번역된 코드 실행

-장점-

빠른실행 속도

한번 컴파일된 프로그램은 어떤 환경에서도 실행이 가능

-단점-

번역 과정이 오래 걸릴 수 있어 개발 및 디버깅 시간이 소요

특정 플랫폼을 위해 별도의 컴파일 필요

컴파일은 무엇일까?

컴파일 : 고급언어에서 -> 저급언어로 번역

컴퓨터가 이해할 수 있는 언어는 0과 1로 이루어진 이진수이다.

사람이 이해할수 있는 프로그래밍 언어(코드)를 컴퓨터가 이해할 수 있도록 이진수로 변환하는 작업을 ‘컴파일링’이라고 명칭한다.

프로그래밍 언어?

프로그래밍 언어는 컴퓨터에게 어떤 ‘명령’을 내리기 위해 존재하는데, 사람이 이해할수 있으면서, 컴퓨터에게 임무를 지시할 수 있는 언어라고 생각하면 된다.

시간이 점차 지나며 이러한 프로그래밍 언어는 인간 친화적으로 변화해왔으며, 이런 ‘인간친화적’언어들을 ‘고급프로그래밍 언어, 고수준 언어라고 명칭하게 되었다.

컴퓨터에 가까워질수록 저수준언어, 인간과 가까워질수록 고수준 언어라고 명칭한다. (고수준이라고 좋거나 낫다는 뜻은 아니니 오해금지!)

저수준 언어(low-level language) 간단설명!

컴퓨터 친화적이다.(컴퓨터가 이해하기 쉽도록)

저사양 컴퓨터에서도 빠르게 동작한다(컴퓨터가 이해하기 쉬워서)

실행속도는 빠르지만 유지보수가 어렵다.

고수준 언어(high-level langauge) 간단설명!

사람이 이해하기 쉽다.

문법을 정밀하게 작성하지 않아도 맥락에 따라서 생략이 가능!

즉 유지보수가 비교적 쉽다.

인간 친화적이기 때문에 컴퓨터가 이해하는데 시간이 걸린다.(고사양 컴퓨터 요구)

인간 친화적이기 때문에 컴퓨터가 이해할 수 있도록 기계어 변환 과정이 필요하다.

파이썬의 기초 설명

파이썬은 들여쓰기 기반 코드 블록 처리

대부분의 다른 언어(C,C+,C++,java)에서는 중괄호를 블록 단위로 사용하지만, 파이썬에서는 들여쓰기를 사용한다.

시각적으로 다른 언어들과 구분되는 가장 큰 특징이며 들여쓰기가 매우 중요하다.
(들여쓰기가 잘못될경우 에러가 발생)

파이썬은 순수 객체 지향

파이썬에는 클래스,함수를 비롯한 모든 것이 객체(object)로 취급된다.

그렇다고 파이썬이 객체 지향만 지원하는것은 아니며 멀티 패러다임언어로써 절차적,함수형, 객체지향 등 다양한 패러다임을 모두 지원한다.

파이썬은 변수 선언이 없다

파이썬은 다른 언어들과 달리 변수 선언을 하지 않는다. 그렇기 때문에 비교적 쉽게 접근하여 배울수 있다.

파이썬의 장점과 단점

파이썬의 장점과 단점에 대해 간단하게 알아보도록 하자.

파이썬의 장점

  1. 신속한 개발속도 : 파이썬의 아이덴티티로써 높은 생산성과 그 무엇과도 비교할수 없는 파이썬만의 특징이다.
  2. 과학 및 공학 친화성 : 파이썬은 과학과 공학 분야에서 필요한 여러 기능을 기본적으로 제공한다.
  3. 거대한 생태계 : 파이썬은 매우 거대한 생태계를 가지고 있기 때문에 자신이 원하는 관련된 패키지나 코드를 찾기 매우 용이
  4. 교육의 편의성 : 파이썬은 주요 언어 중 가장 초보자 친화적인 특성이 강해서 교육용 프로그래밍 언어로 각광 받고있다.
    (현재 세계 유수 대학교들은 프로그래밍 개론에서 쓰이는 언어를 C, C++같은 컴파일러 언어에서 파이썬으로 가르치고있다)

파이썬의 단점

  1. 배포 : 파이썬은 배포 하는 과정이 복잡하고 파편화 되어 있다.
    (인터프리어 언어이기 때문에 실행하려면 무조건 파이썬 설치 환경을 만들어야 하며 그 과정에서 환경 변수 설정이나 개발 환경 설치를 요구하기도 함)
  2. 속도 : 파이썬의 가장 큰 단점으로 꼽히는것으로써 CLBG에서 제시한 10개의 벤치마킹을 돌려본결과 파이썬은 C에 비해서
    71.90배의 시간 2.80배의 메모리, 75.88배 에너지를 더 소모한다고 한다.
    (허나 네트워크를 사용하거나 파일 입출력이 많은 경우에는 다른 언어와 차이가 그리 크지않다.)
    또한 느린 속도를 보완하기 위한 여러가지 방법이 존재한다. 이는 나중에 따로 다루겠다.

파이썬의 개발도구 3가지 알아보기

  1. Visual Studio Code(약칭 VSCode)
    자세한 설명 보러가기 : 설명보기
    다운로드 링크 : 다운로드
  2. PyCharm
    자세한 설명 보러가기 : 설명보기
    다운로드 링크 : 다운로드

  3. Jupyter Noteboook 혹은 JupyerLab
    자세한 설명 보러가기 : 설명보기
    다운로드 방법 = 아나콘다 설치 : 다운로드
    본인의 버전과 OS 운영체제에 맞게 다운로드 option은 두개 모두 체크

파이썬의 라이브러리

라이브러리는 개발자가 쉽게 코드를 사용할 수 있도록 코드를 모아놓은것이라고 생각하면된다.

대표적인 라이브러리

  1. Matplotlib
    데이터를 고품질 2차원 및 3차원(2D 및 3D) 그래픽으로 표시

  2. Pandas
    시계열 데이터 및 정형 데이터를 조작하는 데 사용할 수 있는 최적화 및 유연한 데이터 구조를 제공

  3. NumPy
    배열의 생성 및 관리, 논리적 도형의 조작, 선형 대수 연산의 수행에 널리 사용

  4. Requests
    Requests 라이브러리는 웹 개발에 필요한 유용한 함수를 제공

파이썬의 프레임워크

프레임워크는 패키지와 모듈의 모음이며, 모듈은 관련 코드의 집합이고, 패키지는 모듈의 집합이다.

파이썬에는 두가지 유형의 프레임워크가 있다.

  1. 풀스택 프레임워크 : 대규모 애플리케이션을 구축하는데 필요한 거의 모든것이 포함

  2. 마이크로 프레임워크 : 간단한 파이썬 애플리케이션을 구축하기 위한 최소한의 기능을 제공하는 기본 프레임워크
    ( 정교한 함수가 필요한 경우 확장 기능 제공 )

가장 대표적인 프레임워크 2가지

  1. Django

대규모 웹 애플리케이션 개발을 위해 가장 널리 사용되는 풀스택 웹 프레임워크 웹 서버, 웹 사이트 프론트엔드를 구축하기 위한 템플릿 엔진 및 다양한 보안 메커니즘을 포함하여 몇 가지 유용한 기능을 제공

  1. Flask

작은 웹 애플리케이션을 개발하기 위한 마이크로 프레임워크 커뮤니티 지원, 잘 작성된 문서, 템플릿 엔진, 단위 테스트 및 내장 웹 서버가 포함 검증 지원, 데이터베이스 매핑 계층 및 웹 보안을 위한 확장 기능을 제공

파이썬 IDE

통합 개발 환경(IDE)는 한곳에서 코드를 작성, 편집, 테스트 및 디버그 하는데 필요한 도구를 제공하는 소프트웨어

가장 인기 있는 파이썬 IDE 2가지

  1. PyCharm ( 두가지로 분류 )
    • 소규모 Python 애플리케이션에 적합한 무료 커뮤니티 버전
    • 대규모 Python 애플리케이션 구축에 적합한 유료 전문가 버전 –특징–
    • 자동 코드 완성 및 코드 검사
    • 오류 처리 및 빠른 수정
    • 기능 변경 없는 코드 정리
    • Django 및 Flask와 같은 웹 애플리케이션 프레임워크 지원
    • 여러가지 다른 프로그래밍 언어 지원
    • Matplotlib 및 NumPy와 같은 과학적 도구 및 라이브러리
  2. IDLE
    • 통합 개발 및 학습 환경(IDLE)은 기본적으로 설치된 Python IDE
    • kinter GUI 도구 키트를 사용하여 Python으로만 개발되었으며 다음 기능을 제공
    • Windows, Unix, macOS 등의 많은 운영 체제에서 작동
    • 명령을 실행하고 출력을 표시하는 셸 창을 제공
    • 코드 구문 강조 표시 및 자동 코드 완성 기능을 제공하는 다중 창 텍스트 편집기 제공

파이썬 SDK

소프트웨어 개발 키트(SDK)는 개발자가 특정 언어로 소프트웨어 애플리케이션을 만드는 데 사용할 수 있는 소프트웨어 도구 모음이다.

파이썬에 대해서는 여기까지 알아보도록 하겠다.

댓글남기기