느슨한 타입(loosely typed)의 동적(dynamic) 언어

솜주먹·2022년 7월 20일
0

📢안내

  • 개발자를 꿈꾸는 뉴비입니다.
  • 틀린 부분이 있으면 지적 부탁드립니다.



📌 동적 언어 vs 정적 언어

📖 정적 언어(Statically Typed Language)

  • 컴파일[1] 시 타입[2]을 결정하는 언어
  • 변수에 들어갈 값의 형태에 따라 타입을 지정
  • 컴파일시 타입에 맞지 않은 값이 들어있으면 에러 발생
  • 언어 : C, C#, C++, Java 등
// java 예시
int n = 1;
boolean bl = true;
float fl = 0.125;

📖 동적 언어(Dynamically Typed Language)

  • 실행 시 타입을 결정하는 언어
  • 변수만 선언하여 타입에 무관하게 값 지정 가능
  • 예시) JavaScript, Ruby, Python 등
// javascript 예시
let n = 1;
let bl = true;
let fl = 0.125;
let function = () => {}

📌 각 언어의 장단점

언어장점단점
정적 언어1. 타입 에러로 인한 문제점을 조기에 발견할 수 있어 타입의 안정성 ⬆
2. 컴파일 시 타입에 대한 정보를 결정하기에 속도 ⬆
1. 배우기 어려움
동적 언어1.배우기 쉬움
2. 실행 시까지 타입에 대한 결정을 미룰 수있기에 선택의 여지가 많음(중도 배열로 재할당 등)
1. 실행 도중 변수에 예상하지 못한 타입이 들어와 타입 에러가 발생하는 경우가 있음
  • 동적 언어의 단점을 보완하기 위해 타입을 미리 부여할 수 있는 TypeScript라는 정적 타입 언어가 존재함

❓ 주석

  1. Compiler : 컴파일 이라고하며 특정 언어의 코드 전체를 다른 언어로 바꿔주는 과정
  2. Type : 한글로 자료형이라고하며 int, short, long, boolean, float 등이 있다

0개의 댓글