정적타입 언어 & 동적타입 언어

Wonbin Lee·2022년 5월 3일
0

Programing Language

목록 보기
1/2

타입

변수의 타입이란 int형, String형, float형 과 같은 자료형을 뜻한다.



정적타입 언어

정적타입 언어(Statically typed language)는 컴파일 시 변수의 타입이 결정되는 언어를 말한다.

따라서, 정적타입언어를 사용할때는 프로그래머가 변수에 들어갈 값의 형태에 따라 직접 변수의 타입을 명시해줘야한다. 이를 정적타이핑(Static Typing)이라고 하는데, 정적타이핑은 코드를 작성하는데 관련된 작은 정보들까지 개발자가 직접 신경써야 하므로 코드의 안정성과 정교함이 커진다.

// 나는 정적타입
int num = 123
char str = 'abc'

하지만 신경쓸 부분이 많은 만큼 당연히 프로그래밍의 난이도 또한 올라가기 때문에, 프로그래밍을 처음 입문하는 사람이 정적타입 언어를 사용하면 많은 어려움을 느낄 수도 있다.

정적타입 언어에는 C, C#, C++, JAVA, Pascal 등이 있다.

장점

  • 타입 에러로 인한 문제점을 초기에 발견할 수 있어 타입의 안정성이 높다.
  • 컴파일 시에 미리 타입을 결정하기 때문에 속도가 빠르다.
  • 코드의 가독성이 좋고, 다수의 협업이나 대형 프로젝트의 장기 개발 및 유지보수에 유리하다.

단점

  • 매번 코드 작성시 변수의 자료형을 결정해줘야 하는 번거로움이 있다.

동적타입 언어

동적타입 언어(Dynamically typed languages)는 컴파일 시 자료형을 정하는 것이 아니라 런타임 시 결정된다.

따라서, 동적타이핑(Dynamic Typing)은 컴퓨터적 구조를 생략할 수 있어서 타입 없이 변수만 선언하여 값을 지정할 수 있다.

// 나는 동적타입
const num = 123 
let str = 'abc'
num = 123
onbin = 'Atta boy!!'

정적타입 언어보다 코드를 간결하게 만들어 줄 수 있지만, 데이터 타입이 무엇인지 파악하는 작업을 컴퓨터에게 맡기기 때문에, 그 만큼 실행속도가 느려진다.

동적타입 언어에는 JavaScript, Python, Ruby, PHP 등이 있다.

장점

  • 런타임까지 타입에 대한 결정을 끌고 갈 수 있기 때문에 유연성이 높다.
  • 컴파일시 타입을 명시해주지 않아도 되기 때문에 빠르게 코드를 작성할 수 있다.

단점

  • 실행 도중에 변수에 예상치 못한 타입이 들어와 타입에러가 발생할 수 있다.
  • 타입 관련 Error는 런타임 시 확인할 수 밖에 없기 때문에, 코드가 길고 복잡해질 경우 타입 에러를 찾기가 어려워진다.
  • 데이터 타입이 무엇인지 파악하는 작업을 컴퓨터에게 맡기기 때문에, 그 만큼 실행속도가 느려진다.
profile
Developer who level up every day ✌️

0개의 댓글