백엔드 스쿨 1일차 OT인 만큼 가장 간단한 개요들을 정리해서 배움
파이썬은 1990년 네덜란드 암스테르담, 귀도 반 로섬에 의해 개발됨
- 1991년 발표된 인터프리터형 언어이다.
파이썬 특징
- 쉽게 익힐 수 있는 프로그래밍 언어(문법이 쉬움)
- 간결하고, 강력하고, 무료다
- 개발 속도가 빠르다
인터프리터 언어 : 컴파일러 언어와 달리 소스코드 자체가 바로 실행되는 특징이 있는 언어로, 이로 인해 속도는 느리지만, 굉장히 간편하게 사용할 수 있다.
객체 지향 언어 : 해당 프로그램이 해결해야 할 문제의 구성요소를 요소 별로 정의한 뒤 각 요소의 기능(메서드)과 정보(속성)를 정의하여 요소들을 결합하고, 프로그램을 작성하는 방식 (클래스 지원 언어)
동적 타이핑 언어 : 프로그램의 실행 시점에서 각 프로그램 변수의 타입을 결정하는 언어 (코딩할 때 신경 쓰지 않아도 됨)
AI, 데이터 과학분야에서는 파이썬을 많이 사용하고 있음
- 개발 속도, 개발의 용이성 등 다양한 특징
- 언어 자체적으로 64Bit 이상의 매우 큰 정수 연산을 지원함 (이공학 분야에서 많이 활용된다)
- 다양한 기능의 라이브러리 제공(이공학 분야에서 강력한 기능을 많이 제공)
- Numpy, Pandas, Scipy, Scikit-Learn, Matplotlib등 복잡한 수치와 시각화, 큰 데이터에 특화된 라이브러리를 포함한 매우 다양한 기능의 라이브러리 제공
- 이 공학 분야에 경우 수 많은 데이터 기반으로 특정한 모델의 연구 개발 및 실험이 지속, 성능 증명이 필수(연구 개발에는 한줄씩 확인하는것이 많은 도움이됨)
- 인터프리터형 언어의 특징 + 다양한 라이브러리 - 연구 과정에서 요구되는 노력 감소 지원
파이썬 단점
- 느리다 : 인터프리터형 언어이므로 코드를 한 줄씩 읽고 해석하여 실행 (인터프리터형 언어라는것이 장점인 동시에 단점이됨)
- cpython 확장 모듈 : 개발된 파이썬 모듈을 c/c++ 루틴 호출 연동 등을 통해 성능 향상
- cython : cpython 확장 모듈을 쉽게 생성하도록 지원하는 컴파일 언어
- 디자인, 환경 등에 대한 제약 : 개선을 위한 다양한 라이브러리 개발중
- GUI 지원 취약 : Qtpy, Tkinter 등 라이브러리 및 툴킷 지원으로 보완 중
파이썬 개발 환경
- 파이썬은 다양한 버전이 존재한다는것이 문제점
- 파이썬은 2점대 버전과 3점대 버전의 일부 호환이 되지 않음 (현재 : 2점대는 파이썬 공식지원 안하고 있음)
- 마이너 버전에서는 특징이 달라지는 문제점이 발생
- 수많은 라이브러리들이 버전마다 호환이 잘 안되는 경우가 있음 (호환성 문제가 매우 많음)
ex) Tensorflow의 경우 버전별로 호환성이 매우 떨어짐
- 각 프로젝트마다 다른 버전의 파이썬과 모듈을 사용하는 경우가 많음 (가상환경 구축이 거희 강요됨)
- 가상환경을 지원하는 도구
- VitualEnv : 구버전의 파이썬에서부터 많이 사용되어 온 도구 (최근에는 사용되지 않음)
- Venv: 파이썬 3.4 부터 기본적으로 포함된 도구 (권장됨)
- Anaconda : 최근 가장 인기있는 파이썬의 배포 패키지, GUI도 지원하는 장점이 있음(단점으로 자체 환경 속에서 추가 가상환경을 만들게되어, 원래있는 원본이 아니라 아나콘다쪽에 맞춰놓은 구형 버전의 라이브러리를 제공, venv에서 잘돌아가는 라이브러리도 오류가 발생하는경우가 있다고함)
Google Colaboratory (Colab)
- 딥러닝용 PC는 너무 비싸기에 구글에서 제공하는 코렙을 활용하여 학습 진행
- 딥러닝, 머신러닝 하시는 분들도 많이 사용하고 있음
'PYTHON-BACK' 카테고리의 다른 글
#파이썬 기초 5일차_1 (1) | 2024.07.03 |
---|---|
#파이썬 기초 4일차_2 (1) | 2024.07.02 |
#파이썬 기초 4일차_1 (0) | 2024.07.02 |
#파이썬 기초 3일차 (1) | 2024.07.01 |
#파이썬 기초 2일차 (0) | 2024.06.28 |