[기술 면접 준비] 정적 타입 언어 & 동적 타입 언어

0

기술 면접 준비

목록 보기
19/19
post-thumbnail

[기술 면접 준비] 정적 타입 언어 & 동적 타입 언어

  • 프로그래밍 언어
    • 정적 타입 언어
    • 동적 타입 언어

정적 타입 언어(Statically-typed language)

  • 컴파일 시 변수의 타입이 결정되는 언어
    • 작성자가 소스 코드 작성 시, 변수에 들어갈 값에 따라 변수의 타입을 직접 지정해야
    • 컴파일 시 타입에 맞지 않는 값이 변수에 들어갈 경우, 컴파일 에러 발생
    • ex. C, C#, C++, Java, Kotlin
  • 장점
    • 타입 에러 컴파일 시 발견 -> 타입 관련 런타임 에러 방지 -> 타입 안정성 높음
    • 컴파일 시 타입 결정 -> 실행 속도 빠름
    • 코드 가독성 좋음 -> 협업/유지보수 유리
  • 단점:
    코드를 작성할 때 모든 변수에 타입을 미리 결정해야 -> 번거로움
// 정적 타입 언어 예. Kotlin
var a: Int = 123
a = "abc" // 컴파일 시 타입 에러 발생!

동적 타입 언어(Dynamically-typed language)

  • 런타임 시 변수의 타입이 결정되는 언어
    • 작성자가 소스 코드 작성 시, 변수의 타입 지정 X 값만 지정 가능
    • ex. Groovy, Python, JavaScript, Ruby, Smalltalk, Lisp, Objective-C, PHP, Prolog
  • 장점:
    코드 작성 시 타입 명시 X -> 빠르게 코드 작성 가능
  • 단점:
    런타임 시 결정된 변수의 타입과 다른 타입의 값이 들어갈 경우, 런타임 타입 에러 발생 가능
// 동적 타입 언어 예. Groovy
def a = 123 // Groovy에서 타입이 결정되지 않은 변수를 선언할 때 def 사용
a = "abc" // 컴파일 시 에러 X, 런타임 시 타입 에러 발생!
profile
Be able to be vulnerable, in search of truth

0개의 댓글