본문 바로가기
컴퓨터공학/프로그래밍

파이썬 언어 특징, 개발 환경과 패키지

by KISCH 2024. 4. 17.
반응형

 

파이썬은 쉽고 직관적인 언어입니다. 풍부한 라이브러리들 때문에 넓은 생태계를 가지고 있으며 프로그래밍 교육, 인공지능, 데이터 분석, 웹 프로그래밍 등 다양한 분야에서 쓰이고 있습니다. 파이썬의 언어 디자인과 장단점, 개발환경, 패키지 등에 대해 쉽게 설명드리겠습니다.

 

목차

     

     

    1. 파이썬 개요

     

    1-1 소개

    1991년  귀도 반 로섬에 의해 만들어진 인터프리터 프로그래밍 언어입니다.

    의사 코드처럼 보일 정도로 문법이 단순합니다. 그래서 초보자들에게 진입장벽이 낮습니다.

    생산성, 사용성이 좋아 실무에서도 널리 쓰입니다.

     

    1-2 언어 특징

    1) 들여쓰기 기반 코드 블록 처리 - 다른 언어에서 중괄호로 블록 단위를 처리하지만 파이썬은 들여쓰기로 블록을 구분합니다. 

    if a==1
    	print('a는 1입니다')

     

    2) 순수 객체 지향 - 원시 타입이 존재하지 않고 클래스, 함수 모두 객체로 취급됩니다.

    3) 변수 선언 없음 - 변수 선언이 따로 없습니다. 재할당 등 변수 선언과 관련된 오류를 줄여줍니다. 

    4) 느긋한 연산 - 연산이 필요할 때까지 늦춰 필요한 때 계산이 되는 방식입니다. 

    5) 컴프리헨션 - 리스트, 딕션너리, 세트에 명령문을 압축 기술해 새로운 데이터형을 만들 수 있습니다.

     

     

    2. 파이썬 장단점

     

    2-1 장점

    개발 속도가 빠르다 - 높은 생산성과 다양한 패키지를 통한 범용성까지 갖춘 언어입니다.

    과학과 공학 분야 지원 - 정수의 크기에 제한이 없고 소수점과 유리수를 정밀하게 다룹니다.

    풍부한 생태계 - 수학, 공학, 통계학 등 매우 거대한 생태계를 갖고 있습니다. 

    교육에 적합한 언어 - 초보자 진입장벽이 낮기 때문에 C, C++, JAVA언어를 대체하는 중입니다.

     

    2-2 단점

    배포 - 운영체제에 따라 과정이 복잡하고 파편화 되어 있습니다.

    속도 - 가장 큰 단점입니다. 실행시간이 길고 아래와 같은 여러 가지 개선 방법이 있지만 여전히 제약이 존재합니다. 

    • 반복문 피하기
    • 외부 라이브러리 사용하기 : Numpy, Numba, TensorFlow 등 C, C++로 개발된 라이브러리
    • 비동기 IO 사용하기
    • GIL (Global Interpreter Lock) : 동시성 관련 버그를 막습니다.

     

     

     

     

    3. 개발환경

     

    3-1 개발도구

    repl - 기본적으로 사용할 수 있는 환경으로 간단한 프로그래밍에만 적합합니다.

    IPython - 진보된 repl 이라고 보시면 됩니다.

    VSCode - 비주얼 스튜디오 코드는 역시 만능입니다. 모든 기능이 무료이며 다양한 확장 프로그램까지 지원합니다.

    PyCharm - 유료 IDE로 VSCode와 함께 가장 많이 쓰입니다.

     

    3-2 패키지 관리

    PyPl - 파이썬의 공식 패키지 저장소

    Anaconda - 사설 패키지 저장소 겸 가상환경 관리 프로그램으로 공학과 과학 분야에서 널리 사용됩니다.

     

     

    4. 패키지 

     

    4-1 주요 패키지

    수학, 공학, 통계학 

    • Numpy : Numeric이라는 오랜 파이썬 패키지를 계승한 수학 및 과학 연산을 위한 패키지. 수치해석, 행렬연산, 기술통계 분석 등
    • SciPy : Numpy와 떨어질 수 없는 밀접한 관계로 대부분 같이 쓰입니다. 수치해석 시 Numpy보다 본격적으로 이용할 수 있게 해줍니다.
    • SymPy : 대표적인 기호계산 패키지
    • Pandas : Numpy보다 더 복잡한 형태를 다룹니다. 

    그래프 - Seaborn, Bokeh, PyQtGraph, Plotly, Pygal

    • matplotlib : 그래픽 패키지로 수 많은 종류의 데이터를 그래프화

    웹 프레임워크 (동기형)

    • Django : MTV(모델, 템플릿, 뷰) 프레임워크로 뉴스 콘텐츠 기반 웹사이트를 관리하기 위해 만들어진 CMS입니다.
    • Pyramid : 웹사이트, 웹 API 등 웹개발 어디서든 활용 가능한 웹개발 프레임워크
    • CherryPy : 단순함과 사용성에 중점을 둔 사용하기 가장 쉬운 프레임워크
    • Flask : 장고와 피라미드와 같은 수준의 구조를 가지고 있지는 않지만 배우기 쉽고 부가기능 라이브러리가 풍부하고 배포가 쉽습니다.
    • Bottlepy : 플라스크와 같은 WSGI 마이크로 프레임워크

    웹 프레임워크 (비동기형) - Uvicorn, FastAPI, Starlette

    머신 러닝 / 딥 러닝 - scikit-learn, TensorFlow, Keras, Jax, 파이토치

    프론트엔드 / GUI - PyQt, tkinder, PySide, wxPython

    데이터베이스 / SQL - sqlite, pymongo, SQLAlchemy

    날짜 / 시간 - dateutil

    웹페이지 조작 / 크롤링 - Selenium(셀레니옴)

     


     

    간단하게 파이썬에 대해 살펴봤지만 속도가 좀 느리다는 점을 빼고는 굉장히 매력적인 언어입니다. 범용 언어로서 앞으로도 더욱 더 생태계를 넓혀갈 것으로 보입니다.

     

     

    관련포스트
    개발환경 | 개발 도구의 종류
    개발환경 | 프로그래밍 언어의 분류
    개발환경 | 웹프레임워크의 종류

     

    파이썬

    반응형

    댓글