dev_dbdb1114

파이썬이 뭔가요...? (1) 본문

프로그래밍/Python

파이썬이 뭔가요...? (1)

dbdb1114 2023. 9. 8. 23:12

개요

파이썬은 쉬운 언어로 많이 알려져있다. 동적 타이핑로 다양한 플랫폼에서 쓸 수 있고, 라이브러리가 풍부하여 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 이용이 증가하고 있다. 또 파이썬은 순수한 프로그램 언어로서의 기능 이외에도 다른 언어로 쓰인 모듈들을 연결하는 접착제 언어로써 자주 이용된다. 실제 파이썬은 많은 상용 응용 프로그램에서 스크립트 언어로 채용되고 있다.

특징

  • 파이썬은 인터프리터 언어 방식으로 실행되는 스크립트 언어임.
  • 문법이 쉽고 간결하지만 들여쓰기를 신경써서 해야함.
  • 플랫폼 독립적인 언어로 운영체제에 상관없이 사용할 수 있는 언어임
  • 객체 지향 언어임.
  • 동적 타이핑 언어임.

파이썬의 실행 과정

파이썬 가상머신(CPython)에 의해 바이트 코드로 변환되고, 다시 문장 단위로 기계어로 변화 후 실행됨. JAVA의 JVM 같은 개념인듯. 아래는 순서를 조금 더 세세하게 작성해본 것.

  1. 소스 코드 작성 Python 프로그램을 작성하기 위해 텍스트 편집기나 개발환경( 예: Visual Studio Code, PyCharm, Jupyter Notebook 등 )을 사용하여 소스 코드를 작성합니다. Python은 고수준의 언어로, 문법이 간단하고 가독성이 높아서 쉽게 코드를 작성할 수 있습니다.
  2. 소스 코드 저장 작성한 Python 소스코드를 .py확장자를 가진 파일로 저장합니다. 이 파일은 파이썬 인터프리터에 의해 실행됩니다.
  3. 파이썬 인터프리터 호출 명령 줄 인터페이스나 통합 개발 환경(IDE)에서 파이썬 인터프리터를 호출합니다. 그런 다음 실행하려는 Pyhon 스크립트 파일을 지정하여 인터프리터를 실행시킵니다.
  4. 소스 코드 파싱 인터프리터는 지정한 Python 스크립트 파일을 읽어들이고, 코드를 파싱하여 실행 가능한 중간 표현식으로 변환합니다. 파싱 과정에서 문법 오류가 발견되면 오류 메세지가 표시됩니다.
  5. 바이트 코드 생성 파싱이 완료되면 인터프리터는 실행 가능한 바이트 코드로 컴파일 합니다. 이 바이트 코드는 파이썬 가상 머신 ( Python Virtual Machine, CPython 에서는 이를 사용)에서 실행됩니다.
  6. 실행 파이썬 가상 머신은 바이트 코드를 실행하면서 프로그램을 실행합니다. 이 과정에서 프로그램이 수행해야 할 작업을 수행하고, 결과를 출력하거나 필요한 경우 파일에 쓰거나 다른 프로세스와 상호 작용합니다.
  7. 종료 프로그램이 실행을 마치면 인터프리터는 종료되고, 프로그램의 실행 결과나 오류 메시지 등이 화면에 표시됩니다.

파이썬의 백엔드 개발 프레임워크

Django

특징

  • ORM을 통한 데이터베이스 모델링을 지원하며, 다양한 데이터베이스 시스템과 연동이 가능함
  • 자동으로 생성되는 관리자 패널을 통해 데이터 관리가 용이함
  • 강력한 보안 기능과 사용자 인증을 기본으로 제공함
  • 다국어 및 시간대 지원, 캐싱, URL 라우팅 등의 기능을 내장함

장점

  • 강력하고 포괄적인 기능 세트를 제공하여 큰 프로젝트에 적합함.
  • 커뮤니티와 생태계가 크고 활발하며, 다양한 서드파티 앱 및 플러그인을 사용할 수 있음.

단점

  • 러닝 커브가 높고 초기 설정 및 학습이 다소 복잡할 수 있음
  • 프로젝트의 크기가 작거나 간단한 애플리케이션에는 과도한 기능을 가질 수 있음.

Flask

특징

  • 마이크로 웹 프레임워크로 경량형이며, 확장 가능함. 필요한 기능을 선택적으로 추가할 수 있음
  • Jinja2 템플릿 엔진과 연동하여 템플릿 렌더링을 지원함.
  • 웹 애플리케이션 구조를 직접 정의하고 개발자에게 큰 자유를 제공함.
  • 확장기능(플러그인)을 통해 다양한 기능을 추가할 수 있음.

장점

  • 가볍고 간단한 애플리케이션을 빠르게 개발하기에 적합함.
  • 초기 설정이 간단하며 학습 곡선이 낮음
  • 다른 라이브러리와 잘 통합됨

단점

  • 기본적인 기능만 내장되어 있어 큰 프로젝트나 기능 풍부한 애플리케이션에는 추가 작업이 필요함

FastAPI

특징

  • 빠른 속도와 현대적인 API 개발을 지향하는 웹 프레임워크로, ASGI를 사용하여 비동기 처리를 지원함.
  • 타임 힌트와 자동 문서 생성을 통해 API 개발 및 문서화를 간편하게 만듬
  • 데이터 유효성 검사, 응답 모델링 등의 기능을 지원하여 개발 생산성을 높임

장점

  • 높은 성능과 효율성을 제공하며, 비동기 처리를 통해 동시 요청을 처리할 수 있음.
  • Pydantic을 사용한 데이터 유효성 검사와 자동 문서화로 개발 및 유지 관리를 용이하게 함.

단점

  • Django나 Flask와 달리 레거시 코드를 지원하는 기능이 부족할 수 있음.
  • 상대적으로 새로운 프레임워크이므로 생태계와 커뮤니티가 다른 두 프레임워크에 비해 작을 수 있음.

'프로그래밍 > Python' 카테고리의 다른 글

파이썬이 뭔가요...? (3)  (0) 2023.09.10
파이썬이 뭔가요...? (2)  (0) 2023.09.09
Comments