Python
정의
- 인터프리터 방식의 고급 프로그래밍 언어
- 1991년에 개발되었다.
- 코드가 간결하고 가독성이 좋아 초보자부터 전문가까지 폭넓게 사용된다.
특징
- 인터프리터 언어
- 컴파일 없이 한 줄씩 실행한다.
- 개발 및 디버깅이 빠르다.
- 동적 타이핑
- 변수 선언 시 자료형을 지정할 필요 없다.
- 객체 지향 프로그래밍(OOP) 지원
- 클래스, 상속, 캡슐화 등을 지원한다.
- 함수형 프로그래밍 지원
- lambda, map, filter 같은 함수형 문법도 사용할 수 있다.
- 높은 가독성
- 들여쓰기로 블록 구분 → 코드가 간결하고 읽기 쉬움
- 크로스 플랫폼
- Windows, macOS, Linux 등 다양한 OS에서 동작할 수 있다.
- 풍부한 라이브러리
- 과학, 웹, 인공지능, 데이터 분석 등 다양한 분야를 지원한다.
- 예시 : NumPy, pandas, Flask, Django, TensorFlow 등
장점
- 쉬운 문법
- 영어처럼 읽히는 문법으로 이루어져 있다.
- 초보자에게 적합하다.
- 빠른 개발 속도
- 코드량이 적은 편이다.
- 프로토타입을 빠르게 제작할 수 있다.
- 다양한 라이브러리와 프레임워크
- 다양한 분야를 빠르게 구현할 수 있다.
- 웹, 데이터 분석, AI 등이 해당한다.
- 대규모 커뮤니티
- 문제 해결 자료가 많다.
- 개발자 지원이 활발하다.
- 다양한 활용 분야
- 대부분의 분야에서 사용할 수 있다.
- 웹 개발, 데이터 분석, 머신러닝, 게임 개발 등이 해당한다.
- 유연성
- 범용적으로 활용할 수 있다.
- 스크립트, 애플리케이션, 자동화 도구 등이 해당한다.
단점
- 느린 실행 속도
- 인터프리터 언어라 C/C++에 비해 느린 편에 속한다.
- 모바일 앱 개발에 약하다.
- 모바일 환경에서의 지원이 제한적이다.
- 그래서 주로 웹, 데스크탑, 서버 측에서 사용된다.
- 멀티스레딩에 제약(GIL)
- 전역 인터프리터 락(GIL) 때문에 멀티코어 CPU 성능 활용이 제한된다.
- 배포의 어려움
- 파이썬 코드를 실행하려면 파이썬 환경이 필요해서 배포가 불편할 수 있다.
- 런타임 오류 가능성
- 동적 타이핑 언어라 실행 중 오류가 날 확률이 있다.
- 정적 언어에 비해 안정성이 떨어질 수도 있다.