Strong / Weak / Dynamic / Static type
http://nvec.egloos.com/2251285
http://en.wikipedia.org/wiki/Strong_and_weak_typing
-
Dynamic typing 은 변수의 타입이 프로그램의 어느 시점에서든 변경이 가능하고, ( Runtime 에 결정 )
Static typing 은 그렇지 않다. ( Compile time 에 결정 )
-
Strong type 은 프로그램을 보고 바로 에러를 찾아낼 수 있는 것이고,
Weak type 은 그렇지 않다.
Strong type 은 해당 type 에 할 수 있는 일들이 명확하게 정의되어 있다.
Weak type 은 사용되는 시점에 암시적으로 cast 가 될 수도 있고, ad-hoc polymorphism 도 될 수 있다.
다시 말하자면, Strong type 은 다른 type 과의 operation 이 지원되지 않고, weak type 은 어느 정도 지원된다.
-
몇몇 글에 따르면 어떤 언어에 대해 완벽히 strong / weak type 을 갖고 있다고 구분하기는 어렵다고 한다.
Java 의 경우는 보통 strong type 이라고 이야기하지만, 사실 string 과 int 의 + 연산시에는 implicit cast 가 일어난다.
-
Strong type 과 Weak type 의 장단점을 비교한 글이 있는데,
Strong type 의 경우는 나름 엄격한 규칙을 그대로 적용하고 있기 때문에 동작이 예상 가능한 코드의 형태가 되고,
Weak type 의 경우는 엄격하지 않은 규칙을 적용하여 동작 예상이 틀린 경우가 발생할 수도 있으나, 코드가 간단해지는 장점이 보통 있다.
'프로그래밍 놀이터 > Tips' 카테고리의 다른 글
OAuth 에 대해 간단히 개념잡기 (0) | 2017.06.09 |
---|---|
GMT vs. UTC (0) | 2017.06.06 |
[git] 자주쓰는 branch 와 checkout 명령어들 (0) | 2017.05.26 |
[실용주의 프로그래머] 소통하라! (0) | 2016.07.29 |
[실용주의 프로그래머] 지식 포트폴리오 (0) | 2016.07.28 |
댓글