Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 프록시서버
- GPT프로젝트
- session이뭔가요?
- jwt토큰원리
- 신입개발자 프로젝트
- Google Java Code Style Guide
- jwt토큰구조
- 포워드프록시
- session장점
- 자바 코드 가이드
- 프로그래밍 배열
- 세션단점
- 세션장점
- jwt란?
- jwt토큰관리
- 세션장단점
- 우아한테크코스 Google Java Style Guid
- 구글 자바 코드 스타일
- Google Java Style Guide
- session이란?
- jwt원리
- 백엔드 서버
- 토큰구조
- 배열과 메모리
- session이 뭔가요?
- 구글 자바 스타일
- ReverseProxy
- session단점
- 메모리에서 배열
- 신입개발자
Archives
- Today
- Total
dev_dbdb1114
파이썬이 뭔가요...? (1) 본문
개요
파이썬은 쉬운 언어로 많이 알려져있다. 동적 타이핑로 다양한 플랫폼에서 쓸 수 있고, 라이브러리가 풍부하여 대학을 비롯한 여러 교육 기관, 연구 기관 및 산업계에서 이용이 증가하고 있다. 또 파이썬은 순수한 프로그램 언어로서의 기능 이외에도 다른 언어로 쓰인 모듈들을 연결하는 접착제 언어로써 자주 이용된다. 실제 파이썬은 많은 상용 응용 프로그램에서 스크립트 언어로 채용되고 있다.
특징
- 파이썬은 인터프리터 언어 방식으로 실행되는 스크립트 언어임.
- 문법이 쉽고 간결하지만 들여쓰기를 신경써서 해야함.
- 플랫폼 독립적인 언어로 운영체제에 상관없이 사용할 수 있는 언어임
- 객체 지향 언어임.
- 동적 타이핑 언어임.
파이썬의 실행 과정
파이썬 가상머신(CPython)에 의해 바이트 코드로 변환되고, 다시 문장 단위로 기계어로 변화 후 실행됨. JAVA의 JVM 같은 개념인듯. 아래는 순서를 조금 더 세세하게 작성해본 것.
- 소스 코드 작성 Python 프로그램을 작성하기 위해 텍스트 편집기나 개발환경( 예: Visual Studio Code, PyCharm, Jupyter Notebook 등 )을 사용하여 소스 코드를 작성합니다. Python은 고수준의 언어로, 문법이 간단하고 가독성이 높아서 쉽게 코드를 작성할 수 있습니다.
- 소스 코드 저장 작성한 Python 소스코드를 .py확장자를 가진 파일로 저장합니다. 이 파일은 파이썬 인터프리터에 의해 실행됩니다.
- 파이썬 인터프리터 호출 명령 줄 인터페이스나 통합 개발 환경(IDE)에서 파이썬 인터프리터를 호출합니다. 그런 다음 실행하려는 Pyhon 스크립트 파일을 지정하여 인터프리터를 실행시킵니다.
- 소스 코드 파싱 인터프리터는 지정한 Python 스크립트 파일을 읽어들이고, 코드를 파싱하여 실행 가능한 중간 표현식으로 변환합니다. 파싱 과정에서 문법 오류가 발견되면 오류 메세지가 표시됩니다.
- 바이트 코드 생성 파싱이 완료되면 인터프리터는 실행 가능한 바이트 코드로 컴파일 합니다. 이 바이트 코드는 파이썬 가상 머신 ( Python Virtual Machine, CPython 에서는 이를 사용)에서 실행됩니다.
- 실행 파이썬 가상 머신은 바이트 코드를 실행하면서 프로그램을 실행합니다. 이 과정에서 프로그램이 수행해야 할 작업을 수행하고, 결과를 출력하거나 필요한 경우 파일에 쓰거나 다른 프로세스와 상호 작용합니다.
- 종료 프로그램이 실행을 마치면 인터프리터는 종료되고, 프로그램의 실행 결과나 오류 메시지 등이 화면에 표시됩니다.
파이썬의 백엔드 개발 프레임워크
Django
특징
- ORM을 통한 데이터베이스 모델링을 지원하며, 다양한 데이터베이스 시스템과 연동이 가능함
- 자동으로 생성되는 관리자 패널을 통해 데이터 관리가 용이함
- 강력한 보안 기능과 사용자 인증을 기본으로 제공함
- 다국어 및 시간대 지원, 캐싱, URL 라우팅 등의 기능을 내장함
장점
- 강력하고 포괄적인 기능 세트를 제공하여 큰 프로젝트에 적합함.
- 커뮤니티와 생태계가 크고 활발하며, 다양한 서드파티 앱 및 플러그인을 사용할 수 있음.
단점
- 러닝 커브가 높고 초기 설정 및 학습이 다소 복잡할 수 있음
- 프로젝트의 크기가 작거나 간단한 애플리케이션에는 과도한 기능을 가질 수 있음.
Flask
특징
- 마이크로 웹 프레임워크로 경량형이며, 확장 가능함. 필요한 기능을 선택적으로 추가할 수 있음
- Jinja2 템플릿 엔진과 연동하여 템플릿 렌더링을 지원함.
- 웹 애플리케이션 구조를 직접 정의하고 개발자에게 큰 자유를 제공함.
- 확장기능(플러그인)을 통해 다양한 기능을 추가할 수 있음.
장점
- 가볍고 간단한 애플리케이션을 빠르게 개발하기에 적합함.
- 초기 설정이 간단하며 학습 곡선이 낮음
- 다른 라이브러리와 잘 통합됨
단점
- 기본적인 기능만 내장되어 있어 큰 프로젝트나 기능 풍부한 애플리케이션에는 추가 작업이 필요함
FastAPI
특징
- 빠른 속도와 현대적인 API 개발을 지향하는 웹 프레임워크로, ASGI를 사용하여 비동기 처리를 지원함.
- 타임 힌트와 자동 문서 생성을 통해 API 개발 및 문서화를 간편하게 만듬
- 데이터 유효성 검사, 응답 모델링 등의 기능을 지원하여 개발 생산성을 높임
장점
- 높은 성능과 효율성을 제공하며, 비동기 처리를 통해 동시 요청을 처리할 수 있음.
- Pydantic을 사용한 데이터 유효성 검사와 자동 문서화로 개발 및 유지 관리를 용이하게 함.
단점
- Django나 Flask와 달리 레거시 코드를 지원하는 기능이 부족할 수 있음.
- 상대적으로 새로운 프레임워크이므로 생태계와 커뮤니티가 다른 두 프레임워크에 비해 작을 수 있음.
'프로그래밍 > Python' 카테고리의 다른 글
| 파이썬이 뭔가요...? (3) (0) | 2023.09.10 |
|---|---|
| 파이썬이 뭔가요...? (2) (0) | 2023.09.09 |
Comments