-
정적 언어와 동적 언어의 특징 및 차이점개발에 필요한 기초 지식 2022. 3. 15. 23:39
JavaScript의 배열이 다른 언어와 다른 점에 대해 봤는데 이 부분이 이해가 안 되서 이렇게 찾아보게 되었습니다.
배열 내부의 데이터 타입이 서로 다를 수 있다.
제가 그나마 아는 언어가 Python인데
제가 알기로는 Python에서 배열 내부의 데이터 타입이 달라도 되는 것으로 알아서 테스트를 해봤습니다.
결과는 아래처럼 문제 없이 실행되었습니다.
그래서 조금 더 찾아보니 여기서 말한 "다른 언어"는 정적 언어를 의미하는 듯 합니다.
그래서 이참에 정적 언어와 동적 언어에 대해 정리하고자 합니다.
# 정적 언어의 특징과 장단점
특징
- 변수에 들어갈 값의 형태에 따른 자료형(타입)을 컴파일 시에 결정
- 변수에 들어갈 값의 형태에 맞지 않는 타입을 지정하면 타입 에러 발생
- C, C++, C#, JAVA 등
장점
- 컴파일 시에 타입을 결정하니 실행 속도가 빠르다.
- 초기에 타입 에러를 발견할 수 있어 타입의 안정성이 높다.
단점
- 매번 타입을 지정해줘야 하기에 번거롭다.
# 동적 언어의 특징과 장단점
- 변수에 들어갈 값의 형태에 따른 자료형(타입)을 실행시에 결정
- 타입 없이 변수만 선언하여 실행 가능
- Python, JavaScript, Ruby 등
장점
- 실행시까지 자료형을 지정할 수 있기에 선택의 폭이 넓다.
- 일일이 타입을 지정해주지 않아도 되기에 개발 속도가 빠르다.
단점
- 의도치 않은 타입 에러가 발생할 수 있다.
Q. TypeScript는 정적 언어일거 같은데 둘 다 가능한 언어라는 얘기가 있다. 어떤 쪽의 언어이고 그 이유는?
<참고 자료>
정적 언어와 동적 언어의 차이점에 대해 정말 쉽게 잘 써주셔서 공유드립니다.
https://itmining.tistory.com/65
그리고 정적 언어와 동적 언어에 대한 비교와 함께 다양한 의견도 볼 수 있어서 좋은 경험이 되었습니다.
https://okky.kr/article/304342
'개발에 필요한 기초 지식' 카테고리의 다른 글
서버(세션) 기반 인증 방식의 장단점 및 동작 방식 (0) 2022.03.23 JWT (Json Web Token) (0) 2022.03.21 REST API (0) 2022.03.11 프레임워크와 라이브러리란 무엇일까? (0) 2022.02.21 객체 지향 프로그래밍(OOP) 시리즈 - 객체 지향 프로그래밍이란? (0) 2022.01.23