파이썬의 다른 언어와 차이점에는 코드의 번역 방식뿐만아니라 변수 타입의 처리 방식도 있다.
변수 타입의 처리 방식에 따라 동적언어와 정적언어로 나뉜다.
동적 언어는 변수의 타입이 정해지는 시점이 코드가 실행되는 단계이다. 코드가 실행되는 동안 변수의 타입이 유연하게 변할 수 있으며 이러한 특징 때문에 생산성을 올리기 좋다. 한줄한줄 실행해가는 인터프리터 방식과 합이 좋음을 알 수 있다.
하지만 변수의 타입이 정해져 있지 않고 변할 수 있다는 특징 때문에 오류가 발생할 위험이 크다, 즉 안정성이 상대적으로 떨어진다.
이에 반해 정적언어는 변수의 타입이 컴파일 시점에 정해진다. 그래서 컴파일 단계에서 오류를 미리 검증할 수 있기 때문에 실행했을 때 안정성이 뛰어나다. 하지만 코드를 작성하는 단계에서는 자료형을 제한하며 작성해주어야하며 상대적으로 생산성은 떨어진다.
예시로 C언어와 자바스크립트 혹은 자바와 같은 프로그래밍 언어는 변수를 선언할 때 그 변수의 자료형을 정해준다. int,float,char,var,const,let 등등 변수가 담을 수 있는 데이터의 타입을 제한하는 특징을 가지고 있다.
파이썬은 동적언어 방식을 사용하는데 때문에 변수를 선언할 때 자료형을 정하지 않는다.
파이썬의 변수는 다양한 데이터를 담을 수 있으며 형변환도 자유롭게 일어난다.
a라는 변수가 있다면 a안에는 문자열,정수형,실수형,리스트,튜플... 등등 다양한 자료들이 들어갈 수 있다.
어떻게 이런 방법이 가능한 것일까? 파이썬의 메모리 관리 방법을 알면 알 수 있다 ( 다음글 ).
한편 그럼 파이썬에서는 정적타입의 방식으로는 코드를 작성할 수 없을까? 정석은 아니지만 어느정도 특징을 반영할 수는 있다.
동적언어의 방식의 문제점을 느끼고 이를 개선하고자 파이썬에서는 정적언어 방식으로 코드를 작성할 수 있도록 기술을 업데이트 해왔다.
파이썬의 기본 패키지 중 typing 패키지를 import해오면 정적타입으로 코드를 작성할 수 있다.
그 방법에는 여러가지가 존재하지만 한가지 예시로 Type Hinting 방법이 있다.
Type Hinting 방법은 List[str] : ["a","b","c"]와 같이 리스트의 요소들이 문자열 데이터로 만들어졌음을 보여준다.
앞서 살펴본 인터프러터 방식과 동적언어 방식을 지닌 파이썬의 성격 때문에 파이썬은 코드를 매우 쉽고 간결하게 짤 수 있는 장점이 있다. 파이썬은 전세계의 사람들이 가장 많이 사용하는 프로그래밍 언어이기에 Type Hinting과 같은 여러 기술적인 지원도 많다. 프로젝트의 규모가 커지고 많은 사람들이 함께 작업을 진행하는 경우 오히려 단점이 될 수 있지만, 장점이 너무나도 많은 언어임은 분명하다
'Language > Python' 카테고리의 다른 글
| Python 06 - 파이썬의 자료형과 타입 (0) | 2024.07.02 |
|---|---|
| Python 05 - "변수에 대한 접근" (0) | 2024.07.02 |
| Python 04 - 변수의 주소와 메모리 관리 (0) | 2024.07.02 |
| Python 02 - 파이썬의 장단점 (인터프리터 언어 vs 컴파일 언어) (0) | 2024.07.02 |
| Python 01 - 변수와 객체 with 리터럴 (0) | 2024.07.02 |