이 레슨과 관련된 학습 키워드
컴퓨터 과학 & 프로그래밍 — 문제 해결의 도구 → Python 프로그래밍 — 첫 코드에서 실전까지 → Python 프로그래밍 — 첫 코드에서 실전까지 → 기초
int count = 10;count = 10def greet(name: str) -> str:이번 슬라이드에서는 프로그래밍 언어의 근본적인 선택, 타입 시스템을 비교합니다.
그림 왼쪽을 보세요. 정적 타이핑 세계입니다.
C나 Java에서는 변수가 타입이 고정된 상자와 같아요.
int 상자에는 정수만, String 상자에는 문자열만 들어갑니다.
타입이 다른 값을 넣으면 컴파일 에러가 발생해요. 빨간 X 표시를 보세요.
이제 오른쪽을 보세요. Python의 동적 타이핑입니다.
Python에서 변수는 상자가 아니라 이름표에요.
count라는 이름표가 10이라는 객체를 가리키고 있죠. 화살표를 보세요.
count에 문자열을 넣어도 문제없어요. 이름표를 다른 객체로 옮기면 되니까요.
기존 정수 10은 누구도 참조하지 않으면 가비지 컬렉션 대상이 됩니다.
그러면 왜 Python은 동적 타이핑을 선택했을까요?
첫째, 프로토타이핑 속도에요. 타입 선언 없이 바로 코딩할 수 있습니다.
둘째, 덕 타이핑으로 같은 함수가 다양한 타입을 처리할 수 있어요.
중간의 주황색 비교 표를 보세요. 트레이드오프가 있습니다.
에러 발견이 런타임으로 밀리면서 디버깅 비용이 올라갈 수 있어요.
대규모 프로젝트에서는 코드 이해도가 떨어지는 단점도 있습니다.
하단의 파란 박스를 보세요. 해결책이 있어요.
Python 3.5부터 타입 힌트를 쓸 수 있어요.
실행에는 영향이 없지만 아이디이와 마이파이가 정적 검사를 해줘요.
동적 타이핑의 유연성과 정적 타이핑의 안전성을 동시에 얻는 것이죠.
학생: 선생님, 그러면 동적 타이핑이 더 좋은 건가요?
선생님: 좋고 나쁨이 아니라 상황에 따라 다르죠.
선생님: 빠른 프로토타이핑이나 데이터 분석에는 동적 타이핑이 유리해요.
학생: 그럼 대규모 프로젝트에서는 문제가 되나요?
선생님: 네, 그래서 타입 힌트를 함께 쓰는 것이 현대 Python의 모범 사례에요.
선생님: 실행에는 영향 없지만 아이디이와 마이파이가 오류를 미리 잡아줘요.