본문 바로가기

공부/그외

정적 타입 언어와 동적 타입 언어 + 덕 타이핑

 

타입

타입(Type)은 자료형을 뜻 함

변수 선언 시 앞에 붙이는 그 자료형!

 

 

정적 타입 언어

정적 자료형, 즉 말 그대로 정적인(움직이지 않는) 자료형의 언어임

C나, Java 등 정적 타입 언어

이런 언어는 변수 선언 시에 들어갈 값의 형태에 맞게 자료형을 정해주어야 함

[Java]

String coffee = "라떼가 최고";

Boolean americano = false;

int cups = 2;

그리고 컴파일 시에 타입을 체크함 → 컴파일 시 타입에 맞지 않은 값이 있으면 컴파일 에러

그렇기에 사소한 타입 에러 같은 오류를 초기에 빠르게 발견 할 수 있음 = 안정성이 높다

 

동적 타입 언어

동적 자료형, 즉 말 그대로 유동적인 자료형의 언어

JavaScript, Python 등이 동적 타입 언어

이런 언어는 자료형이 유연하게 동적으로 변하는 언어

프로그래머 입장에서는 매번 타입을 정의해 줄 필요가 없기 때문에 개발 속도가 빠름

[JavaScript]

var coffee = "라떼가 최고띠";

var americano = false;

var cups = 2;

정적 타입 언어가 컴파일 시에 타입을 체크했다면, 동적 타입 언어는 런타임 시 결정이 됨

그러므로 런타임시 갑작스럽게 TypeError오류를 마주하게 됨

 

 

+ 덕 타이핑 (duck typing)

위키백과 참고 → https://ko.wikipedia.org/wiki/%EB%8D%95_%ED%83%80%EC%9D%B4%ED%95%91

덕 타이핑(duck typing)은 동적 타이핑의 한 종류로, 객체의 변수 및 메소드의 집합이 객체의 타입을 결정하는 것을 말한다. 클래스 상속이나 인터페이스 구현으로 타입을 구분하는 대신, 덕 타이핑은 객체가 어떤 타입에 걸맞은 변수와 메소드를 지니면 객체를 해당 타입에 속하는 것으로 간주한다.

"If it walks like a duck and it quacks like a duck, then it must be a duck"

 

 

 

 

 

출처:https://redthing.tistory.com/entry/%EC%A0%95%EC%A0%81-%ED%83%80%EC%9E%85-%EC%96%B8%EC%96%B4-%EB%8F%99%EC%A0%81-%ED%83%80%EC%9E%85-%EC%96%B8%EC%96%B4-Python

 

 

 

 

반응형

'공부 > 그외' 카테고리의 다른 글

Ajax: a new approach to web application  (0) 2019.02.14
Github란 무엇인가.....  (0) 2018.11.04
DAO, VO, DTO  (0) 2018.10.25
C/S 개발환경과 Web  (0) 2018.10.21
면접 준비  (0) 2017.11.06