동적 타입 언어
런타임 시점에 변수의 타입이 결정되는 언어
ex - js, pythhon,ruby 등이 있음
변수의 타입이 고정되어 있지 않아 하나의 변수에 다양한 타입의 값을 할당할 수 있음
ex -
let value = 10;
value = 'Hello';
이처럼 개발자가 타입을 명시적으로 선언할 필요 없이 자유롭게 코드를 작성할 수 있도록 함
but
실행 중에 타입 오류가 발생할 가능성이 상대적으로 높아 디버깅 어려울 수 있음
정적 타입언어
컴파일 시점에 변수의 타입이 결정되는 언어
ex - Java, C , TS
ex -
let value: number = 10;
value = 'Hello'; //오류
코드 작성 단계에서 타입 오류를 사전에 방지할 수 있어 안정성 높고, 코드 가독성 높아짐
더불어, IDE에서 자동 완성 기능 활용할 수 있어 개발 생산성 향상됨
그러나 자유도는 낮고, 타이핑 엄격히 하면 초기 개발 속도 상대적으로 느릴 수 있음
정답은 없고 프로젝트 성격이나 팀의 선호도에 따라 달라지는 문제
빠르게 프로토타입 만들거나 개발 유연성 중요한 경우 동적 타입언어 유리
but
코드 안정성과 유지보수성을 중요하게 고려해야하는 대규모 프로젝트에선 정적 타입 언어가 더 적합