🌳 고급 programming
정적 타입과 동적 타입의 차이는?
쉽게 이해하기
정적 타입은 공항에서 출발 전에 짐 검사를 하는 거예요. 미리 문제를 찾으니까 안전하지만 시간이 걸려요. 동적 타입은 짐 검사 없이 바로 출발하는 거예요. 빠르지만 나중에 문제가 생길 수 있죠.
핵심 정리
변수의 타입을 언제 확인하느냐의 차이예요.
자세히 알아보기
정적 타입 언어(Static Typing)는 컴파일 시점에 변수의 타입이 정해져요. TypeScript, Java, C++가 대표적이죠. 코드를 실행하기 전에 타입을 체크하니까, 타입 관련 버그를 미리 잡을 수 있어요. 하지만 타입을 명시해야 해서 코드가 길어지고, 유연성은 떨어져요.
동적 타입 언어(Dynamic Typing)는 런타임에 타입이 결정돼요. JavaScript, Python, Ruby가 이 방식이에요. 변수를 선언할 때 타입을 안 써도 되니까 코드가 간결하고, 빠르게 프로토타입을 만들 수 있어요. 대신 실행해봐야 타입 오류를 알 수 있어서, 큰 프로젝트에서는 버그가 숨어 있기 쉬워요.
실무에서는 프로젝트 규모에 따라 선택해요. 작고 빠른 개발이 필요하면 동적 타입(Python, JavaScript), 대규모 협업이나 안정성이 중요하면 정적 타입(TypeScript, Java)을 선호해요. 요즘은 JavaScript 프로젝트도 TypeScript로 전환하는 추세예요.
재밌는 점은, Python에도 타입 힌트(Type Hint)를 추가할 수 있고, TypeScript도 any 타입으로 동적처럼 쓸 수 있어요. 언어의 경계가 점점 흐릿해지고 있죠.